/*
Theme LPE V3 — plateforme éditoriale et interactive
-------------------------------------------------------------- */
:root {
    --lpe-night: #030b17;
    --lpe-night-2: #07162a;
    --lpe-night-3: #0d2747;
    --lpe-blue: #1677d8;
    --lpe-blue-deep: #0b3d82;
    --lpe-red: #e33a34;
    --lpe-red-deep: #a5161d;
    --lpe-ivory: #f6f2e8;
    --lpe-paper: #fbfaf6;
    --lpe-ink: #101b2c;
    --lpe-muted: #667284;
    --lpe-gold: #d8b467;
    --lpe-gold-dark: #9b7434;
    --lpe-line-dark: rgba(216, 180, 103, 0.28);
    --lpe-line-light: rgba(18, 35, 58, 0.14);
    --lpe-shadow: 0 24px 70px rgba(0, 0, 0, 0.24);
    --lpe-shadow-light: 0 20px 55px rgba(21, 35, 52, 0.12);
    --lpe-radius: 18px;
    --lpe-shell: 1320px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--lpe-night);
    color: var(--lpe-ivory);
    font-family: Inter, Manrope, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% -10%, rgba(31, 88, 147, 0.25), transparent 40%),
        linear-gradient(rgba(255, 255, 255, 0.014) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.014) 1px, transparent 1px);
    background-size: auto, 42px 42px, 42px 42px;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

button,
input,
textarea,
select {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.lpe-shell {
    width: min(calc(100% - 48px), var(--lpe-shell));
    margin-inline: auto;
}

.lpe-skip-link {
    position: fixed;
    top: -80px;
    left: 18px;
    z-index: 10000;
    padding: 12px 18px;
    background: var(--lpe-gold);
    color: var(--lpe-ink);
    font-weight: 800;
}

.lpe-skip-link:focus {
    top: 18px;
}

/* Bandeau et en-tête
-------------------------------------------------------------- */
.lpe-slogan-bar {
    min-height: 34px;
    display: grid;
    place-items: center;
    padding: 6px 24px;
    border-bottom: 1px solid rgba(216, 180, 103, 0.17);
    background: #02070f;
    color: #ead5a8;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.16em;
    line-height: 1.4;
    text-align: center;
    text-transform: uppercase;
}

.lpe-slogan-bar__text {
    transition: opacity 0.28s ease;
}

.lpe-slogan-bar__text.is-changing {
    opacity: 0;
}

.lpe-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid rgba(216, 180, 103, 0.2);
    background: rgba(4, 13, 25, 0.94);
    backdrop-filter: blur(18px);
    transition: box-shadow 0.25s ease, background 0.25s ease;
}

.admin-bar .lpe-header {
    top: 32px;
}

.lpe-header.is-compact {
    background: rgba(3, 10, 20, 0.98);
    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.3);
}

.lpe-header__inner {
    min-height: 78px;
    display: grid;
    grid-template-columns: minmax(190px, 265px) 1fr;
    align-items: center;
    gap: 28px;
}

.lpe-logo {
    display: flex;
    align-items: center;
    width: min(250px, 100%);
    background: transparent !important;
}

.lpe-logo img {
    width: 100%;
    max-height: 66px;
    object-fit: contain;
    object-position: left center;
    background: transparent !important;
}

.lpe-logo__text {
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.lpe-nav {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(20px, 2.7vw, 42px);
}

.lpe-nav__primary,
.lpe-nav__actions {
    display: flex;
    align-items: center;
}

.lpe-nav__primary {
    gap: clamp(17px, 2vw, 31px);
}

.lpe-nav__actions {
    gap: 10px;
}

.lpe-nav__link {
    position: relative;
    padding: 11px 0;
    color: #e9edf2;
    font-size: 0.85rem;
    font-weight: 650;
    white-space: nowrap;
}

.lpe-nav__link::after {
    content: "";
    position: absolute;
    right: 100%;
    bottom: 5px;
    left: 0;
    height: 1px;
    background: var(--lpe-gold);
    transition: right 0.24s ease;
}

.lpe-nav__link:hover::after,
.lpe-nav__link:focus-visible::after,
.lpe-nav__link--active::after {
    right: 0;
}

.lpe-menu-toggle {
    display: none;
    width: 46px;
    height: 46px;
    padding: 9px;
    border: 1px solid var(--lpe-line-dark);
    border-radius: 8px;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

.lpe-menu-toggle span:not(.screen-reader-text) {
    display: block;
    width: 25px;
    height: 2px;
    margin: 5px auto;
    background: currentColor;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.lpe-menu-toggle.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.lpe-menu-toggle.is-open span:nth-child(2) {
    opacity: 0;
}

.lpe-menu-toggle.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Boutons et typographie communes
-------------------------------------------------------------- */
.lpe-button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: 5px;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.055em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.lpe-button:hover,
.lpe-button:focus-visible {
    transform: translateY(-2px);
}

.lpe-button--gold {
    background: linear-gradient(135deg, #f0d694, var(--lpe-gold));
    color: #111821;
    box-shadow: 0 10px 28px rgba(216, 180, 103, 0.17);
}

.lpe-button--ghost,
.lpe-button--outline {
    border-color: rgba(216, 180, 103, 0.47);
    background: rgba(3, 8, 15, 0.2);
    color: #f5f2e9;
}

.lpe-button--outline {
    border-color: rgba(255, 255, 255, 0.28);
}

.lpe-button--active {
    border-color: var(--lpe-gold);
}

.lpe-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.lpe-kicker {
    margin: 0 0 12px;
    color: var(--lpe-gold);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.lpe-lead {
    max-width: 720px;
    color: #c5cfda;
    font-size: clamp(1rem, 1.5vw, 1.18rem);
}

.lpe-text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--lpe-gold);
    font-size: 0.82rem;
    font-weight: 850;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.lpe-section {
    padding: clamp(72px, 8vw, 112px) 0;
}

.lpe-section--light {
    background: var(--lpe-paper);
    color: var(--lpe-ink);
}

.lpe-section-heading {
    max-width: 830px;
    margin: 0 auto 48px;
    text-align: center;
}

.lpe-section-heading h2,
.lpe-home-section-heading h2,
.lpe-laws-teaser h2,
.lpe-home-cta h2,
.lpe-manifesto-next h2,
.lpe-identity-manifesto h2 {
    margin: 0.12em 0 0.28em;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 500;
    line-height: 1.08;
}

.lpe-section-heading p:last-child {
    color: var(--lpe-muted);
}

/* Accueil
-------------------------------------------------------------- */
.lpe-home-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(68px, 8vw, 118px) 0 46px;
    background:
        radial-gradient(circle at 75% 38%, rgba(16, 77, 139, 0.36), transparent 38%),
        linear-gradient(135deg, #081b38, #05101f 64%, #030a14);
}

.lpe-home-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(115deg, rgba(255, 255, 255, 0.025), transparent 45%);
}

.lpe-home-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr);
    align-items: center;
    gap: clamp(36px, 7vw, 100px);
}

.lpe-home-hero__content h1 {
    max-width: 850px;
    margin: 0 0 24px;
    font-size: clamp(3rem, 6.2vw, 6.5rem);
    font-weight: 850;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.lpe-home-hero__content h1 em {
    font-style: normal;
    background: linear-gradient(90deg, var(--lpe-blue), #f3f0e6 52%, var(--lpe-red));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.lpe-home-hero__content .lpe-actions {
    margin-top: 30px;
}

.lpe-home-hero__visual {
    min-height: 460px;
    display: grid;
    place-items: center;
}

.lpe-home-hero__visual img {
    width: min(430px, 100%);
    filter: drop-shadow(0 25px 60px rgba(0, 0, 0, 0.35));
}

.lpe-home-stats {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 54px;
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.24);
    border-radius: 12px;
    background: rgba(2, 8, 16, 0.55);
    backdrop-filter: blur(10px);
}

.lpe-home-stats a {
    min-height: 112px;
    display: grid;
    place-content: center;
    padding: 20px;
    border-right: 1px solid rgba(216, 180, 103, 0.18);
    text-align: center;
    transition: background 0.2s ease;
}

.lpe-home-stats a:last-child {
    border-right: 0;
}

.lpe-home-stats a:hover {
    background: rgba(216, 180, 103, 0.08);
}

.lpe-home-stats strong {
    color: var(--lpe-gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.35rem;
    line-height: 1;
}

.lpe-home-stats span {
    margin-top: 8px;
    color: #b9c4d0;
    font-size: 0.76rem;
}

.lpe-home-manifesto {
    padding: clamp(76px, 9vw, 132px) 0;
    background: var(--lpe-paper);
    color: var(--lpe-ink);
}

.lpe-home-manifesto__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(45px, 8vw, 120px);
    align-items: start;
}

.lpe-home-manifesto h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.5rem, 5vw, 5.1rem);
    font-weight: 500;
    line-height: 1.02;
}

.lpe-home-manifesto__text {
    color: #344051;
    font-size: 1.04rem;
}

.lpe-home-manifesto__strike {
    margin: 28px 0;
    color: var(--lpe-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.8rem;
    font-weight: 600;
}

.lpe-home-programme,
.lpe-home-method,
.lpe-home-laws,
.lpe-home-articles,
.lpe-home-cta {
    padding: clamp(74px, 8vw, 112px) 0;
}

.lpe-home-programme {
    background: linear-gradient(180deg, #061425, #040d1a);
}

.lpe-home-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 45px;
    margin-bottom: 42px;
}

.lpe-home-section-heading > p,
.lpe-home-section-heading > .lpe-text-link {
    max-width: 520px;
    color: #aeb9c5;
}

.lpe-home-pole-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.lpe-home-programme__action {
    margin-top: 34px;
    text-align: center;
}

.lpe-home-method {
    background: #020912;
}

.lpe-home-method__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
    gap: clamp(40px, 8vw, 110px);
    align-items: start;
}

.lpe-home-method__inner > header h2 {
    margin: 0.15em 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.4rem, 5vw, 4.7rem);
    font-weight: 500;
    line-height: 1.06;
}

.lpe-home-method__inner > header p:last-child {
    color: #aab7c4;
}

.lpe-home-method__steps {
    display: grid;
    gap: 14px;
}

.lpe-home-method__steps > div {
    display: grid;
    grid-template-columns: 76px 1fr;
    gap: 0 18px;
    padding: 26px;
    border: 1px solid var(--lpe-line-dark);
    border-radius: 12px;
    background: rgba(9, 25, 43, 0.76);
}

.lpe-home-method__steps span {
    grid-row: 1 / 3;
    color: var(--lpe-gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.15rem;
}

.lpe-home-method__steps h3,
.lpe-home-method__steps p {
    margin: 0;
}

.lpe-home-method__steps p {
    color: #aeb9c5;
}

.lpe-home-laws {
    background: linear-gradient(135deg, #0b1c31, #06101e);
}

.lpe-laws-teaser {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
    padding: clamp(34px, 5vw, 62px);
    border: 1px solid var(--lpe-line-dark);
    border-radius: var(--lpe-radius);
    background: linear-gradient(135deg, rgba(216, 180, 103, 0.1), rgba(255, 255, 255, 0.015));
    box-shadow: var(--lpe-shadow);
}

.lpe-laws-teaser > div {
    max-width: 820px;
}

.lpe-laws-teaser p:last-child {
    color: #b7c1cc;
}

.lpe-home-articles {
    background: var(--lpe-paper);
    color: var(--lpe-ink);
}

.lpe-home-articles .lpe-home-section-heading > p,
.lpe-home-articles .lpe-home-section-heading > .lpe-text-link {
    color: var(--lpe-gold-dark);
}

.lpe-home-article-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.lpe-home-article-card {
    overflow: hidden;
    border: 1px solid var(--lpe-line-light);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--lpe-shadow-light);
    transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.lpe-home-article-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 28px 70px rgba(21, 35, 52, 0.17);
}

.lpe-home-article-card__media {
    height: 210px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, #0d3564, #07152a);
    color: #fff;
    font-size: 3rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.lpe-home-article-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lpe-home-article-card__content {
    padding: 25px;
}

.lpe-home-article-card time {
    color: var(--lpe-gold-dark);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.lpe-home-article-card h3 {
    margin: 10px 0;
    font-size: 1.35rem;
    line-height: 1.2;
}

.lpe-home-article-card p {
    color: var(--lpe-muted);
}

.lpe-home-article-card strong {
    color: var(--lpe-blue-deep);
    font-size: 0.78rem;
    text-transform: uppercase;
}

.lpe-home-cta {
    background: linear-gradient(120deg, #09234a, #071322 55%, #451119);
}

.lpe-home-cta__inner,
.lpe-manifesto-next__inner,
.lpe-poles-outro__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
}

/* Cartes de pôles et ministères communes
-------------------------------------------------------------- */
.lpe-card {
    --accent: var(--lpe-blue);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--lpe-radius);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.lpe-card:hover,
.lpe-card:focus-visible {
    transform: translateY(-6px);
    border-color: var(--accent);
    box-shadow: 0 28px 75px rgba(0, 0, 0, 0.28), 0 0 28px color-mix(in srgb, var(--accent), transparent 72%);
}

.lpe-card--pole {
    min-height: 350px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 30px;
    background: linear-gradient(145deg, #0d356b, #061326);
    color: #fff;
}

.lpe-card--pole.lpe-card--blanc {
    background: linear-gradient(145deg, #f9f6ed, #ded5c4);
    color: var(--lpe-ink);
}

.lpe-card--pole.lpe-card--rouge {
    background: linear-gradient(145deg, #a51923, #3b0810);
}

.lpe-card--bleu {
    --accent: #2d8ef0;
}

.lpe-card--blanc {
    --accent: #c8a65f;
}

.lpe-card--rouge {
    --accent: #ed4b42;
}

.lpe-card__mosaic {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.18;
    background-image: radial-gradient(circle at center, var(--accent) 0 2px, transparent 2.8px);
    background-size: 18px 18px;
    mask-image: linear-gradient(to top, #000, transparent 78%);
}

.lpe-card__icon {
    width: 54px;
    height: 54px;
    margin-bottom: auto;
    object-fit: contain;
}

.lpe-card__eyebrow,
.lpe-card__pole {
    position: relative;
    z-index: 1;
    font-size: 0.67rem;
    font-weight: 900;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    opacity: 0.78;
}

.lpe-card__title {
    position: relative;
    z-index: 1;
    margin: 9px 0;
    font-size: clamp(1.45rem, 2.3vw, 2.2rem);
    line-height: 1.08;
    text-transform: uppercase;
}

.lpe-card__description {
    position: relative;
    z-index: 1;
    margin: 0 0 22px;
    color: inherit;
    opacity: 0.82;
}

.lpe-card__link {
    position: relative;
    z-index: 1;
    margin-top: auto;
    color: var(--accent);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.lpe-card--blanc .lpe-card__link {
    color: #5c4822;
}

.lpe-card--ministere {
    min-height: 340px;
    display: flex;
    flex-direction: column;
    padding: 25px;
    background: #f4f8fd;
    color: var(--lpe-ink);
    box-shadow: var(--lpe-shadow-light);
}

.lpe-card--ministere.lpe-card--blanc {
    background: #fffdf8;
}

.lpe-card--ministere.lpe-card--rouge {
    background: #fff1ef;
}

.lpe-card__ministere-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.lpe-card__number {
    color: var(--accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.3rem;
    line-height: 1;
}

.lpe-card__ministry-icon {
    width: 48px;
    height: 48px;
    margin-left: auto;
    object-fit: contain;
}

.lpe-card--ministere .lpe-card__title {
    margin-top: 22px;
    font-size: 1.15rem;
    text-transform: none;
}

.lpe-card--ministere .lpe-card__description {
    color: #596576;
    font-size: 0.88rem;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.lpe-card--ministere-compact {
    min-height: 270px;
}

.lpe-card__link-compact {
    display: none;
}

/* Héros génériques et pages sombres
-------------------------------------------------------------- */
.lpe-page-hero,
.lpe-pole-hero,
.lpe-ministry-hero,
.lpe-article-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(80px, 9vw, 125px) 0 clamp(62px, 7vw, 96px);
    border-bottom: 1px solid var(--lpe-line-dark);
}

.lpe-page-hero {
    background: linear-gradient(135deg, #0b2547, #061322 65%, #030b16);
    text-align: center;
}

.lpe-page-hero h1,
.lpe-pole-hero h1,
.lpe-ministry-hero h1,
.lpe-article-hero h1,
.lpe-manifesto-hero h1 {
    margin: 0.1em 0 0.26em;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 6vw, 6rem);
    font-weight: 500;
    line-height: 1.04;
}

.lpe-page-hero p,
.lpe-pole-hero p,
.lpe-article-hero p {
    max-width: 800px;
    margin-inline: auto;
    color: #c2ccd7;
}

.lpe-page-hero--light {
    background: #eee9df;
    color: var(--lpe-ink);
}

.lpe-page-hero--light p {
    color: #596576;
}

.lpe-content {
    max-width: 900px;
    margin-inline: auto;
    padding: clamp(28px, 5vw, 55px);
    border: 1px solid var(--lpe-line-dark);
    border-radius: var(--lpe-radius);
    background: rgba(8, 23, 40, 0.76);
}

.lpe-content--light {
    border-color: var(--lpe-line-light);
    background: #fff;
    color: var(--lpe-ink);
    box-shadow: var(--lpe-shadow-light);
}

.lpe-content a {
    color: var(--lpe-blue-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lpe-empty,
.lpe-data-message {
    padding: 30px;
    border: 1px solid currentColor;
    border-radius: 12px;
    text-align: center;
    opacity: 0.75;
}

/* Page d’un pôle
-------------------------------------------------------------- */
.lpe-pole-page {
    --pole-accent: var(--lpe-blue);
    background: linear-gradient(180deg, #061426, #030b16);
}

.lpe-pole-page--blanc {
    --pole-accent: var(--lpe-gold);
}

.lpe-pole-page--rouge {
    --pole-accent: var(--lpe-red);
}

.lpe-pole-page__wash,
.lpe-ministry-page__wash {
    display: none;
}

.lpe-pole-hero {
    background: radial-gradient(circle at 85% 50%, color-mix(in srgb, var(--pole-accent), transparent 75%), transparent 38%);
}

.lpe-pole-back,
.lpe-ministry-back,
.lpe-article-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 38px;
    color: var(--lpe-gold);
    font-size: 0.78rem;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-pole-hero__icon {
    width: 68px;
    height: 68px;
    margin-bottom: 20px;
}

.lpe-pole-hero__mission {
    font-size: 1.18rem;
}

.lpe-pole-hero__summary {
    max-width: 520px;
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 28px;
    color: #c8d1db;
}

.lpe-pole-hero__count {
    color: var(--pole-accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.3rem;
    line-height: 1;
}

.lpe-section--pole-ministries {
    background: #eeeae1;
    color: var(--lpe-ink);
}

.lpe-ministry-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.lpe-ministry-grid--seven > :nth-child(n + 5) {
    transform: translateX(52%);
}

.lpe-ministry-grid--seven > :nth-child(8) {
    transform: none;
}

/* Pages ministérielles claires
-------------------------------------------------------------- */
.lpe-view-ministere main,
body[class*="lpe-ministere-"] main {
    background: #eeebe3;
    color: var(--lpe-ink);
}

.lpe-ministry-page {
    --ministry-accent: var(--lpe-blue);
    background: #eeebe3;
    color: var(--lpe-ink);
}

.lpe-ministry-page--blanc {
    --ministry-accent: #a7803e;
}

.lpe-ministry-page--rouge {
    --ministry-accent: var(--lpe-red);
}

.lpe-ministry-hero {
    border-bottom-color: rgba(20, 36, 58, 0.13);
    background:
        radial-gradient(circle at 83% 50%, color-mix(in srgb, var(--ministry-accent), transparent 78%), transparent 38%),
        linear-gradient(135deg, #faf8f2, #ebe5da);
    color: var(--lpe-ink);
}

.lpe-ministry-back {
    color: var(--ministry-accent);
}

.lpe-ministry-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 45px;
}

.lpe-ministry-hero__content {
    max-width: 940px;
}

.lpe-ministry-hero__icon {
    width: 68px;
    height: 68px;
    margin-bottom: 20px;
}

.lpe-ministry-hero__intro {
    max-width: 780px;
    color: #4e5a6b;
    font-size: 1.1rem;
}

.lpe-ministry-hero__number {
    color: color-mix(in srgb, var(--ministry-accent), transparent 12%);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(7rem, 14vw, 13rem);
    font-weight: 600;
    line-height: 0.75;
    opacity: 0.2;
}

.lpe-section--ministry-introduction {
    padding-bottom: 35px;
    background: #eeebe3;
}

.lpe-section--ministry-triptychs {
    padding-top: 30px;
    background: #eeebe3;
}

.lpe-triptychs {
    display: grid;
    gap: 38px;
}

.lpe-triptych {
    overflow: hidden;
    border: 1px solid rgba(20, 36, 58, 0.15);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--lpe-shadow-light);
}

.lpe-triptych--prepared {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.lpe-triptych--prepared.is-visible {
    opacity: 1;
    transform: none;
}

.lpe-triptych.is-current {
    border-color: color-mix(in srgb, var(--ministry-accent), transparent 25%);
}

.lpe-triptych__header {
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 27px 30px;
    border-bottom: 1px solid var(--lpe-line-light);
    background: #f7f4ed;
}

.lpe-triptych__number {
    color: var(--ministry-accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.8rem;
    line-height: 1;
}

.lpe-triptych__eyebrow {
    margin: 0;
    color: var(--lpe-muted);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-triptych__header h3 {
    margin: 4px 0 0;
    font-size: clamp(1.25rem, 2.3vw, 2rem);
    line-height: 1.15;
}

.lpe-triptych__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lpe-block {
    min-width: 0;
    padding: 32px;
    border-right: 1px solid var(--lpe-line-light);
}

.lpe-block:last-child {
    border-right: 0;
}

.lpe-block--truth {
    background: #edf6ff;
}

.lpe-block--reflection {
    background: #fffdf8;
}

.lpe-block--execution {
    background: #fff1ef;
}

.lpe-block__label {
    margin: 0 0 10px;
    color: var(--ministry-accent);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.lpe-block h4 {
    margin: 0 0 18px;
    font-size: 1.12rem;
    line-height: 1.28;
}

.lpe-block__content {
    color: #3f4b5b;
    font-size: 0.94rem;
}

.lpe-block__content p:last-child {
    margin-bottom: 0;
}

.lpe-triptych__sources {
    padding: 14px 30px;
    border-top: 1px solid var(--lpe-line-light);
    background: #f3f0e9;
    color: #687382;
    font-size: 0.73rem;
}

.lpe-triptych__sources span {
    font-weight: 850;
}

.lpe-section--ministry-feedback,
.lpe-section--related-ministries {
    background: #e5e1d8;
}

.lpe-feedback-panel {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 45px;
    padding: clamp(28px, 5vw, 52px);
    border: 1px solid var(--lpe-line-light);
    border-radius: var(--lpe-radius);
    background: #fff;
    box-shadow: var(--lpe-shadow-light);
}

.lpe-feedback-panel h2 {
    margin-top: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.4rem;
}

.lpe-feedback-panel__intro p:last-child {
    color: var(--lpe-muted);
}

.lpe-feedback-form {
    display: grid;
    gap: 22px;
}

.lpe-feedback-form fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.lpe-feedback-form legend,
.lpe-feedback-form__comment > span {
    display: block;
    margin-bottom: 10px;
    font-weight: 800;
}

.lpe-feedback-form__useful {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.lpe-feedback-form__useful legend {
    width: 100%;
}

.lpe-feedback-form__useful label span {
    display: inline-block;
    padding: 9px 18px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 999px;
    cursor: pointer;
}

.lpe-feedback-form__useful input,
.lpe-rating input {
    position: absolute;
    opacity: 0;
}

.lpe-feedback-form__useful input:checked + span {
    border-color: var(--ministry-accent);
    background: color-mix(in srgb, var(--ministry-accent), #fff 88%);
}

.lpe-rating {
    display: flex;
    gap: 6px;
}

.lpe-rating label {
    color: #c8c8c8;
    font-size: 2rem;
    cursor: pointer;
}

.lpe-rating label.is-selected {
    color: var(--lpe-gold);
}

.lpe-feedback-form textarea,
.lpe-newsletter-form input {
    width: 100%;
    padding: 13px 15px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 8px;
    background: #fff;
    color: var(--lpe-ink);
}

.lpe-ministry-pagination {
    padding: 28px 0;
    border-top: 1px solid var(--lpe-line-light);
    background: #f6f3ec;
}

.lpe-ministry-pagination__inner,
.lpe-article-navigation__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.lpe-ministry-pagination a,
.lpe-article-navigation a {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 10px;
    background: #fff;
    color: var(--lpe-ink);
}

.lpe-ministry-pagination__next,
.lpe-article-navigation__next a {
    justify-content: flex-end;
    text-align: right;
}

.lpe-ministry-pagination small,
.lpe-article-navigation small {
    display: block;
    color: var(--lpe-muted);
}

/* Lois LPE
-------------------------------------------------------------- */
.lpe-laws-page {
    background: linear-gradient(180deg, #061426, #030a14);
}

.lpe-law-axiom {
    padding: 55px 0 40px;
}

.lpe-law-axiom__stone {
    max-width: 1020px;
    margin-inline: auto;
    padding: clamp(35px, 6vw, 70px);
    border: 1px solid rgba(216, 180, 103, 0.42);
    border-radius: 10px;
    background: radial-gradient(circle at 20% 10%, #f1e7d4, #b7a68c 70%, #8d7c64);
    color: #241e17;
    box-shadow: inset 0 0 80px rgba(45, 31, 16, 0.22), var(--lpe-shadow);
    text-align: center;
}

.lpe-law-axiom__stone h2 {
    margin: 0.2em 0 0.5em;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4.5vw, 4.2rem);
    line-height: 1.05;
}

.lpe-law-axiom__text {
    max-width: 750px;
    margin-inline: auto;
}

.lpe-section--foundational-laws,
.lpe-section--institutional-laws {
    position: relative;
}

.lpe-section--foundational-laws {
    background: #eae5db;
    color: var(--lpe-ink);
}

.lpe-section--institutional-laws {
    background: #050e19;
}

.lpe-law-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.lpe-law-card {
    --law-ink: #2d261d;
    --law-muted: #685b48;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 34px;
    border: 1px solid rgba(93, 70, 41, 0.46);
    border-radius: 11px;
    background: radial-gradient(circle at 15% 5%, #f6eee0, #c7b89e 65%, #a2937c);
    color: var(--law-ink);
    box-shadow: var(--lpe-shadow-light);
}

.lpe-law-card--institutionnelle {
    --law-ink: #f5f1e8;
    --law-muted: #aeb9c5;
    border-color: rgba(216, 180, 103, 0.36);
    background: radial-gradient(circle at 15% 5%, #253548, #111b27 62%, #050a11);
    box-shadow: var(--lpe-shadow);
}

.lpe-law-card::after {
    content: attr(data-law-number);
    position: absolute;
    right: -0.02em;
    bottom: -0.2em;
    z-index: -1;
    color: color-mix(in srgb, var(--law-ink), transparent 93%);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(8rem, 17vw, 14rem);
    font-weight: 700;
    line-height: 1;
}

.lpe-law-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid color-mix(in srgb, var(--law-ink), transparent 76%);
}

.lpe-law-card__label {
    color: var(--law-muted);
    font-size: 0.67rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.lpe-law-card__number {
    color: var(--lpe-gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 4rem;
    line-height: 0.75;
}

.lpe-law-card__title {
    margin: 0 0 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.5rem, 2.3vw, 2.1rem);
    line-height: 1.12;
}

.lpe-law-card__formula {
    padding-left: 16px;
    border-left: 3px solid var(--lpe-gold);
    font-style: italic;
}

.lpe-law-card__text {
    color: var(--law-ink);
    font-size: 0.94rem;
}

.lpe-law-card__keywords {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 24px 0 0;
    padding: 18px 0 0;
    border-top: 1px solid color-mix(in srgb, var(--law-ink), transparent 78%);
    list-style: none;
}

.lpe-law-card__keywords li {
    padding: 5px 8px;
    border: 1px solid color-mix(in srgb, var(--law-ink), transparent 70%);
    border-radius: 999px;
    color: var(--law-muted);
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
}

/* Identité et manifeste
-------------------------------------------------------------- */
.lpe-section--identity-core {
    background: #ebe6dc;
    color: var(--lpe-ink);
}

.lpe-identity-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.lpe-panel {
    padding: clamp(30px, 5vw, 52px);
    border: 1px solid var(--lpe-line-light);
    border-radius: var(--lpe-radius);
    background: #fff;
    box-shadow: var(--lpe-shadow-light);
}

.lpe-panel h2 {
    margin: 0.15em 0 0.4em;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 500;
}

.lpe-panel p {
    color: #4e5968;
}

.lpe-section--identity-method {
    background: #061426;
}

.lpe-method {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--lpe-line-dark);
    border-radius: var(--lpe-radius);
}

.lpe-method > div {
    padding: 32px;
    border-right: 1px solid var(--lpe-line-dark);
}

.lpe-method > div:last-child {
    border-right: 0;
}

.lpe-method span {
    color: var(--lpe-gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.3rem;
}

.lpe-method h3 {
    margin: 8px 0;
}

.lpe-method p {
    margin: 0;
    color: #adb8c4;
}

.lpe-section--identity-manifesto {
    background: linear-gradient(135deg, #eee9df, #dcd4c6);
    color: var(--lpe-ink);
}

.lpe-identity-manifesto {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 45px;
}

.lpe-identity-manifesto > div {
    max-width: 900px;
}

.lpe-manifesto-page {
    background: #eee9df;
    color: var(--lpe-ink);
}

.lpe-manifesto-hero {
    padding: clamp(90px, 11vw, 150px) 0;
    background: linear-gradient(135deg, #071831, #050d19 65%, #381017);
    color: #fff;
}

.lpe-manifesto-hero__inner {
    max-width: 1120px;
}

.lpe-manifesto-hero h1 {
    max-width: 1100px;
}

.lpe-manifesto-hero p:last-child {
    max-width: 760px;
    color: #c1cbd5;
}

.lpe-manifesto-reading {
    padding: clamp(65px, 9vw, 130px) 0;
}

.lpe-manifesto-surface {
    max-width: 850px;
    margin-inline: auto;
    padding: clamp(30px, 6vw, 72px);
    border: 1px solid var(--lpe-line-light);
    background: #fffdf8;
    box-shadow: var(--lpe-shadow-light);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.18rem, 2vw, 1.5rem);
    line-height: 1.72;
}

.lpe-manifesto-callout,
.lpe-manifesto-turn {
    margin: 2em 0;
    font-size: clamp(2rem, 4.6vw, 4rem);
    font-weight: 600;
    line-height: 1.05;
}

.lpe-manifesto-turn {
    color: var(--lpe-red-deep);
}

.lpe-manifesto-rhythm {
    padding-left: 22px;
    border-left: 4px solid var(--lpe-gold);
    font-weight: 600;
}

.lpe-manifesto-surface blockquote {
    margin: 2.2em 0 0;
    padding: 34px;
    border: 0;
    background: var(--lpe-ink);
    color: #fff;
    font-size: clamp(1.7rem, 3.6vw, 3rem);
    line-height: 1.2;
}

.lpe-manifesto-next {
    padding: 85px 0;
    background: linear-gradient(120deg, #08224a, #06111f 58%, #3f1017);
    color: #fff;
}

/* Articles : liste et lecture sur fond clair
-------------------------------------------------------------- */
.lpe-view-articles main,
.lpe-is-single-article main,
body.category main,
body.tag main,
body.archive main {
    background: #eeeae2;
    color: var(--lpe-ink);
}

.lpe-page-hero--articles,
.lpe-article-hero {
    border-bottom-color: var(--lpe-line-light);
    background: linear-gradient(135deg, #fbfaf6, #e6e0d5);
    color: var(--lpe-ink);
}

.lpe-page-hero--articles p,
.lpe-article-hero p {
    color: #586475;
}

.lpe-section--articles-list,
.lpe-section--article-reading,
.lpe-section--related-articles,
.lpe-section--article-comments {
    background: #eeeae2;
}

.lpe-article-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.lpe-article-card {
    overflow: hidden;
    border: 1px solid var(--lpe-line-light);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--lpe-shadow-light);
    transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.lpe-article-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 28px 70px rgba(21, 35, 52, 0.16);
}

.lpe-article-card__link {
    display: block;
    height: 100%;
}

.lpe-article-card__media {
    height: 220px;
    overflow: hidden;
    background: linear-gradient(135deg, #0e396b, #071629);
}

.lpe-article-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lpe-article-card__placeholder {
    height: 100%;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 3rem;
    font-weight: 800;
    letter-spacing: 0.15em;
}

.lpe-article-card__content {
    padding: 25px;
}

.lpe-article-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    color: var(--lpe-muted);
    font-size: 0.7rem;
}

.lpe-article-card__category {
    margin: 14px 0 0;
    color: var(--lpe-gold-dark);
    font-size: 0.67rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.lpe-article-card__title {
    margin: 8px 0;
    font-size: 1.35rem;
    line-height: 1.2;
}

.lpe-article-card__excerpt {
    color: var(--lpe-muted);
}

.lpe-article-card__read {
    color: var(--lpe-blue-deep);
    font-size: 0.75rem;
    font-weight: 900;
    text-transform: uppercase;
}

.lpe-pagination {
    margin-top: 42px;
    text-align: center;
}

.lpe-pagination .page-numbers {
    display: inline-flex;
    min-width: 40px;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    margin: 3px;
    padding: 0 12px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 7px;
    background: #fff;
}

.lpe-pagination .current {
    background: var(--lpe-ink);
    color: #fff;
}

.lpe-article-back {
    color: var(--lpe-blue-deep);
}

.lpe-article-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.lpe-article-categories a {
    padding: 5px 10px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 999px;
    color: var(--lpe-gold-dark);
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
}

.lpe-article-meta {
    display: flex;
    gap: 8px;
    color: var(--lpe-muted);
    font-size: 0.8rem;
}

.lpe-article-excerpt {
    max-width: 850px;
    margin: 24px 0 0 !important;
    color: #465365 !important;
    font-size: 1.1rem;
}

.lpe-article-reading-surface {
    max-width: 980px;
    margin-inline: auto;
    overflow: hidden;
    border: 1px solid var(--lpe-line-light);
    border-radius: 12px;
    background: #fff;
    box-shadow: var(--lpe-shadow-light);
}

.lpe-article-featured-image {
    margin: 0;
}

.lpe-article-featured-image img {
    width: 100%;
    max-height: 550px;
    object-fit: cover;
}

.lpe-article-content {
    padding: clamp(30px, 6vw, 75px);
    color: #263345;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.12rem;
    line-height: 1.82;
}

.lpe-article-content h2,
.lpe-article-content h3,
.lpe-article-content h4 {
    color: var(--lpe-ink);
    line-height: 1.2;
}

.lpe-article-content a {
    color: var(--lpe-blue-deep);
    text-decoration: underline;
}

.lpe-article-tags {
    padding: 0 clamp(30px, 6vw, 75px) 45px;
}

.lpe-article-tags__label {
    display: block;
    margin-bottom: 10px;
    color: var(--lpe-muted);
    font-size: 0.72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-article-tags a {
    display: inline-block;
    margin: 3px;
    padding: 6px 10px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 999px;
}

.lpe-article-navigation {
    padding: 25px 0;
    background: #e5e1d8;
}

.lpe-related-articles-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.lpe-related-article-card {
    overflow: hidden;
    border: 1px solid var(--lpe-line-light);
    border-radius: 12px;
    background: #fff;
    box-shadow: var(--lpe-shadow-light);
}

.lpe-related-article-card img {
    width: 100%;
    height: 190px;
    object-fit: cover;
}

.lpe-related-article-card__content {
    padding: 22px;
}

.lpe-related-article-card time {
    color: var(--lpe-muted);
    font-size: 0.7rem;
}

.lpe-related-article-card h3 {
    margin: 8px 0 16px;
}

.lpe-article-comments {
    max-width: 900px;
    margin-inline: auto;
    padding: 35px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 12px;
    background: #fff;
}

/* Participation, forum et éléments utilitaires
-------------------------------------------------------------- */
.lpe-action-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.lpe-action-card {
    min-height: 290px;
    padding: 28px;
    border: 1px solid var(--lpe-line-dark);
    border-radius: var(--lpe-radius);
    background: rgba(9, 25, 43, 0.8);
    transition: transform 0.24s ease, border-color 0.24s ease;
}

.lpe-action-card:hover {
    transform: translateY(-5px);
    border-color: var(--lpe-gold);
}

.lpe-action-card > span {
    color: var(--lpe-gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3rem;
}

.lpe-action-card h2 {
    font-size: 1.25rem;
}

.lpe-action-card p {
    color: #aeb9c5;
}

.lpe-progress {
    max-width: 760px;
    height: 13px;
    margin: 35px auto 12px;
    padding: 2px;
    border: 1px solid var(--lpe-line-dark);
    border-radius: 999px;
}

.lpe-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--lpe-blue), #fff, var(--lpe-red));
}

.lpe-progress__caption {
    font-size: 0.76rem;
}

.lpe-form-notice {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 2000;
    max-width: 430px;
    padding: 15px 18px;
    border-radius: 8px;
    background: #fff;
    color: var(--lpe-ink);
    box-shadow: var(--lpe-shadow);
    opacity: 0;
    transform: translateY(15px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.lpe-form-notice.is-visible {
    opacity: 1;
    transform: none;
}

/* Footer
-------------------------------------------------------------- */
.lpe-footer {
    padding: 65px 0 24px;
    border-top: 1px solid var(--lpe-line-dark);
    background: #02070f;
    color: #fff;
}

.lpe-footer__grid {
    display: grid;
    grid-template-columns: 1.35fr repeat(3, minmax(0, 0.75fr));
    gap: 42px;
}

.lpe-footer__logo {
    width: 170px;
    max-height: 185px;
    object-fit: contain;
    object-position: left center;
}

.lpe-footer__description {
    max-width: 370px;
    color: #aab5c1;
    font-size: 0.88rem;
}

.lpe-footer__column h2 {
    margin: 0 0 18px;
    color: var(--lpe-gold);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.lpe-footer__column a {
    display: block;
    margin: 8px 0;
    color: #bdc6d0;
    font-size: 0.86rem;
}

.lpe-footer__column a:hover,
.lpe-footer__legal a:hover {
    color: #fff;
}

.lpe-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin-top: 48px;
    padding-top: 20px;
    border-top: 1px solid rgba(216, 180, 103, 0.14);
    color: #8793a0;
    font-size: 0.72rem;
}

.lpe-footer__copyright,
.lpe-footer__legal {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

/* Responsive
-------------------------------------------------------------- */
@media (max-width: 1180px) {
    .lpe-header__inner {
        grid-template-columns: 210px 1fr;
    }

    .lpe-nav {
        gap: 18px;
    }

    .lpe-nav__primary {
        gap: 15px;
    }

    .lpe-nav__actions .lpe-button--ghost {
        display: none;
    }

    .lpe-ministry-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lpe-ministry-grid--seven > :nth-child(n + 5) {
        transform: none;
    }
}

@media (max-width: 900px) {
    .admin-bar .lpe-header {
        top: 46px;
    }

    .lpe-header__inner {
        min-height: 70px;
        grid-template-columns: 1fr auto;
    }

    .lpe-logo {
        width: 210px;
    }

    .lpe-menu-toggle {
        display: block;
    }

    .lpe-nav {
        position: absolute;
        top: 70px;
        right: 16px;
        left: 16px;
        display: none;
        align-items: stretch;
        padding: 20px;
        border: 1px solid var(--lpe-line-dark);
        border-radius: 12px;
        background: #06111f;
        box-shadow: var(--lpe-shadow);
    }

    .lpe-nav.is-open {
        display: grid;
        gap: 18px;
    }

    .lpe-nav__primary,
    .lpe-nav__actions {
        display: grid;
        gap: 4px;
    }

    .lpe-nav__actions {
        grid-template-columns: repeat(2, 1fr);
    }

    .lpe-nav__actions .lpe-button--ghost {
        display: inline-flex;
    }

    .lpe-nav__link {
        padding: 10px;
    }

    .lpe-nav__link::after {
        display: none;
    }

    .lpe-home-hero__grid,
    .lpe-home-manifesto__grid,
    .lpe-home-method__inner {
        grid-template-columns: 1fr;
    }

    .lpe-home-hero__visual {
        min-height: 330px;
    }

    .lpe-home-hero__visual img {
        width: min(330px, 80vw);
    }

    .lpe-home-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .lpe-home-stats a:nth-child(2) {
        border-right: 0;
    }

    .lpe-home-stats a:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(216, 180, 103, 0.18);
    }

    .lpe-home-pole-grid,
    .lpe-home-article-grid,
    .lpe-article-list,
    .lpe-related-articles-grid,
    .lpe-law-grid,
    .lpe-identity-grid {
        grid-template-columns: 1fr;
    }

    .lpe-card--pole {
        min-height: 300px;
    }

    .lpe-home-section-heading,
    .lpe-home-cta__inner,
    .lpe-manifesto-next__inner,
    .lpe-poles-outro__inner,
    .lpe-identity-manifesto,
    .lpe-laws-teaser {
        align-items: flex-start;
        flex-direction: column;
    }

    .lpe-triptych__grid,
    .lpe-method {
        grid-template-columns: 1fr;
    }

    .lpe-block,
    .lpe-method > div {
        border-right: 0;
        border-bottom: 1px solid var(--lpe-line-light);
    }

    .lpe-method > div {
        border-bottom-color: var(--lpe-line-dark);
    }

    .lpe-block:last-child,
    .lpe-method > div:last-child {
        border-bottom: 0;
    }

    .lpe-feedback-panel {
        grid-template-columns: 1fr;
    }

    .lpe-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lpe-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .lpe-shell {
        width: min(calc(100% - 28px), var(--lpe-shell));
    }

    .lpe-slogan-bar {
        min-height: 42px;
        font-size: 0.59rem;
        letter-spacing: 0.09em;
    }

    .lpe-logo {
        width: 176px;
    }

    .lpe-home-hero__content h1 {
        font-size: clamp(2.65rem, 13vw, 4.3rem);
    }

    .lpe-home-hero__visual {
        display: none;
    }

    .lpe-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .lpe-actions .lpe-button {
        width: 100%;
    }

    .lpe-home-stats a {
        min-height: 96px;
        padding: 15px 8px;
    }

    .lpe-home-stats strong {
        font-size: 1.8rem;
    }

    .lpe-home-manifesto h2 {
        font-size: 2.65rem;
    }

    .lpe-home-method__steps > div {
        grid-template-columns: 55px 1fr;
        padding: 20px;
    }

    .lpe-card--ministere {
        min-height: 300px;
    }

    .lpe-ministry-grid,
    .lpe-action-grid {
        grid-template-columns: 1fr;
    }

    .lpe-ministry-hero__layout {
        grid-template-columns: 1fr;
    }

    .lpe-ministry-hero__number {
        font-size: 6.5rem;
    }

    .lpe-triptych__header {
        align-items: flex-start;
        padding: 22px;
    }

    .lpe-block {
        padding: 24px;
    }

    .lpe-feedback-panel {
        padding: 24px;
    }

    .lpe-ministry-pagination__inner,
    .lpe-article-navigation__inner {
        grid-template-columns: 1fr;
    }

    .lpe-article-navigation__next a,
    .lpe-ministry-pagination__next {
        justify-content: flex-start;
        text-align: left;
    }

    .lpe-law-card {
        padding: 26px 22px;
    }

    .lpe-manifesto-surface {
        padding: 27px 22px;
        font-size: 1.1rem;
    }

    .lpe-manifesto-surface blockquote {
        padding: 24px;
    }

    .lpe-footer__grid {
        grid-template-columns: 1fr;
    }

    .lpe-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}

/* V4.4 — une interface plus claire, plus humaine et plus vivante
-------------------------------------------------------------- */
.lpe-slogan-bar {
    position: relative;
    min-height: 38px;
    overflow: hidden;
}

.lpe-slogan-bar__progress {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    background: rgba(255, 255, 255, 0.06);
}

.lpe-slogan-bar__progress i {
    width: 100%;
    height: 100%;
    display: block;
    transform: scaleX(0);
    transform-origin: left center;
    background: linear-gradient(90deg, #198cff, #fff3d1 52%, #ff2948);
}

.lpe-header__inner {
    min-height: 88px;
    grid-template-columns: minmax(174px, 218px) minmax(0, 1fr);
}

.lpe-header.is-compact .lpe-header__inner {
    min-height: 74px;
}

.lpe-logo {
    width: auto;
    height: auto;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.lpe-wordmark {
    position: relative;
    display: inline-flex;
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(2rem, 3vw, 2.65rem);
    font-weight: 950;
    letter-spacing: -0.08em;
    line-height: 1;
    filter: drop-shadow(0 0 16px rgba(255, 255, 255, 0.12));
}

.lpe-wordmark::after {
    content: "";
    position: absolute;
    top: -20%;
    bottom: -20%;
    left: -45%;
    width: 25%;
    opacity: 0;
    transform: skewX(-20deg);
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.75), transparent);
    animation: lpe-wordmark-shine 7s ease-in-out infinite;
}

.lpe-wordmark__l { color: #268cff; }
.lpe-wordmark__p { color: #fff7e4; }
.lpe-wordmark__e { color: #ff3650; }

.lpe-logo__signature {
    max-width: 82px;
    color: #aab7c7;
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
}

@keyframes lpe-wordmark-shine {
    0%, 78%, 100% { left: -45%; opacity: 0; }
    82% { opacity: 0.75; }
    93% { left: 125%; opacity: 0; }
}

.lpe-nav__primary {
    gap: clamp(14px, 1.5vw, 24px);
}

.lpe-nav__link {
    font-size: 0.82rem;
}

.lpe-nav__mega {
    position: static;
}

.lpe-mega-menu {
    position: fixed;
    top: 126px;
    right: 0;
    left: 0;
    width: 100vw;
    grid-template-columns: minmax(230px, 1.15fr) repeat(3, minmax(180px, 1fr));
    padding-right: max(24px, calc((100vw - 1240px) / 2));
    padding-left: max(24px, calc((100vw - 1240px) / 2));
    border-right: 0;
    border-left: 0;
    border-radius: 0 0 24px 24px;
}

.admin-bar .lpe-mega-menu {
    top: 158px;
}

.lpe-mega-menu > * {
    padding: 34px clamp(20px, 2.5vw, 36px);
}

.lpe-mega-menu nav a {
    padding: 9px 0;
    font-size: 0.9rem;
}

/* Hero plus léger : le texte se lit immédiatement. */
.lpe-home-stage,
.lpe-home-stage__slides,
.lpe-home-stage__grid {
    min-height: clamp(650px, calc(100svh - 126px), 790px);
}

.lpe-home-stage__grid {
    grid-template-columns: minmax(360px, 0.88fr) minmax(0, 1.12fr);
    gap: clamp(28px, 4vw, 64px);
    padding-top: clamp(42px, 5vh, 66px);
    padding-bottom: clamp(118px, 14vh, 145px);
}

.lpe-home-stage__content h1,
.lpe-home-stage__content h2 {
    font-size: clamp(2.8rem, 4.7vw, 5.7rem);
    line-height: 0.98;
}

.lpe-home-stage__lead {
    max-width: 590px;
    margin-top: 22px;
    color: #d1d9e3;
    font-size: clamp(1rem, 1.2vw, 1.12rem);
    line-height: 1.62;
}

.lpe-home-stage__slide.is-active .lpe-home-stage__meta,
.lpe-home-stage__slide.is-active .lpe-home-stage__content h1,
.lpe-home-stage__slide.is-active .lpe-home-stage__content h2,
.lpe-home-stage__slide.is-active .lpe-home-stage__lead,
.lpe-home-stage__slide.is-active .lpe-home-stage__actions,
.lpe-home-stage__slide.is-active .lpe-stage-visual {
    transition-delay: 0.08s;
}

/* Lexique */
.lpe-words-page {
    background: #f5f2eb;
    color: #091526;
}

.lpe-words-hero {
    padding: clamp(76px, 10vw, 138px) 0;
    color: #f7f9fc;
    background:
        radial-gradient(circle at 86% 30%, rgba(35, 123, 225, 0.25), transparent 30%),
        linear-gradient(135deg, #030b17, #0b2342);
}

.lpe-words-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(230px, 0.38fr);
    align-items: center;
    gap: 60px;
}

.lpe-words-hero h1 {
    max-width: 900px;
    margin: 10px 0 20px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6.5vw, 6.8rem);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 0.95;
}

.lpe-words-hero p:not(.lpe-kicker) {
    max-width: 720px;
    color: #c2cfdd;
    font-size: clamp(1.05rem, 1.4vw, 1.25rem);
    line-height: 1.65;
}

.lpe-words-hero__mark {
    display: grid;
    justify-items: center;
    gap: 18px;
    text-align: center;
}

.lpe-words-hero__mark span {
    display: grid;
    width: clamp(150px, 18vw, 230px);
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid rgba(232, 198, 122, 0.5);
    border-radius: 50%;
    color: #e4c47b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(5rem, 10vw, 9rem);
    box-shadow: inset 0 0 70px rgba(216, 180, 103, 0.1);
}

.lpe-words-hero__mark small {
    max-width: 240px;
    color: #aab8c8;
    line-height: 1.5;
}

.lpe-words-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
    align-items: end;
    gap: 40px;
}

.lpe-words-search span {
    display: block;
    margin-bottom: 8px;
    font-size: 0.76rem;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-words-search input {
    width: 100%;
    min-height: 54px;
    padding: 0 18px;
    border: 1px solid #c9c4b8;
    border-radius: 8px;
    background: #fff;
    font-size: 1rem;
}

.lpe-words-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 34px 0;
}

.lpe-words-filters button {
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid #c9c4b8;
    border-radius: 999px;
    background: #fff;
    color: #1c2a3a;
    font-weight: 750;
}

.lpe-words-filters button.is-active {
    border-color: #0f62b8;
    background: #0b4e91;
    color: #fff;
}

.lpe-words-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.lpe-word-card {
    min-height: 240px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 28px;
    border: 1px solid #d8d2c6;
    border-radius: 12px;
    background: #fff;
    color: #111e2d;
    text-align: left;
    box-shadow: 0 14px 35px rgba(13, 28, 46, 0.06);
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.lpe-word-card:hover,
.lpe-word-card:focus-visible {
    border-color: #2b7acc;
    transform: translateY(-5px);
    box-shadow: 0 22px 48px rgba(13, 28, 46, 0.13);
}

.lpe-word-card > span,
.lpe-word-dialog small {
    color: #376f9e;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-word-card strong {
    margin: 12px 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.8rem;
}

.lpe-word-card small {
    color: #596574;
    font-size: 0.88rem;
    line-height: 1.55;
}

.lpe-word-card em {
    margin-top: auto;
    padding-top: 20px;
    color: #0d5ca7;
    font-size: 0.78rem;
    font-style: normal;
    font-weight: 850;
}

.lpe-word-dialog {
    width: min(900px, calc(100vw - 28px));
    max-height: min(88vh, 860px);
    padding: 0;
    overflow: auto;
    border: 1px solid rgba(216, 180, 103, 0.46);
    border-radius: 18px;
    background: #f7f4ed;
    color: #122033;
    box-shadow: 0 35px 110px rgba(0, 0, 0, 0.55);
}

.lpe-word-dialog::backdrop {
    background: rgba(0, 6, 14, 0.78);
    backdrop-filter: blur(7px);
}

.lpe-word-dialog__surface {
    padding: clamp(24px, 5vw, 54px);
}

.lpe-word-dialog__header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid #d7d0c3;
}

.lpe-word-dialog__header h2 {
    margin: 7px 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.4rem, 5vw, 4.7rem);
    line-height: 1;
}

.lpe-word-dialog__close {
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    border: 1px solid #bcb5a8;
    border-radius: 50%;
    background: transparent;
    color: #102033;
    font-size: 1.8rem;
}

.lpe-word-dialog__quick {
    margin: 28px 0;
    padding: 24px;
    border-left: 4px solid #176cbd;
    background: #e8f2fb;
}

.lpe-word-dialog__quick p {
    margin: 8px 0 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.55;
}

.lpe-word-dialog__sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.lpe-word-dialog__sections section {
    padding: 22px;
    border: 1px solid #dcd6ca;
    border-radius: 10px;
    background: #fff;
}

.lpe-word-dialog__sections p {
    margin: 10px 0 0;
    line-height: 1.6;
}

.lpe-word-dialog__sections .lpe-word-dialog__lpe {
    border-color: #c9ab65;
    background: #fffaf0;
}

.lpe-word-dialog__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 26px;
}

.lpe-word-dialog__footer a {
    color: #0b5aa4;
    font-weight: 850;
}

.lpe-inline-word {
    display: inline;
    padding: 0;
    border: 0;
    border-bottom: 1px dotted currentColor;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: help;
}

.lpe-dialog-is-open {
    overflow: hidden;
}

/* Jeu de gouvernement */
.lpe-government-game {
    --game-blue: #1574ce;
    --game-red: #d83348;
    background: #030914;
    color: #f5f7fa;
}

.lpe-game-hero {
    padding: clamp(70px, 9vw, 125px) 0 clamp(54px, 7vw, 90px);
    background:
        radial-gradient(circle at 84% 32%, rgba(35, 112, 197, 0.3), transparent 30%),
        radial-gradient(circle at 93% 82%, rgba(196, 34, 58, 0.22), transparent 28%);
}

.lpe-game-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 0.36fr);
    align-items: center;
    gap: 60px;
}

.lpe-game-hero h1 {
    max-width: 980px;
    margin: 12px 0 22px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6.6vw, 7.2rem);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 0.94;
}

.lpe-game-hero p:not(.lpe-kicker) {
    max-width: 740px;
    color: #bdc9d6;
    font-size: clamp(1.05rem, 1.45vw, 1.28rem);
    line-height: 1.62;
}

.lpe-game-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.lpe-game-hero__facts span {
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 999px;
    color: #b9c5d2;
    font-size: 0.78rem;
}

.lpe-game-hero__facts b {
    color: #f0d087;
}

.lpe-game-hero__seal {
    display: grid;
    width: min(260px, 100%);
    aspect-ratio: 1;
    place-content: center;
    justify-self: end;
    border: 1px solid rgba(216, 180, 103, 0.46);
    border-radius: 50%;
    text-align: center;
    box-shadow: inset 0 0 80px rgba(216, 180, 103, 0.1), 0 30px 80px rgba(0, 0, 0, 0.35);
}

.lpe-game-hero__seal span {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 4.8rem;
    letter-spacing: 0.08em;
}

.lpe-game-hero__seal small {
    color: #dabb76;
    text-transform: uppercase;
}

.lpe-game-stage {
    padding: 0 0 clamp(80px, 10vw, 150px);
}

.lpe-game-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 20px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px 12px 0 0;
    background: #091629;
}

.lpe-game-toolbar p {
    margin: 0;
    color: #adb9c7;
}

.lpe-game-toolbar button {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid rgba(216, 180, 103, 0.36);
    border-radius: 999px;
    background: transparent;
    color: #e7d4a4;
}

.lpe-game-screen {
    min-height: 680px;
    padding: clamp(28px, 5vw, 66px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-top: 0;
    border-radius: 0 0 16px 16px;
    background:
        linear-gradient(rgba(4, 14, 29, 0.94), rgba(3, 10, 21, 0.98)),
        repeating-linear-gradient(90deg, transparent 0 119px, rgba(255, 255, 255, 0.02) 120px);
    box-shadow: 0 32px 90px rgba(0, 0, 0, 0.36);
}

.lpe-game-screen[hidden] {
    display: none !important;
}

.lpe-game-screen > header {
    max-width: 760px;
    margin-bottom: 38px;
}

.lpe-game-screen > header h2 {
    margin: 8px 0 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.4rem, 5vw, 4.8rem);
    font-weight: 500;
    line-height: 1;
}

.lpe-game-screen > header p:not(.lpe-kicker) {
    color: #b9c5d2;
    font-size: 1.08rem;
    line-height: 1.6;
}

.lpe-game-wheels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.lpe-game-wheel-card {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    align-items: center;
    gap: 20px;
    padding: clamp(20px, 3vw, 34px);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    background: rgba(10, 28, 52, 0.72);
}

.lpe-game-wheel {
    position: relative;
    grid-row: span 2;
    display: grid;
    width: 180px;
    aspect-ratio: 1;
    place-items: center;
    border: 5px solid #081326;
    border-radius: 50%;
    background: conic-gradient(#1574ce 0 16%, #eff3f7 16% 32%, #d83348 32% 48%, #e3b95f 48% 64%, #174879 64% 80%, #851d31 80%);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.26), 0 18px 40px rgba(0, 0, 0, 0.35);
}

.lpe-game-wheel::after {
    content: "";
    position: absolute;
    width: 68%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #061326;
}

.lpe-game-wheel span {
    position: relative;
    z-index: 2;
    max-width: 100px;
    text-align: center;
    font-size: 0.7rem;
    line-height: 1.35;
}

.lpe-game-wheel b {
    color: #efd38f;
    font-size: 0.8rem;
}

.lpe-game-wheel.is-spinning {
    animation: lpe-wheel-spin 1s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes lpe-wheel-spin {
    to { transform: rotate(1080deg); }
}

.lpe-game-wheel-card label {
    display: grid;
    gap: 8px;
    color: #aab8c7;
    font-size: 0.72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-game-wheel-card select {
    width: 100%;
    min-height: 54px;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    background: #fff;
    color: #102035;
    font-size: 1rem;
}

.lpe-game-wheel-card > button,
.lpe-game-primary,
.lpe-game-consequence button,
.lpe-game-result__actions button {
    min-height: 52px;
    padding: 0 20px;
    border: 1px solid rgba(216, 180, 103, 0.58);
    border-radius: 7px;
    background: #d8b467;
    color: #071222;
    font-size: 0.9rem;
    font-weight: 900;
}

.lpe-game-primary {
    min-width: 250px;
    display: block;
    margin: 32px auto 0;
}

.lpe-game-progress {
    display: grid;
    grid-template-columns: auto minmax(120px, 1fr);
    align-items: center;
    gap: 18px;
    margin-bottom: 30px;
    color: #e4c477;
    font-weight: 850;
}

.lpe-game-progress > i {
    height: 5px;
    overflow: hidden;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.1);
}

.lpe-game-progress b {
    width: 33.33%;
    height: 100%;
    display: block;
    background: linear-gradient(90deg, #1574ce, #fff, #d83348);
    transition: width 0.5s ease;
}

.lpe-game-play-grid {
    display: grid;
    grid-template-columns: minmax(260px, 0.45fr) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 58px);
}

.lpe-game-character {
    position: relative;
    min-height: 390px;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.35);
    border-radius: 6px 28px 6px 28px;
    background: #081426;
}

.lpe-game-character img {
    width: 100%;
    height: 100%;
    position: absolute;
    object-fit: cover;
}

.lpe-game-character figcaption {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    gap: 6px;
    padding: 55px 22px 22px;
    background: linear-gradient(transparent, rgba(2, 8, 18, 0.96));
}

.lpe-game-character strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.8rem;
}

.lpe-game-character span {
    color: #b9c5d2;
    line-height: 1.45;
}

.lpe-game-ministry {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}

.lpe-game-ministry img {
    width: 54px;
    height: 54px;
    padding: 10px;
    border-radius: 50%;
    background: #fff;
}

.lpe-game-ministry span {
    display: grid;
}

.lpe-game-ministry small,
.lpe-game-consequence small {
    color: #d9bd7e;
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-game-ministry strong {
    font-size: 1.05rem;
}

.lpe-game-alert {
    color: #f0cc7d;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-game-brief h2 {
    margin: 10px 0 16px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 4vw, 4.2rem);
    font-weight: 500;
    line-height: 1;
}

.lpe-game-brief > p:not(.lpe-game-alert) {
    color: #c4cfda;
    font-size: 1.06rem;
    line-height: 1.62;
}

.lpe-game-constraints {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 18px;
}

.lpe-game-constraints span {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 999px;
    color: #aab8c7;
    font-size: 0.72rem;
}

.lpe-game-choices {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
    margin-top: 28px;
}

.lpe-game-choices button {
    min-height: 124px;
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 10px;
    background: #0b1b31;
    color: #f3f6f9;
    text-align: left;
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.lpe-game-choices button:hover,
.lpe-game-choices button:focus-visible {
    border-color: #e3c278;
    transform: translateY(-4px);
}

.lpe-game-choices button.is-selected {
    border-color: #e3c278;
    background: #142a42;
}

.lpe-game-choices small {
    color: #d9bd7e;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-game-choices strong {
    font-size: 1rem;
    line-height: 1.42;
}

.lpe-game-consequence {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 18px;
    padding: 20px;
    border-left: 3px solid #e1bf73;
    background: rgba(216, 180, 103, 0.09);
}

.lpe-game-consequence[hidden] {
    display: none;
}

.lpe-game-consequence p {
    flex: 1;
    margin: 0;
    line-height: 1.55;
}

.lpe-game-meters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
}

.lpe-game-meters > span {
    display: grid;
    gap: 7px;
    color: #aab8c7;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
}

.lpe-game-meters i {
    height: 7px;
    overflow: hidden;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.1);
}

.lpe-game-meters b {
    width: 50%;
    height: 100%;
    display: block;
    background: #35a96b;
    transition: width 0.4s ease;
}

.lpe-game-meters i.is-danger b {
    background: #e13c4d;
}

.lpe-game-result {
    display: grid;
    grid-template-columns: minmax(280px, 0.58fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(35px, 6vw, 78px);
}

.lpe-game-result__visual {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.4);
    border-radius: 7px 34px 7px 34px;
}

.lpe-game-result__visual img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lpe-game-result__visual.is-victory img {
    filter: saturate(1.12) brightness(1.08);
    animation: lpe-victory-breathe 5s ease-in-out infinite alternate;
}

.lpe-game-result__visual.is-victory::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 32%, rgba(255, 214, 121, 0.26), transparent 42%);
}

@keyframes lpe-victory-breathe {
    to { transform: scale(1.035); }
}

.lpe-game-result__visual span {
    position: absolute;
    z-index: 2;
    right: 20px;
    bottom: 20px;
    left: 20px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    background: rgba(3, 11, 23, 0.82);
    color: #f0d28b;
    font-weight: 900;
    text-align: center;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.lpe-game-result h2 {
    margin: 10px 0 18px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.5rem, 5vw, 5.4rem);
    font-weight: 500;
    line-height: 0.98;
}

.lpe-game-result > div > p:not(.lpe-kicker) {
    color: #bdc8d4;
    font-size: 1.08rem;
    line-height: 1.65;
}

.lpe-game-measures {
    display: grid;
    gap: 9px;
    margin: 24px 0;
}

.lpe-game-measures a {
    display: grid;
    gap: 4px;
    padding: 15px 17px;
    border: 1px solid rgba(216, 180, 103, 0.26);
    border-radius: 8px;
    background: rgba(216, 180, 103, 0.07);
    color: #f4f6f9;
}

.lpe-game-measures small,
.lpe-game-measures span {
    color: #bea969;
    font-size: 0.7rem;
}

.lpe-game-result__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.lpe-game-result__actions a {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    padding: 0 18px;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 7px;
    color: #fff;
    font-weight: 800;
}

.lpe-game-result__actions--tease {
    display: grid;
}

/* Les articles deviennent une une éditoriale, pas un catalogue. */
.lpe-article-list {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 24px;
}

.lpe-article-list .lpe-article-card {
    grid-column: span 4;
}

.lpe-article-list .lpe-article-card:first-child {
    grid-column: span 8;
    grid-row: span 2;
}

.lpe-article-list .lpe-article-card:nth-child(2),
.lpe-article-list .lpe-article-card:nth-child(3) {
    grid-column: span 4;
}

.lpe-article-list .lpe-article-card:first-child .lpe-article-card__media {
    aspect-ratio: 16 / 8;
}

.lpe-article-list .lpe-article-card:first-child .lpe-article-card__title {
    font-size: clamp(2rem, 3.3vw, 3.6rem);
}

.lpe-article-card__excerpt::before {
    content: "Pourquoi cela vous concerne — ";
    color: #8d6f2d;
    font-weight: 850;
}

.lpe-single-article::before {
    content: "";
    position: fixed;
    z-index: 1100;
    top: 0;
    left: 0;
    width: calc(var(--lpe-reading-progress, 0) * 100%);
    height: 3px;
    background: linear-gradient(90deg, #1b7bd1, #e4c378, #dc304b);
}

.lpe-article-reading-surface::before {
    content: "Dans cet article, vous allez comprendre le problème, ce qu’il change dans votre vie et les solutions proposées.";
    display: block;
    margin-bottom: 30px;
    padding: 20px 24px;
    border-left: 4px solid #1971c3;
    background: #eaf3fb;
    color: #14273d;
    font-weight: 750;
    line-height: 1.55;
}

@media (max-width: 1050px) {
    .lpe-logo__signature {
        display: none;
    }

    .lpe-header__inner {
        grid-template-columns: 94px minmax(0, 1fr);
    }

    .lpe-nav__primary {
        gap: 13px;
    }

    .lpe-nav__link {
        font-size: 0.75rem;
    }

    .lpe-game-wheel-card {
        grid-template-columns: 140px minmax(0, 1fr);
    }

    .lpe-game-wheel {
        width: 140px;
    }
}

@media (max-width: 820px) {
    .lpe-header__inner {
        grid-template-columns: 1fr auto;
    }

    .lpe-logo__signature {
        display: block;
    }

    .lpe-mega-menu,
    .lpe-nav__mega[open] .lpe-mega-menu,
    .lpe-nav__mega:hover .lpe-mega-menu,
    .lpe-nav__mega:focus-within .lpe-mega-menu {
        position: static;
        width: auto;
        padding: 0;
        grid-template-columns: 1fr;
        border-radius: 10px;
    }

    .lpe-mega-menu__intro {
        display: block;
    }

    .lpe-words-hero__grid,
    .lpe-words-tools,
    .lpe-game-hero__grid,
    .lpe-game-wheels,
    .lpe-game-play-grid,
    .lpe-game-result {
        grid-template-columns: 1fr;
    }

    .lpe-words-hero__mark,
    .lpe-game-hero__seal {
        display: none;
    }

    .lpe-words-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lpe-game-wheel-card {
        grid-template-columns: 150px minmax(0, 1fr);
    }

    .lpe-game-choices {
        grid-template-columns: 1fr;
    }

    .lpe-game-meters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lpe-game-result__visual {
        min-height: 430px;
    }

    .lpe-article-list .lpe-article-card,
    .lpe-article-list .lpe-article-card:first-child,
    .lpe-article-list .lpe-article-card:nth-child(2),
    .lpe-article-list .lpe-article-card:nth-child(3) {
        grid-column: span 6;
        grid-row: auto;
    }
}

@media (max-width: 560px) {
    .lpe-wordmark {
        font-size: 2.15rem;
    }

    .lpe-logo__signature {
        max-width: 72px;
        font-size: 0.48rem;
    }

    .lpe-home-stage,
    .lpe-home-stage__slides,
    .lpe-home-stage__grid {
        min-height: 720px;
    }

    .lpe-home-stage__content h1,
    .lpe-home-stage__content h2 {
        font-size: clamp(2.35rem, 12vw, 3.65rem);
    }

    .lpe-words-grid,
    .lpe-word-dialog__sections {
        grid-template-columns: 1fr;
    }

    .lpe-game-screen {
        min-height: 0;
        padding: 24px 18px;
    }

    .lpe-game-toolbar,
    .lpe-game-consequence {
        align-items: stretch;
        flex-direction: column;
    }

    .lpe-game-wheel-card {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .lpe-game-wheel {
        grid-row: auto;
    }

    .lpe-game-wheel-card label,
    .lpe-game-wheel-card > button {
        width: 100%;
    }

    .lpe-game-meters {
        grid-template-columns: 1fr;
    }

    .lpe-article-list .lpe-article-card,
    .lpe-article-list .lpe-article-card:first-child,
    .lpe-article-list .lpe-article-card:nth-child(2),
    .lpe-article-list .lpe-article-card:nth-child(3) {
        grid-column: 1 / -1;
    }
}

.lpe-life-profile__possible {
    position: relative;
    min-height: clamp(360px, 48vw, 640px);
    margin: 0 0 clamp(55px, 8vw, 96px);
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.4);
    border-radius: 5px 34px 5px 34px;
    background: #061121;
}

.lpe-life-profile__possible img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    animation: lpe-victory-breathe 7s ease-in-out infinite alternate;
}

.lpe-life-profile__possible::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(2, 9, 19, 0.94));
}

.lpe-life-profile__possible figcaption {
    position: absolute;
    z-index: 2;
    right: clamp(22px, 4vw, 54px);
    bottom: clamp(22px, 4vw, 50px);
    left: clamp(22px, 4vw, 54px);
    display: grid;
    gap: 7px;
}

.lpe-life-profile__possible small {
    color: #e1c27b;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-life-profile__possible strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4.5vw, 4.7rem);
    font-weight: 500;
    line-height: 1;
}

.lpe-life-profile__possible span {
    max-width: 650px;
    color: #d0d8e1;
    line-height: 1.5;
}

.lpe-home-article-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.lpe-home-article-card:first-child {
    grid-row: span 2;
}

.lpe-home-article-card:first-child .lpe-home-article-card__media {
    aspect-ratio: 16 / 9;
    min-height: 340px;
}

.lpe-home-article-card:first-child h3 {
    font-size: clamp(1.8rem, 3vw, 3rem);
}

.lpe-home-article-card:first-child p::before,
.lpe-home-article-card:not(:first-child) p::before {
    content: "Ce que vous allez comprendre — ";
    color: #9a742e;
    font-weight: 850;
}

.lpe-article-next-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 48px;
}

.lpe-article-next-steps > div {
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 22px;
    border: 1px solid #d9d2c5;
    border-radius: 9px;
    background: #fff;
}

.lpe-article-next-steps small {
    color: #8f6c27;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-article-next-steps strong {
    color: #15263a;
    line-height: 1.4;
}

.lpe-article-next-steps a {
    margin-top: auto;
    padding-top: 12px;
    color: #0d61ab;
    font-weight: 850;
}

@media (max-width: 720px) {
    .lpe-article-next-steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .lpe-home-article-grid {
        grid-template-columns: 1fr;
    }

    .lpe-home-article-card:first-child {
        grid-row: auto;
    }

    .lpe-home-article-card:first-child .lpe-home-article-card__media {
        min-height: 240px;
    }
}

/* V4 — logo définitif, programme exhaustif et navigation ministérielle
-------------------------------------------------------------- */
.lpe-header__inner {
    grid-template-columns: 84px minmax(0, 1fr);
}

.lpe-logo {
    width: 64px;
    height: 64px;
}

.lpe-logo img {
    width: 64px;
    height: 64px;
    max-height: none;
    object-fit: contain;
}

.lpe-ministry-rail {
    position: fixed;
    z-index: 920;
    top: 142px;
    left: 14px;
    width: 58px;
    max-height: calc(100vh - 175px);
    padding: 10px;
    overflow: visible;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    background: rgba(1, 4, 10, 0.96);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.035),
        0 20px 55px rgba(0, 0, 0, 0.52);
    backdrop-filter: blur(20px);
}

.lpe-ministry-rail::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 20px;
    bottom: 20px;
    left: 50%;
    width: 2px;
    border-radius: 2px;
    background: linear-gradient(
        180deg,
        #277cff 0 33.33%,
        #fff 33.33% 66.66%,
        #ff264a 66.66% 100%
    );
    box-shadow:
        0 0 9px rgba(255, 255, 255, 0.32),
        0 0 22px rgba(39, 124, 255, 0.22);
    opacity: 0.48;
    transform: translateX(-50%);
}

.admin-bar .lpe-ministry-rail {
    top: 182px;
    max-height: calc(100vh - 207px);
}

.lpe-ministry-rail__track {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 4px;
    max-height: calc(100vh - 191px);
    overflow-y: auto;
    scrollbar-width: none;
}

.lpe-ministry-rail__track::-webkit-scrollbar {
    display: none;
}

.lpe-ministry-rail__item {
    --rail-color: #fff;
    position: relative;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 50%;
    color: #fff;
    background: #040913;
    opacity: 0.82;
    transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.lpe-ministry-rail__item--bleu {
    --rail-color: #3185ff;
}

.lpe-ministry-rail__item--blanc {
    --rail-color: #fff;
}

.lpe-ministry-rail__item--rouge {
    --rail-color: #ff3154;
}

.lpe-ministry-rail__item img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    transition: filter 0.2s ease, transform 0.2s ease;
}

.lpe-ministry-rail__item--bleu img {
    filter: saturate(2) brightness(1.35) drop-shadow(0 0 4px rgba(49, 133, 255, 0.78));
}

.lpe-ministry-rail__item--blanc img {
    filter: grayscale(1) brightness(0) invert(1) drop-shadow(0 0 5px rgba(255, 255, 255, 0.9));
}

.lpe-ministry-rail__item--rouge img {
    filter: saturate(2) brightness(1.35) drop-shadow(0 0 4px rgba(255, 49, 84, 0.8));
}

.lpe-ministry-rail__number {
    display: none;
}

.lpe-ministry-rail__item:hover,
.lpe-ministry-rail__item:focus-visible,
.lpe-ministry-rail__item.is-active {
    border-color: var(--rail-color);
    background: color-mix(in srgb, var(--rail-color), #030711 78%);
    box-shadow:
        0 0 0 2px color-mix(in srgb, var(--rail-color), transparent 74%),
        0 0 18px color-mix(in srgb, var(--rail-color), transparent 42%);
    opacity: 1;
    transform: scale(1.12);
}

.lpe-ministry-rail__item:hover img,
.lpe-ministry-rail__item:focus-visible img,
.lpe-ministry-rail__item.is-active img {
    transform: scale(1.08);
}

.lpe-ministry-rail__item:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.lpe-ministry-rail__label {
    position: absolute;
    top: 50%;
    left: 43px;
    width: max-content;
    max-width: 280px;
    padding: 8px 11px;
    border: 1px solid color-mix(in srgb, var(--rail-color), transparent 48%);
    border-radius: 8px;
    background: #020711;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
    line-height: 1.25;
    opacity: 0;
    pointer-events: none;
    transform: translate(-7px, -50%);
    transition: opacity 0.18s ease, transform 0.18s ease;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.42);
}

.lpe-ministry-rail__item:hover .lpe-ministry-rail__label,
.lpe-ministry-rail__item:focus-visible .lpe-ministry-rail__label {
    opacity: 1;
    transform: translate(0, -50%);
}

.lpe-ministry-hero.has-media {
    min-height: clamp(610px, 68vw, 760px);
    display: flex;
    align-items: center;
    border-bottom: 0;
    background: #07162b;
    color: #fff;
}

.lpe-ministry-hero__media,
.lpe-ministry-hero__veil {
    position: absolute;
    inset: 0;
}

.lpe-ministry-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lpe-ministry-hero__veil {
    z-index: 1;
    background: linear-gradient(90deg, rgba(1, 10, 25, 0.96) 0%, rgba(1, 10, 25, 0.82) 34%, rgba(1, 10, 25, 0.2) 64%, transparent 100%);
}

.lpe-ministry-hero.has-media .lpe-shell {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 150px), var(--lpe-shell));
}

.lpe-ministry-hero.has-media .lpe-ministry-hero__content {
    max-width: 760px;
}

.lpe-ministry-hero.has-media h1 {
    color: #fff;
    text-wrap: balance;
}

.lpe-ministry-hero.has-media .lpe-ministry-hero__intro {
    color: #d5dde6;
}

.lpe-ministry-hero.has-media .lpe-ministry-hero__number {
    color: #fff;
    opacity: 0.16;
}

.lpe-ministry-hero--blanc.has-media {
    background: #f4eadb;
    color: var(--lpe-ink);
}

.lpe-ministry-hero--blanc.has-media .lpe-ministry-hero__veil {
    background: linear-gradient(90deg, rgba(246, 237, 222, 0.98) 0%, rgba(246, 237, 222, 0.9) 34%, rgba(246, 237, 222, 0.25) 65%, transparent 100%);
}

.lpe-ministry-hero--blanc.has-media h1 {
    color: var(--lpe-ink);
}

.lpe-ministry-hero--blanc.has-media .lpe-ministry-hero__intro {
    color: #4a5260;
}

.lpe-ministry-hero--blanc.has-media .lpe-ministry-hero__number {
    color: var(--lpe-ink);
    opacity: 0.1;
}

.lpe-ministry-hero__stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin: 28px 0 0;
    color: inherit;
    font-size: 0.76rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.lpe-ministry-hero__stats strong {
    color: var(--ministry-accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.4rem;
}

.lpe-ministry-hero--blanc .lpe-ministry-hero__stats strong {
    color: #8b652b;
}

.lpe-section-heading--program {
    max-width: 900px;
}

.lpe-section-heading--program h2 {
    max-width: 820px;
    text-wrap: balance;
}

.lpe-section--flagship-measures {
    background: #061426;
    color: #fff;
}

.lpe-section--flagship-measures .lpe-section-heading p:last-child {
    color: #aebac8;
}

.lpe-flagship-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 42px;
}

.lpe-flagship-card {
    position: relative;
    display: flex;
    min-height: 520px;
    overflow: hidden;
    flex-direction: column;
    padding: clamp(26px, 3vw, 38px);
    border: 1px solid rgba(216, 180, 103, 0.22);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(15, 44, 76, 0.86), rgba(5, 17, 32, 0.98)),
        #081b31;
    box-shadow: 0 26px 55px rgba(0, 0, 0, 0.2);
}

.lpe-flagship-card::before {
    position: absolute;
    top: 0;
    right: 0;
    width: 42%;
    height: 4px;
    background: var(--ministry-accent);
    content: "";
}

.lpe-flagship-card__rank {
    position: absolute;
    top: 20px;
    right: 24px;
    color: rgba(255, 255, 255, 0.08);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 6.2rem;
    font-weight: 700;
    line-height: 1;
}

.lpe-flagship-card__label {
    position: relative;
    z-index: 1;
    margin: 0 0 28px;
    color: var(--ministry-accent);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.lpe-flagship-card h3 {
    position: relative;
    z-index: 1;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.42rem, 2vw, 2rem);
    line-height: 1.13;
    text-wrap: balance;
}

.lpe-flagship-card__promise {
    position: relative;
    z-index: 1;
    margin: 24px 0 32px;
    color: #d2dae4;
    font-size: 0.95rem;
    font-weight: 620;
}

.lpe-flagship-card__details {
    position: relative;
    z-index: 1;
    margin-top: auto;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.lpe-flagship-card__details summary,
.lpe-measure-item summary {
    list-style: none;
    cursor: pointer;
}

.lpe-flagship-card__details summary::-webkit-details-marker,
.lpe-measure-item summary::-webkit-details-marker {
    display: none;
}

.lpe-flagship-card__details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 0 0;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-flagship-card__details summary span,
.lpe-measure-item__toggle {
    color: var(--ministry-accent);
    font-size: 1.5rem;
    line-height: 1;
    transition: transform 0.2s ease;
}

.lpe-flagship-card__details[open] summary span,
.lpe-measure-item[open] .lpe-measure-item__toggle {
    transform: rotate(45deg);
}

.lpe-flagship-card__details > div {
    padding: 19px 0 0;
    color: #bdc8d4;
    font-size: 0.88rem;
}

.lpe-section--all-measures {
    background: #f1eee7;
    color: var(--lpe-ink);
}

.lpe-measure-families {
    display: grid;
    gap: 22px;
    margin-top: 42px;
}

.lpe-measure-family {
    overflow: hidden;
    border: 1px solid rgba(20, 36, 58, 0.14);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(7, 22, 43, 0.07);
}

.lpe-measure-family__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 26px;
    border-bottom: 1px solid var(--lpe-line-light);
    background: #e9e4da;
}

.lpe-measure-family__header h3 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 2vw, 1.75rem);
}

.lpe-measure-family__header span {
    flex: 0 0 auto;
    color: var(--ministry-accent);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-measure-item {
    border-bottom: 1px solid var(--lpe-line-light);
}

.lpe-measure-item:last-child {
    border-bottom: 0;
}

.lpe-measure-item summary {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 16px;
    padding: 19px 25px;
    transition: background 0.18s ease;
}

.lpe-measure-item summary:hover,
.lpe-measure-item summary:focus-visible,
.lpe-measure-item[open] summary {
    background: #faf8f3;
}

.lpe-measure-item summary:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--ministry-accent), transparent 55%);
    outline-offset: -3px;
}

.lpe-measure-item__number {
    color: var(--ministry-accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.1rem;
}

.lpe-measure-item summary strong {
    font-size: 0.88rem;
    line-height: 1.35;
}

.lpe-measure-item__content {
    max-width: 980px;
    padding: 0 70px 26px 79px;
    color: #465364;
    font-size: 0.92rem;
}

.lpe-measure-item__promise {
    color: var(--lpe-ink);
    font-weight: 750;
}

.lpe-section--ministry-introduction {
    padding-top: clamp(65px, 8vw, 105px);
}

.lpe-manifesto-hero {
    position: relative;
    min-height: clamp(680px, 68vw, 860px);
    display: flex;
    overflow: hidden;
    align-items: center;
    padding: clamp(90px, 11vw, 150px) 0;
}

.lpe-manifesto-hero__portrait,
.lpe-manifesto-hero__veil {
    position: absolute;
    inset: 0;
}

.lpe-manifesto-hero__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lpe-manifesto-hero__veil {
    z-index: 1;
    background: linear-gradient(90deg, rgba(2, 10, 23, 0.98) 0%, rgba(2, 10, 23, 0.88) 36%, rgba(2, 10, 23, 0.18) 68%, transparent 100%);
}

.lpe-manifesto-hero__inner {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 150px), var(--lpe-shell));
    margin-inline: auto;
}

.lpe-manifesto-hero h1 {
    max-width: 760px;
    font-size: clamp(3.1rem, 5.8vw, 6.1rem);
    text-wrap: balance;
}

.lpe-manifesto-hero__signature {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 32px;
    color: var(--lpe-gold) !important;
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-manifesto-hero__signature span {
    width: 42px;
    height: 1px;
    background: currentColor;
}

@media (max-width: 1180px) {
    .lpe-ministry-rail {
        top: auto;
        right: 12px;
        bottom: 12px;
        left: 12px;
        width: auto;
        max-height: none;
        border-radius: 18px;
    }

    .lpe-ministry-rail::before {
        top: 50%;
        right: 20px;
        bottom: auto;
        left: 20px;
        width: auto;
        height: 2px;
        background: linear-gradient(
            90deg,
            #277cff 0 33.33%,
            #fff 33.33% 66.66%,
            #ff264a 66.66% 100%
        );
        transform: translateY(-50%);
    }

    .admin-bar .lpe-ministry-rail {
        top: auto;
        max-height: none;
    }

    .lpe-ministry-rail__track {
        display: flex;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .lpe-ministry-rail__item {
        flex: 0 0 36px;
    }

    .lpe-ministry-rail__label {
        display: none;
    }

    .lpe-ministry-hero.has-media .lpe-shell,
    .lpe-manifesto-hero__inner {
        width: min(calc(100% - 64px), var(--lpe-shell));
    }
}

@media (max-width: 900px) {
    .lpe-flagship-grid {
        grid-template-columns: 1fr;
    }

    .lpe-flagship-card {
        min-height: 0;
    }

    .lpe-ministry-hero.has-media {
        min-height: 720px;
    }

    .lpe-ministry-hero.has-media .lpe-ministry-hero__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .lpe-ministry-hero.has-media .lpe-ministry-hero__number {
        display: none;
    }
}

@media (max-width: 720px) {
    .lpe-header__inner {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    .lpe-logo,
    .lpe-logo img {
        width: 52px;
        height: 52px;
    }

    .lpe-ministry-hero.has-media {
        min-height: 820px;
        align-items: flex-start;
        padding-top: 82px;
    }

    .lpe-ministry-hero__media img {
        object-position: center;
    }

    .lpe-ministry-hero__veil,
    .lpe-ministry-hero--blanc.has-media .lpe-ministry-hero__veil {
        background: linear-gradient(180deg, rgba(3, 12, 27, 0.96) 0%, rgba(3, 12, 27, 0.84) 38%, rgba(3, 12, 27, 0.08) 75%, transparent 100%);
    }

    .lpe-ministry-hero--blanc.has-media {
        color: #fff;
    }

    .lpe-ministry-hero--blanc.has-media h1 {
        color: #fff;
    }

    .lpe-ministry-hero--blanc.has-media .lpe-ministry-hero__intro {
        color: #d7dde5;
    }

    .lpe-ministry-hero.has-media .lpe-shell,
    .lpe-manifesto-hero__inner {
        width: min(calc(100% - 28px), var(--lpe-shell));
    }

    .lpe-ministry-hero__stats {
        align-items: flex-start;
        flex-direction: column;
    }

    .lpe-ministry-hero__stats > span {
        display: none;
    }

    .lpe-measure-family__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
        padding: 20px;
    }

    .lpe-measure-item summary {
        grid-template-columns: 28px minmax(0, 1fr) 24px;
        gap: 10px;
        padding: 18px;
    }

    .lpe-measure-item__content {
        padding: 0 20px 24px 56px;
    }

    .lpe-manifesto-hero {
        min-height: 980px;
        align-items: flex-start;
        padding-top: 80px;
    }

    .lpe-manifesto-hero__portrait img {
        object-position: center bottom;
    }

    .lpe-manifesto-hero__veil {
        background: linear-gradient(180deg, rgba(2, 10, 23, 0.98) 0%, rgba(2, 10, 23, 0.9) 38%, rgba(2, 10, 23, 0.1) 72%, transparent 100%);
    }

    .lpe-manifesto-hero h1 {
        font-size: clamp(2.7rem, 12vw, 4.4rem);
    }
}

/* LPE V3 — plateforme éditoriale et visuels génériques légers
-------------------------------------------------------------- */

/* Méga-menu Programme */
.lpe-nav__mega {
    position: relative;
}

.lpe-nav__mega > summary {
    cursor: pointer;
    list-style: none;
}

.lpe-nav__mega > summary::-webkit-details-marker {
    display: none;
}

.lpe-nav__chevron {
    width: 7px;
    height: 7px;
    display: inline-block;
    margin-left: 7px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 0.2s ease;
}

.lpe-nav__mega[open] .lpe-nav__chevron {
    transform: translateY(2px) rotate(225deg);
}

.lpe-mega-menu {
    position: absolute;
    top: calc(100% + 13px);
    right: clamp(-420px, -28vw, -200px);
    z-index: 1200;
    width: min(920px, 92vw);
    display: none;
    grid-template-columns: 1.05fr repeat(3, minmax(150px, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.32);
    border-radius: 14px;
    background: rgba(3, 11, 22, 0.985);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.48);
    backdrop-filter: blur(22px);
}

.lpe-nav__mega[open] .lpe-mega-menu,
.lpe-nav__mega:hover .lpe-mega-menu,
.lpe-nav__mega:focus-within .lpe-mega-menu {
    display: grid;
}

.lpe-mega-menu::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 9% 8%, rgba(39, 136, 232, 0.18), transparent 34%),
        radial-gradient(circle at 94% 92%, rgba(239, 61, 53, 0.16), transparent 32%);
}

.lpe-mega-menu > * {
    position: relative;
    min-width: 0;
    padding: 28px 24px;
}

.lpe-mega-menu > nav {
    border-left: 1px solid rgba(255, 255, 255, 0.08);
}

.lpe-mega-menu h2,
.lpe-mega-menu__intro > span {
    display: block;
    margin: 0 0 14px;
    color: var(--lpe-gold);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.lpe-mega-menu nav a {
    display: block;
    padding: 7px 0;
    color: #e6ebf1;
    font-size: 0.82rem;
    line-height: 1.35;
    transition: color 0.18s ease, transform 0.18s ease;
}

.lpe-mega-menu nav a:hover,
.lpe-mega-menu nav a:focus-visible {
    color: #fff;
    transform: translateX(3px);
}

.lpe-mega-menu__intro strong {
    display: block;
    margin-bottom: 22px;
    color: #fff;
    font-size: 1.25rem;
    font-weight: 730;
    line-height: 1.35;
}

.lpe-mega-menu__intro a {
    color: var(--lpe-gold);
    font-size: 0.76rem;
    font-weight: 850;
    text-transform: uppercase;
}

/* Visuel générique : aucune image lourde, seulement CSS + icône SVG */
.lpe-generic-visual {
    --lpe-visual-a: #2788e8;
    --lpe-visual-b: #f7f3e8;
    --lpe-visual-c: #ef3d35;
    position: relative;
    min-height: 160px;
    display: grid;
    place-items: center;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 18% 22%, color-mix(in srgb, var(--lpe-visual-a) 28%, transparent), transparent 34%),
        radial-gradient(circle at 84% 76%, color-mix(in srgb, var(--lpe-visual-c) 24%, transparent), transparent 32%),
        linear-gradient(145deg, #061426, #020812 72%);
}

.lpe-generic-visual::before,
.lpe-generic-visual::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.lpe-generic-visual::before {
    inset: -24%;
    z-index: -2;
    opacity: 0.42;
    background:
        repeating-linear-gradient(90deg, transparent 0 24px, rgba(255, 255, 255, 0.055) 24px 25px),
        repeating-linear-gradient(0deg, transparent 0 24px, rgba(255, 255, 255, 0.045) 24px 25px);
    transform: perspective(440px) rotateX(58deg) rotateZ(-8deg) translateY(12%);
    transform-origin: center;
}

.lpe-generic-visual::after {
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, transparent 50%, rgba(1, 5, 11, 0.72));
}

.lpe-generic-visual__pixels {
    position: absolute;
    top: 18%;
    left: 50%;
    width: 68%;
    aspect-ratio: 1.7;
    opacity: 0.72;
    background:
        conic-gradient(from 90deg at 1px 1px, transparent 25%, var(--lpe-visual-a) 0 50%, transparent 0) 0 0 / 16px 16px,
        conic-gradient(from 90deg at 1px 1px, transparent 25%, var(--lpe-visual-c) 0 50%, transparent 0) 8px 8px / 22px 22px;
    mask-image: radial-gradient(ellipse at center, #000 12%, rgba(0, 0, 0, 0.92) 40%, transparent 76%);
    transform: translateX(-50%) skewX(-10deg) rotate(-4deg);
    filter: drop-shadow(0 0 22px rgba(39, 136, 232, 0.12));
}

.lpe-generic-visual img {
    position: relative;
    z-index: 2;
    width: clamp(52px, 20%, 96px);
    height: auto;
    filter: drop-shadow(0 10px 24px rgba(0, 0, 0, 0.45));
}

.lpe-generic-visual__label {
    position: absolute;
    right: 16px;
    bottom: 13px;
    left: 16px;
    z-index: 3;
    overflow: hidden;
    color: #f5f2e9;
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-align: center;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.lpe-generic-visual--blue {
    --lpe-visual-a: #2d91ef;
    --lpe-visual-b: #bcdfff;
    --lpe-visual-c: #0b3d82;
}

.lpe-generic-visual--red {
    --lpe-visual-a: #8c1c25;
    --lpe-visual-b: #ffd2ca;
    --lpe-visual-c: #ef3d35;
}

.lpe-generic-visual--white {
    --lpe-visual-a: #7da9d6;
    --lpe-visual-b: #f7f3e8;
    --lpe-visual-c: #d8b467;
    background:
        radial-gradient(circle at 20% 20%, rgba(39, 136, 232, 0.18), transparent 36%),
        radial-gradient(circle at 84% 74%, rgba(239, 61, 53, 0.14), transparent 34%),
        linear-gradient(145deg, #132740, #06111f 74%);
}

.lpe-generic-visual--gold {
    --lpe-visual-a: #d8b467;
    --lpe-visual-b: #fff3cc;
    --lpe-visual-c: #9b7434;
}

.lpe-generic-visual--tricolore {
    --lpe-visual-a: #2788e8;
    --lpe-visual-b: #f7f3e8;
    --lpe-visual-c: #ef3d35;
}

/* Héros V3 réutilisables */
.lpe-v3-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(76px, 9vw, 132px) 0;
    border-bottom: 1px solid rgba(216, 180, 103, 0.18);
    background:
        radial-gradient(circle at 80% 15%, rgba(39, 136, 232, 0.16), transparent 32%),
        linear-gradient(145deg, #020914, #071a31 60%, #030b17);
}

.lpe-v3-hero--red {
    background:
        radial-gradient(circle at 82% 20%, rgba(239, 61, 53, 0.18), transparent 34%),
        linear-gradient(145deg, #020914, #15101b 60%, #030b17);
}

.lpe-v3-hero--gold {
    background:
        radial-gradient(circle at 82% 20%, rgba(216, 180, 103, 0.2), transparent 34%),
        linear-gradient(145deg, #020914, #18160f 60%, #030b17);
}

.lpe-v3-hero--tricolore {
    background:
        radial-gradient(circle at 72% 14%, rgba(247, 243, 232, 0.1), transparent 28%),
        radial-gradient(circle at 88% 76%, rgba(239, 61, 53, 0.17), transparent 31%),
        radial-gradient(circle at 62% 78%, rgba(39, 136, 232, 0.18), transparent 33%),
        linear-gradient(145deg, #020914, #07182d 58%, #030b17);
}

.lpe-v3-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.82fr);
    align-items: center;
    gap: clamp(44px, 7vw, 100px);
}

.lpe-v3-hero__content h1 {
    max-width: 880px;
    margin: 0 0 22px;
    color: #fff;
    font-size: clamp(2.65rem, 5.6vw, 5.8rem);
    font-weight: 720;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.lpe-v3-hero__content .lpe-lead {
    margin-bottom: 28px;
}

.lpe-v3-hero__visual {
    min-height: clamp(300px, 34vw, 470px);
    border: 1px solid rgba(216, 180, 103, 0.28);
    border-radius: 22px;
    box-shadow: var(--lpe-shadow);
}

.lpe-status-pill {
    width: fit-content;
    padding: 9px 13px;
    border: 1px solid rgba(216, 180, 103, 0.42);
    border-radius: 999px;
    color: #ead5a8;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Cartes des modules */
.lpe-home-discovery,
.lpe-section--discovery,
.lpe-section--quiz,
.lpe-section--videos,
.lpe-section--events,
.lpe-section--theatre-concept,
.lpe-section--theatre-vote,
.lpe-section--newsletter,
.lpe-section--simulator {
    padding: clamp(78px, 9vw, 124px) 0;
    background: #030b17;
}

.lpe-home-discovery {
    border-top: 1px solid rgba(216, 180, 103, 0.12);
    border-bottom: 1px solid rgba(216, 180, 103, 0.12);
    background:
        radial-gradient(circle at 12% 28%, rgba(39, 136, 232, 0.1), transparent 30%),
        radial-gradient(circle at 88% 72%, rgba(239, 61, 53, 0.09), transparent 28%),
        #030b17;
}

.lpe-module-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.lpe-module-grid--home {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lpe-module-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.18);
    border-radius: 16px;
    background: rgba(7, 21, 39, 0.72);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.17);
    transition: transform 0.24s ease, border-color 0.24s ease, box-shadow 0.24s ease;
}

.lpe-module-card:hover,
.lpe-module-card:focus-visible {
    transform: translateY(-5px);
    border-color: rgba(216, 180, 103, 0.52);
    box-shadow: 0 26px 62px rgba(0, 0, 0, 0.28);
}

.lpe-module-card__visual {
    min-height: 176px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.lpe-module-card__body {
    min-height: 250px;
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 23px;
}

.lpe-module-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    color: #8fbce8;
    font-size: 0.64rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-module-card__meta em {
    color: #d8c38f;
    font-size: 0.58rem;
    font-style: normal;
    letter-spacing: 0.05em;
    text-align: right;
}

.lpe-module-card__title {
    display: block;
    margin-bottom: 12px;
    color: #fff;
    font-size: clamp(1.2rem, 1.7vw, 1.55rem);
    line-height: 1.18;
}

.lpe-module-card__description {
    display: block;
    color: #aebbc9;
    font-size: 0.9rem;
    line-height: 1.58;
}

.lpe-module-card__link {
    display: block;
    margin-top: auto;
    padding-top: 22px;
    color: var(--lpe-gold);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-discovery-principle__grid,
.lpe-theatre-concept,
.lpe-newsletter-layout,
.lpe-simulator-scope {
    display: grid;
    grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(42px, 7vw, 100px);
    align-items: start;
}

.lpe-discovery-principle h2,
.lpe-theatre-concept h2,
.lpe-simulator-scope h2,
.lpe-newsletter-layout h2 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 1.05;
}

.lpe-discovery-principle__steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.lpe-discovery-principle__steps article {
    padding: 22px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 14px;
    background: #fff;
}

.lpe-discovery-principle__steps strong,
.lpe-simulator-steps > article > strong {
    color: var(--lpe-gold-dark);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
}

/* Quiz */
.lpe-quiz-context {
    max-width: 1180px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 0 auto 42px;
    padding: 18px 22px;
    border: 1px solid rgba(216, 180, 103, 0.34);
    border-radius: 3px 16px 3px 16px;
    background: linear-gradient(90deg, rgba(216, 180, 103, 0.1), rgba(255, 255, 255, 0.025));
}

.lpe-quiz-context p {
    margin: 0;
    color: #d8e0e9;
    font-size: 0.8rem;
}

.lpe-quiz-context a {
    flex: 0 0 auto;
    color: var(--lpe-gold);
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.lpe-section-heading--quiz-library {
    max-width: 820px;
    margin-bottom: 34px;
}

.lpe-quiz-library {
    max-width: 1180px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin: 0 auto 28px;
}

.lpe-quiz-library__item {
    display: grid;
    gap: 8px;
    padding: 20px;
    border: 1px solid rgba(216, 180, 103, 0.2);
    border-radius: 14px;
    background: rgba(5, 18, 35, 0.78);
    color: #eef2f7;
    text-align: left;
    cursor: pointer;
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.lpe-quiz-library__item:hover,
.lpe-quiz-library__item:focus-visible,
.lpe-quiz-library__item.is-active {
    transform: translateY(-2px);
    border-color: rgba(216, 180, 103, 0.6);
    background: rgba(12, 35, 62, 0.96);
}

.lpe-quiz-library__item span {
    color: var(--lpe-gold);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-quiz-library__item strong {
    font-size: 1.05rem;
    line-height: 1.25;
}

.lpe-quiz-library__item em {
    color: #9dabb9;
    font-size: 0.76rem;
    font-style: normal;
}

.lpe-quiz-library__content {
    min-height: 320px;
}
.lpe-quiz-shell {
    max-width: 980px;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.28);
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(11, 31, 56, 0.92), rgba(3, 11, 23, 0.98));
    box-shadow: var(--lpe-shadow);
}

.lpe-quiz-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 40px;
    align-items: end;
    padding: clamp(28px, 5vw, 50px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.lpe-quiz-header h2,
.lpe-quiz-header h3 {
    margin: 0 0 10px;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.05;
}

.lpe-quiz-header p {
    margin-bottom: 0;
    color: #b8c3d0;
}

.lpe-quiz-progress span {
    display: block;
    margin-bottom: 10px;
    color: #d8c38f;
    font-size: 0.72rem;
    font-weight: 850;
    text-align: right;
    text-transform: uppercase;
}

.lpe-quiz-progress > div {
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
}

.lpe-quiz-progress i {
    width: 20%;
    height: 100%;
    display: block;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--lpe-blue), var(--lpe-gold), var(--lpe-red));
    transition: width 0.28s ease;
}

.lpe-quiz-question,
.lpe-quiz-result {
    padding: clamp(30px, 6vw, 64px);
}

.lpe-quiz-question__number {
    color: var(--lpe-gold);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.lpe-quiz-question h3,
.lpe-quiz-question h4 {
    max-width: 800px;
    margin: 0 0 30px;
    font-size: clamp(1.7rem, 3.7vw, 3rem);
    line-height: 1.15;
}

.lpe-quiz-choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.lpe-quiz-choice {
    min-height: 74px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 15px 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.035);
    color: #eef2f7;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.lpe-quiz-choice:hover,
.lpe-quiz-choice:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(216, 180, 103, 0.56);
    background: rgba(216, 180, 103, 0.07);
}

.lpe-quiz-choice > span {
    width: 34px;
    height: 34px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    color: var(--lpe-gold);
    font-size: 0.72rem;
    font-weight: 900;
}

.lpe-quiz-choice.is-correct {
    border-color: rgba(74, 205, 133, 0.78);
    background: rgba(74, 205, 133, 0.12);
}

.lpe-quiz-choice.is-wrong {
    border-color: rgba(239, 61, 53, 0.75);
    background: rgba(239, 61, 53, 0.11);
}

.lpe-quiz-choice:disabled {
    cursor: default;
    transform: none;
}

.lpe-quiz-feedback {
    margin-top: 24px;
    padding: 22px;
    border-left: 3px solid var(--lpe-gold);
    background: rgba(216, 180, 103, 0.07);
}

.lpe-quiz-feedback strong {
    display: block;
    margin-bottom: 5px;
    color: #fff;
    font-size: 1.2rem;
}

.lpe-quiz-feedback p {
    color: #c2ccd6;
}

.lpe-quiz-proof {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 24px;
    padding: 18px 20px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 2px 13px 2px 13px;
    background: rgba(0, 0, 0, 0.18);
}

.lpe-quiz-proof > span {
    display: grid;
    gap: 4px;
}

.lpe-quiz-proof small,
.lpe-quiz-response small {
    color: var(--lpe-gold);
    font-size: 0.56rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.lpe-quiz-feedback .lpe-quiz-proof strong {
    margin: 0;
    color: #fff;
    font-size: 0.86rem;
    line-height: 1.35;
}

.lpe-quiz-proof em {
    color: #8998a8;
    font-size: 0.66rem;
    font-style: normal;
}

.lpe-quiz-proof > a {
    flex: 0 0 auto;
    color: #fff;
    font-size: 0.64rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.lpe-quiz-response {
    margin-top: 28px;
}

.lpe-quiz-response > p {
    margin: 0 0 10px;
}

.lpe-quiz-response > div {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 9px;
}

.lpe-quiz-response a {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: start;
    padding: 14px;
    border: 1px solid rgba(216, 180, 103, 0.2);
    border-radius: 2px 11px 2px 11px;
    background: rgba(5, 18, 35, 0.76);
    color: #fff;
    transition: 0.2s ease;
}

.lpe-quiz-response a:hover,
.lpe-quiz-response a:focus-visible {
    border-color: rgba(216, 180, 103, 0.68);
    background: rgba(12, 35, 62, 0.96);
    transform: translateY(-2px);
    outline: 0;
}

.lpe-quiz-response a > span {
    color: var(--lpe-gold);
    font-size: 0.58rem;
    font-weight: 900;
}

.lpe-quiz-feedback .lpe-quiz-response a > strong {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1.38;
}

.lpe-quiz-feedback > .lpe-button {
    margin-top: 28px;
}

.lpe-quiz-result {
    text-align: center;
}

.lpe-quiz-result h3,
.lpe-quiz-result h4 {
    margin: 0;
    font-size: clamp(4rem, 12vw, 8rem);
    line-height: 1;
}

.lpe-quiz-result > p:not(.lpe-kicker) {
    max-width: 620px;
    margin: 20px auto 28px;
    color: #c2ccd6;
    font-size: 1.08rem;
}

.lpe-quiz-result .lpe-actions {
    justify-content: center;
}

.lpe-quiz-result .lpe-text-link {
    align-self: center;
}

/* Simulateur */
.lpe-simulator-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.lpe-simulator-steps article {
    min-height: 230px;
    padding: 26px;
    border: 1px solid rgba(216, 180, 103, 0.2);
    border-radius: 14px;
    background: rgba(8, 24, 44, 0.75);
}

.lpe-simulator-steps h3 {
    margin: 24px 0 10px;
    font-size: 1.45rem;
}

.lpe-simulator-steps p {
    color: #afbcc9;
}

.lpe-simulator-scope__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.lpe-simulator-scope__grid span {
    padding: 15px 17px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 10px;
    background: #fff;
    font-weight: 720;
}

/* Vidéothèque */
.lpe-media-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 14px;
    margin-bottom: 32px;
    padding: 18px;
    border: 1px solid rgba(216, 180, 103, 0.18);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.035);
}

.lpe-media-filters label {
    min-width: 210px;
    color: #d8c38f;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-media-filters select {
    width: 100%;
    display: block;
    margin-top: 6px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    background: #071528;
    color: #fff;
}

.lpe-text-button {
    padding: 10px 0;
    border: 0;
    background: transparent;
    color: var(--lpe-gold);
    font-size: 0.72rem;
    font-weight: 850;
    cursor: pointer;
    text-transform: uppercase;
}

.lpe-video-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.lpe-video-card {
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.18);
    border-radius: 15px;
    background: rgba(7, 21, 39, 0.72);
    transition: transform 0.22s ease, border-color 0.22s ease;
}

.lpe-video-card:hover {
    transform: translateY(-4px);
    border-color: rgba(216, 180, 103, 0.46);
}

.lpe-video-card[hidden] {
    display: none;
}

.lpe-video-card__visual {
    min-height: 210px;
}

.lpe-video-card__body {
    min-height: 310px;
    display: flex;
    flex-direction: column;
    padding: 22px;
}

.lpe-video-card__meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #8fbce8;
    font-size: 0.65rem;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-video-card__meta em {
    color: #d8c38f;
    font-style: normal;
}

.lpe-video-card__body > strong {
    margin: 14px 0 7px;
    color: #fff;
    font-size: 1.35rem;
    line-height: 1.2;
}

.lpe-video-card__creator {
    color: #d8c38f;
    font-size: 0.78rem;
}

.lpe-video-card__body p {
    color: #aebbc9;
    font-size: 0.88rem;
}

.lpe-video-card__link {
    margin-top: auto;
    padding-top: 18px;
    color: var(--lpe-gold);
    font-size: 0.7rem;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-filter-empty {
    padding: 30px;
    border: 1px dashed rgba(216, 180, 103, 0.35);
    text-align: center;
}

/* Événements */
.lpe-event-list {
    max-width: 980px;
    margin: 0 auto;
    display: grid;
    gap: 14px;
}

.lpe-event-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr) auto;
    align-items: center;
    gap: 25px;
    padding: 20px;
    border: 1px solid rgba(216, 180, 103, 0.2);
    border-radius: 14px;
    background: rgba(7, 21, 39, 0.72);
}

.lpe-event-card__date {
    min-height: 105px;
    display: grid;
    align-content: center;
    justify-items: center;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.03);
    text-align: center;
}

.lpe-event-card__date strong {
    color: #fff;
    font-size: 2.15rem;
    line-height: 1;
}

.lpe-event-card__date span,
.lpe-event-card__date em {
    color: #d8c38f;
    font-size: 0.67rem;
    font-style: normal;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-event-card__content h3 {
    margin: 4px 0 6px;
    font-size: 1.45rem;
}

.lpe-event-card__content p:not(.lpe-event-card__type) {
    margin: 0 0 6px;
    color: #aebbc9;
}

.lpe-event-card__content > span,
.lpe-event-card__type {
    color: #d8c38f;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

/* États vides visuels */
.lpe-empty--visual {
    max-width: 920px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    align-items: center;
    gap: 40px;
    text-align: left;
}

.lpe-empty--visual .lpe-generic-visual {
    width: 100%;
    min-height: 230px;
    border-radius: 14px;
}

.lpe-empty code,
.lpe-section-heading code {
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(216, 180, 103, 0.1);
    color: #e3ca91;
    font-size: 0.86em;
}

/* Théâtre */
.lpe-theatre-concept > div:last-child {
    color: #b9c4cf;
    font-size: 1.05rem;
}

.lpe-featured-character {
    max-width: 1040px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(260px, 0.75fr) minmax(0, 1.25fr);
    gap: clamp(36px, 6vw, 80px);
    align-items: center;
}

.lpe-featured-character .lpe-generic-visual {
    min-height: 420px;
    border-radius: 18px;
}

.lpe-featured-character__letter {
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: clamp(7rem, 16vw, 12rem);
    font-weight: 250;
    line-height: 1;
    text-shadow: 0 16px 34px rgba(0, 0, 0, 0.46);
}

.lpe-featured-character h3 {
    margin: 0 0 20px;
    font-size: clamp(2rem, 4vw, 3.7rem);
    line-height: 1.05;
}

.lpe-featured-character p {
    color: #465466;
    font-size: 1.03rem;
}

.lpe-featured-character blockquote {
    margin: 28px 0 0;
    padding-left: 22px;
    border-left: 3px solid var(--lpe-gold);
    color: var(--lpe-ink);
    font-size: 1.25rem;
    font-weight: 720;
}

.lpe-character-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.lpe-character-choice {
    position: relative;
    min-height: 330px;
    display: flex;
    flex-direction: column;
    padding: 26px;
    border: 1px solid rgba(216, 180, 103, 0.2);
    border-radius: 15px;
    background: rgba(7, 21, 39, 0.72);
    cursor: pointer;
    transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.lpe-character-choice:hover,
.lpe-character-choice:focus-within {
    transform: translateY(-3px);
    border-color: rgba(216, 180, 103, 0.5);
}

.lpe-character-choice:has(input:checked) {
    border-color: var(--lpe-gold);
    background: rgba(216, 180, 103, 0.08);
}

.lpe-character-choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.lpe-character-choice__check {
    position: absolute;
    top: 22px;
    right: 22px;
    width: 22px;
    height: 22px;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 50%;
}

.lpe-character-choice:has(input:checked) .lpe-character-choice__check {
    border: 6px solid var(--lpe-gold);
}

.lpe-character-choice__role {
    margin-bottom: 12px;
    color: #8fbce8;
    font-size: 0.67rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.lpe-character-choice > strong {
    padding-right: 34px;
    color: #fff;
    font-size: 1.7rem;
}

.lpe-character-choice p {
    color: #b6c1cc;
}

.lpe-character-choice blockquote {
    margin: 12px 0 20px;
    color: #e6d4a9;
    font-size: 0.95rem;
    font-style: italic;
}

.lpe-character-choice__result {
    margin-top: auto;
    color: #8898a9;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.lpe-theatre-vote__action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-top: 26px;
}

.lpe-theatre-vote__action p {
    margin: 0;
    color: #8795a5;
    font-size: 0.78rem;
}

/* Newsletter */
.lpe-newsletter-form {
    margin-top: 30px;
}

.lpe-newsletter-form > label {
    display: block;
    margin-bottom: 7px;
    color: #d8c38f;
    font-size: 0.7rem;
    font-weight: 850;
    text-transform: uppercase;
}

.lpe-newsletter-form > div {
    display: flex;
    gap: 10px;
}

.lpe-newsletter-form input {
    min-width: 0;
    flex: 1;
    padding: 14px 15px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.055);
    color: #fff;
}

.lpe-newsletter-form small {
    display: block;
    margin-top: 10px;
    color: #8392a2;
}

.lpe-newsletter-promises {
    padding: 30px;
    border: 1px solid rgba(216, 180, 103, 0.22);
    border-radius: 15px;
    background: rgba(7, 21, 39, 0.72);
}

.lpe-newsletter-promises h3 {
    margin-top: 0;
    font-size: 1.5rem;
}

.lpe-newsletter-promises li {
    margin-bottom: 11px;
    color: #c2ccd6;
}

.lpe-newsletter-promises > p {
    margin: 22px 0 0;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: #d8c38f;
}

.lpe-newsletter-editions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.lpe-newsletter-editions article {
    padding: 24px;
    border: 1px solid var(--lpe-line-light);
    border-radius: 14px;
    background: #fff;
}

.lpe-newsletter-editions article > span {
    color: var(--lpe-gold-dark);
    font-size: 0.68rem;
    font-weight: 850;
}

/* Fallbacks d'articles avec le visuel générique */
.lpe-home-article-card__media > .lpe-generic-visual,
.lpe-article-card__media > .lpe-generic-visual,
.lpe-related-article-card > a > .lpe-generic-visual {
    width: 100%;
    height: 100%;
    min-height: inherit;
}

.lpe-related-article-card > a > .lpe-generic-visual {
    min-height: 190px;
}

/* Le pied de page accueille désormais une colonne supplémentaire. */
.lpe-footer__grid {
    grid-template-columns: minmax(220px, 1.35fr) repeat(4, minmax(120px, 0.78fr));
}

@media (max-width: 1180px) {
    .lpe-module-grid--home {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lpe-mega-menu {
        right: -330px;
        width: min(860px, 94vw);
    }

    .lpe-footer__grid {
        grid-template-columns: 1.4fr repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .lpe-nav__mega {
        width: 100%;
    }

    .lpe-nav__mega > summary {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .lpe-mega-menu,
    .lpe-nav__mega[open] .lpe-mega-menu,
    .lpe-nav__mega:hover .lpe-mega-menu,
    .lpe-nav__mega:focus-within .lpe-mega-menu {
        position: static;
        width: 100%;
        display: none;
        grid-template-columns: 1fr 1fr;
        margin: 4px 0 14px;
        border-radius: 10px;
        box-shadow: none;
    }

    .lpe-nav__mega[open] .lpe-mega-menu {
        display: grid;
    }

    .lpe-mega-menu__intro {
        grid-column: 1 / -1;
    }

    .lpe-mega-menu > * {
        padding: 20px;
    }

    .lpe-v3-hero__grid,
    .lpe-discovery-principle__grid,
    .lpe-theatre-concept,
    .lpe-newsletter-layout,
    .lpe-simulator-scope,
    .lpe-featured-character {
        grid-template-columns: 1fr;
    }

    .lpe-v3-hero__visual {
        min-height: 330px;
    }

    .lpe-module-grid,
    .lpe-module-grid--home,
    .lpe-video-grid,
    .lpe-newsletter-editions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lpe-simulator-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lpe-quiz-header {
        grid-template-columns: 1fr;
    }

    .lpe-quiz-progress span {
        text-align: left;
    }

    .lpe-quiz-proof {
        align-items: flex-start;
        flex-direction: column;
    }

    .lpe-empty--visual {
        grid-template-columns: 240px minmax(0, 1fr);
    }

    .lpe-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lpe-footer__identity {
        grid-column: 1 / -1;
    }
}

@media (max-width: 620px) {
    .lpe-v3-hero {
        padding: 62px 0 72px;
    }

    .lpe-v3-hero__content h1 {
        font-size: clamp(2.45rem, 13vw, 4rem);
    }

    .lpe-v3-hero__visual {
        min-height: 270px;
    }

    .lpe-module-grid,
    .lpe-module-grid--home,
    .lpe-video-grid,
    .lpe-newsletter-editions,
    .lpe-character-grid,
    .lpe-discovery-principle__steps,
    .lpe-simulator-steps,
    .lpe-simulator-scope__grid,
    .lpe-quiz-choices {
        grid-template-columns: 1fr;
    }

    .lpe-module-card__body {
        min-height: auto;
    }

    .lpe-mega-menu,
    .lpe-nav__mega[open] .lpe-mega-menu {
        grid-template-columns: 1fr;
    }

    .lpe-mega-menu__intro {
        grid-column: auto;
    }

    .lpe-mega-menu > nav {
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        border-left: 0;
    }

    .lpe-quiz-question,
    .lpe-quiz-result,
    .lpe-quiz-header {
        padding: 25px;
    }

    .lpe-quiz-context {
        align-items: flex-start;
        flex-direction: column;
    }

    .lpe-quiz-response > div {
        grid-template-columns: 1fr;
    }

    .lpe-event-card {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 16px;
    }

    .lpe-event-card > .lpe-button {
        grid-column: 1 / -1;
    }

    .lpe-event-card__date {
        min-height: 90px;
    }

    .lpe-empty--visual {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .lpe-featured-character .lpe-generic-visual {
        min-height: 320px;
    }

    .lpe-theatre-vote__action,
    .lpe-newsletter-form > div {
        align-items: stretch;
        flex-direction: column;
    }

    .lpe-footer__grid {
        grid-template-columns: 1fr;
    }

    .lpe-footer__identity {
        grid-column: auto;
    }
}

/* V4.3 — Accueil immersif et « La France de l'intérieur »
-------------------------------------------------------------- */
.lpe-home-stage {
    --lpe-stage-duration: 11000ms;
    position: relative;
    min-height: clamp(720px, calc(100svh - 132px), 940px);
    padding: 0;
    isolation: isolate;
    background: #020813;
}

.lpe-home-stage::before,
.lpe-home-stage::after {
    content: "";
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(8px);
}

.lpe-home-stage::before {
    top: -28%;
    right: -12%;
    width: min(62vw, 850px);
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(23, 80, 150, 0.32), transparent 68%);
}

.lpe-home-stage::after {
    bottom: -44%;
    left: -18%;
    width: min(52vw, 720px);
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(151, 24, 43, 0.18), transparent 70%);
}

.lpe-home-stage__slides {
    position: relative;
    z-index: 2;
    min-height: clamp(720px, calc(100svh - 132px), 940px);
}

.lpe-home-stage__slide {
    position: absolute;
    inset: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transform: scale(1.018);
    transition:
        opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1),
        transform 1.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.lpe-home-stage__slide::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.72;
    background:
        linear-gradient(90deg, rgba(1, 7, 16, 0.95), rgba(3, 12, 26, 0.62) 54%, rgba(2, 8, 17, 0.3)),
        repeating-linear-gradient(90deg, transparent 0 119px, rgba(255, 255, 255, 0.018) 120px);
}

.lpe-home-stage__slide.is-active {
    z-index: 2;
    opacity: 1;
    pointer-events: auto;
    transform: none;
}

.lpe-home-stage__grid {
    position: relative;
    min-height: clamp(720px, calc(100svh - 132px), 940px);
    display: grid;
    grid-template-columns: minmax(390px, 0.82fr) minmax(0, 1.18fr);
    align-items: center;
    gap: clamp(34px, 5vw, 84px);
    padding-top: clamp(54px, 7vh, 92px);
    padding-bottom: clamp(132px, 15vh, 170px);
}

.lpe-home-stage__content {
    position: relative;
    z-index: 3;
    max-width: 690px;
}

.lpe-home-stage__meta {
    display: grid;
    grid-template-columns: auto minmax(34px, 80px) auto;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
    color: #d7b875;
    font-weight: 850;
    letter-spacing: 0.13em;
}

.lpe-home-stage__meta span {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.05rem;
}

.lpe-home-stage__meta i {
    height: 1px;
    background: linear-gradient(90deg, #d8b467, rgba(216, 180, 103, 0.08));
}

.lpe-home-stage__meta small {
    font-size: 0.66rem;
}

.lpe-home-stage__content h1,
.lpe-home-stage__content h2 {
    max-width: 760px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.25rem, 5.7vw, 6.7rem);
    font-weight: 500;
    letter-spacing: -0.052em;
    line-height: 0.94;
    text-wrap: balance;
}

.lpe-home-stage__lead {
    max-width: 620px;
    margin: 28px 0 0;
    color: #c2ccd7;
    font-size: clamp(1rem, 1.35vw, 1.2rem);
    line-height: 1.7;
}

.lpe-home-stage__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
    margin-top: 30px;
}

.lpe-home-stage__actions > span {
    max-width: 235px;
    color: #8f9cab;
    font-size: 0.72rem;
    line-height: 1.45;
}

.lpe-home-stage__slide .lpe-home-stage__meta,
.lpe-home-stage__slide .lpe-home-stage__content h1,
.lpe-home-stage__slide .lpe-home-stage__content h2,
.lpe-home-stage__slide .lpe-home-stage__lead,
.lpe-home-stage__slide .lpe-home-stage__actions,
.lpe-home-stage__slide .lpe-stage-visual {
    opacity: 0;
    transform: translateY(24px);
    transition:
        opacity 0.8s ease,
        transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.lpe-home-stage__slide.is-active .lpe-home-stage__meta,
.lpe-home-stage__slide.is-active .lpe-home-stage__content h1,
.lpe-home-stage__slide.is-active .lpe-home-stage__content h2,
.lpe-home-stage__slide.is-active .lpe-home-stage__lead,
.lpe-home-stage__slide.is-active .lpe-home-stage__actions,
.lpe-home-stage__slide.is-active .lpe-stage-visual {
    opacity: 1;
    transform: none;
}

.lpe-home-stage__slide.is-active .lpe-home-stage__meta {
    transition-delay: 0.18s;
}

.lpe-home-stage__slide.is-active .lpe-home-stage__content h1,
.lpe-home-stage__slide.is-active .lpe-home-stage__content h2 {
    transition-delay: 0.28s;
}

.lpe-home-stage__slide.is-active .lpe-home-stage__lead {
    transition-delay: 0.4s;
}

.lpe-home-stage__slide.is-active .lpe-home-stage__actions {
    transition-delay: 0.5s;
}

.lpe-home-stage__slide.is-active .lpe-stage-visual {
    transition-delay: 0.24s;
}

.lpe-stage-visual {
    position: relative;
    z-index: 2;
    min-width: 0;
}

/* Le tableau paraît unique mais chaque visage reste un véritable lien. */
.lpe-stage-faces {
    min-height: clamp(440px, 56vh, 610px);
    display: flex;
    overflow: hidden;
    border: 1px solid rgba(216, 180, 103, 0.32);
    border-radius: 5px 42px 5px 42px;
    background: #071426;
    box-shadow: 0 40px 100px rgba(0, 0, 0, 0.48);
}

.lpe-stage-face {
    position: relative;
    flex: 1 1 25%;
    min-width: 0;
    overflow: hidden;
    border-right: 1px solid rgba(255, 255, 255, 0.15);
    isolation: isolate;
    transition: flex 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.lpe-stage-face:last-child {
    border-right: 0;
}

.lpe-stage-face:hover,
.lpe-stage-face:focus-visible {
    flex-grow: 1.55;
    outline: 0;
}

.lpe-stage-face img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--lpe-face-position, 78%) center;
    filter: saturate(0.78) contrast(1.03);
    transform: scale(1.02);
    transition:
        filter 0.5s ease,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.lpe-stage-face::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        linear-gradient(180deg, transparent 38%, rgba(1, 7, 15, 0.95) 100%),
        linear-gradient(90deg, rgba(4, 15, 31, 0.18), transparent 45%);
}

.lpe-stage-face::after {
    content: "ENTRER";
    position: absolute;
    z-index: 3;
    top: 18px;
    right: 18px;
    opacity: 0;
    color: #f0d89b;
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    transform: translateY(-8px);
    transition: 0.35s ease;
}

.lpe-stage-face:hover img,
.lpe-stage-face:focus-visible img {
    filter: saturate(1) contrast(1.02);
    transform: scale(1.055);
}

.lpe-stage-face:hover::after,
.lpe-stage-face:focus-visible::after {
    opacity: 1;
    transform: none;
}

.lpe-stage-face__name,
.lpe-stage-face__line {
    position: absolute;
    z-index: 2;
    right: 18px;
    bottom: 24px;
    left: 18px;
}

.lpe-stage-face__name {
    bottom: 52px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 1.65vw, 1.9rem);
}

.lpe-stage-face__line {
    overflow: hidden;
    color: #c1cad4;
    font-size: 0.68rem;
    line-height: 1.45;
    opacity: 0;
    transform: translateY(10px);
    transition: 0.38s ease;
}

.lpe-stage-face:hover .lpe-stage-face__line,
.lpe-stage-face:focus-visible .lpe-stage-face__line {
    opacity: 1;
    transform: none;
}

/* Quiz du hero */
.lpe-stage-quiz {
    position: relative;
    min-height: 500px;
    display: grid;
    place-content: center;
    padding: clamp(28px, 4vw, 62px);
    perspective: 900px;
}

.lpe-stage-quiz__halo {
    position: absolute;
    inset: 4% 8%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(27, 99, 183, 0.34), transparent 66%);
    filter: blur(6px);
}

.lpe-stage-quiz__question {
    position: relative;
    z-index: 2;
    width: min(100%, 520px);
    padding: 36px 40px;
    border: 1px solid rgba(216, 180, 103, 0.32);
    border-radius: 4px 30px 4px 30px;
    background: linear-gradient(145deg, rgba(10, 32, 60, 0.96), rgba(4, 13, 27, 0.98));
    box-shadow: 0 35px 80px rgba(0, 0, 0, 0.44);
    transform: rotateY(-7deg) rotateX(2deg);
}

.lpe-stage-quiz__question small {
    display: block;
    margin-bottom: 20px;
    color: #d8b467;
    font-size: 0.62rem;
    font-weight: 900;
    letter-spacing: 0.15em;
}

.lpe-stage-quiz__question strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3vw, 3.4rem);
    font-weight: 500;
    line-height: 1.08;
}

.lpe-stage-quiz__answers {
    position: relative;
    z-index: 3;
    display: grid;
    gap: 9px;
    width: min(90%, 420px);
    margin: -8px 0 0 auto;
}

.lpe-stage-quiz__answers span {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 14px 18px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    background: rgba(3, 12, 25, 0.88);
    color: #aebbc9;
    font-size: 0.8rem;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.25);
}

.lpe-stage-quiz__answers span.is-lit {
    border-color: rgba(216, 180, 103, 0.58);
    color: #fff;
    transform: translateX(12px);
}

.lpe-stage-quiz__answers b {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border-radius: 50%;
    background: rgba(216, 180, 103, 0.14);
    color: #d8b467;
}

.lpe-stage-quiz__score {
    position: absolute;
    z-index: 4;
    top: 30px;
    right: 12px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.lpe-stage-quiz__score span {
    display: grid;
    width: 82px;
    height: 82px;
    place-items: center;
    border: 1px solid rgba(216, 180, 103, 0.45);
    border-radius: 50%;
    color: #d8b467;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.5rem;
    box-shadow: inset 0 0 35px rgba(216, 180, 103, 0.12);
}

.lpe-stage-quiz__score small {
    color: #8e9bab;
    font-size: 0.62rem;
    line-height: 1.35;
    text-transform: uppercase;
}

/* Simulateur ministre du hero */
.lpe-stage-minister {
    position: relative;
    min-height: 510px;
    display: grid;
    align-content: center;
    gap: 18px;
    padding: 32px;
}

.lpe-stage-minister::before {
    content: "";
    position: absolute;
    inset: 11% 2% 5% 12%;
    border: 1px solid rgba(38, 111, 194, 0.28);
    transform: skewY(-3deg);
    background: linear-gradient(135deg, rgba(11, 42, 79, 0.6), rgba(83, 9, 25, 0.15));
    box-shadow: 0 45px 100px rgba(0, 0, 0, 0.4);
}

.lpe-stage-minister__desk,
.lpe-stage-minister__choices,
.lpe-stage-minister__consequence {
    position: relative;
    z-index: 2;
}

.lpe-stage-minister__desk {
    max-width: 550px;
    padding: 30px;
    border-left: 2px solid #d8b467;
    background: rgba(3, 13, 28, 0.86);
    backdrop-filter: blur(8px);
}

.lpe-stage-minister__seal {
    float: right;
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border: 1px solid rgba(216, 180, 103, 0.55);
    border-radius: 50%;
    color: #d8b467;
    font-family: Georgia, "Times New Roman", serif;
}

.lpe-stage-minister__desk small {
    color: #7f91a6;
    font-size: 0.58rem;
    font-weight: 850;
    letter-spacing: 0.12em;
}

.lpe-stage-minister__desk strong {
    display: block;
    max-width: 410px;
    margin-top: 16px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.75rem, 3vw, 3.2rem);
    font-weight: 500;
    line-height: 1.06;
}

.lpe-stage-minister__desk p {
    margin: 12px 0 0;
    color: #aab7c5;
}

.lpe-stage-minister__choices {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-left: 7%;
}

.lpe-stage-minister__choices span {
    display: grid;
    gap: 4px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 7px;
    background: rgba(4, 17, 35, 0.94);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.28);
}

.lpe-stage-minister__choices span.is-selected {
    border-color: rgba(216, 180, 103, 0.6);
    transform: translateY(-10px);
}

.lpe-stage-minister__choices small {
    color: #d8b467;
    font-size: 0.6rem;
}

.lpe-stage-minister__choices b {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}

.lpe-stage-minister__choices em {
    color: #8797a8;
    font-size: 0.68rem;
    font-style: normal;
}

.lpe-stage-minister__consequence {
    margin-left: auto;
    color: #a6b2bf;
    font-size: 0.7rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Architecture du programme dans le hero */
.lpe-home-stage__slide--programme::before {
    opacity: 1;
    background:
        radial-gradient(circle at 72% 26%, rgba(40, 117, 255, 0.2), transparent 23%),
        radial-gradient(circle at 86% 72%, rgba(255, 31, 70, 0.17), transparent 25%),
        linear-gradient(90deg, rgba(1, 6, 15, 0.98), rgba(3, 13, 29, 0.76) 57%, rgba(2, 8, 17, 0.48)),
        repeating-linear-gradient(90deg, transparent 0 119px, rgba(255, 255, 255, 0.022) 120px);
}

.lpe-stage-programme {
    position: relative;
    min-height: 520px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    gap: 14px;
    padding: 30px 18px;
}

.lpe-stage-programme::before {
    content: "";
    position: absolute;
    inset: 4% 0;
    border-radius: 50%;
    background:
        radial-gradient(circle at 18% 50%, rgba(31, 112, 255, 0.32), transparent 27%),
        radial-gradient(circle at 50% 43%, rgba(255, 255, 255, 0.18), transparent 24%),
        radial-gradient(circle at 82% 56%, rgba(255, 30, 67, 0.28), transparent 27%);
    filter: blur(15px);
    pointer-events: none;
}

.lpe-stage-programme__axis {
    position: absolute;
    top: 50%;
    right: 8%;
    left: 8%;
    height: 3px;
    background: linear-gradient(90deg, #277cff, #fff 50%, #ff264a);
    box-shadow:
        0 0 13px rgba(255, 255, 255, 0.34),
        0 0 35px rgba(216, 180, 103, 0.28);
}

.lpe-stage-programme__pole {
    position: relative;
    z-index: 2;
    min-height: 335px;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 14px;
    padding: 28px 16px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px 30px 4px 30px;
    background: linear-gradient(155deg, rgba(11, 35, 66, 0.96), rgba(3, 12, 24, 0.98));
    box-shadow:
        inset 0 1px rgba(255, 255, 255, 0.08),
        0 30px 70px rgba(0, 0, 0, 0.42);
    text-align: center;
    transform: translateY(24px);
}

.lpe-stage-programme__pole::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: currentColor;
    box-shadow: 0 0 18px currentColor;
}

.lpe-stage-programme__pole--bleu {
    border-color: rgba(44, 128, 255, 0.52);
    background:
        radial-gradient(circle at 50% 30%, rgba(37, 118, 255, 0.32), transparent 32%),
        linear-gradient(155deg, #0b3b82, #031124 72%);
    color: #3287ff;
    box-shadow:
        inset 0 1px rgba(255, 255, 255, 0.09),
        0 32px 75px rgba(8, 63, 152, 0.28);
}

.lpe-stage-programme__pole--blanc {
    transform: translateY(-30px);
    border-color: rgba(255, 255, 255, 0.88);
    background:
        radial-gradient(circle at 50% 28%, #fff 0, rgba(255, 255, 255, 0.2) 31%, transparent 48%),
        linear-gradient(155deg, #fff, #d8dee7 63%, #8997a9);
    color: #fff;
    box-shadow:
        inset 0 1px #fff,
        0 0 34px rgba(255, 255, 255, 0.24),
        0 36px 78px rgba(0, 0, 0, 0.4);
}

.lpe-stage-programme__pole--rouge {
    border-color: rgba(255, 47, 82, 0.5);
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 36, 72, 0.28), transparent 33%),
        linear-gradient(155deg, #80152d, #190710 72%);
    color: #ff3154;
    box-shadow:
        inset 0 1px rgba(255, 255, 255, 0.08),
        0 32px 75px rgba(133, 10, 35, 0.28);
}

.lpe-stage-programme__pole > span {
    position: absolute;
    top: 14px;
    left: 16px;
    color: #d8b467;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 0.8rem;
}

.lpe-stage-programme__pole img {
    width: 64px;
    height: 64px;
}

.lpe-stage-programme__pole--bleu img {
    filter: saturate(1.7) brightness(1.25) drop-shadow(0 0 10px rgba(43, 121, 255, 0.75));
}

.lpe-stage-programme__pole--blanc img {
    filter: contrast(1.25) drop-shadow(0 0 9px rgba(255, 255, 255, 0.8));
}

.lpe-stage-programme__pole--rouge img {
    filter: saturate(1.8) brightness(1.25) drop-shadow(0 0 10px rgba(255, 41, 76, 0.72));
}

.lpe-stage-programme__pole strong {
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.6rem;
}

.lpe-stage-programme__pole--blanc strong {
    color: #07182e;
}

.lpe-stage-programme__pole small {
    min-height: 38px;
    color: #99a8b8;
    font-size: 0.62rem;
    line-height: 1.45;
}

.lpe-stage-programme__pole--blanc small {
    color: #26364b;
}

.lpe-stage-programme__count {
    position: absolute;
    z-index: 4;
    right: 0;
    bottom: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 18px;
    border: 1px solid rgba(216, 180, 103, 0.35);
    background: rgba(3, 12, 24, 0.9);
}

.lpe-stage-programme__count strong {
    color: #d8b467;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.lpe-stage-programme__count span {
    max-width: 70px;
    color: #9aa8b7;
    font-size: 0.62rem;
    line-height: 1.25;
    text-transform: uppercase;
}

/* Consultation 3 × 3 — le carré des urgences */
.lpe-stage-alerts {
    position: relative;
    min-height: 520px;
    display: grid;
    align-content: center;
    gap: 12px;
    padding: 18px;
    border: 1px solid rgba(216, 180, 103, 0.25);
    border-radius: 5px 34px 5px 34px;
    background:
        linear-gradient(145deg, rgba(8, 28, 54, 0.96), rgba(3, 11, 23, 0.98)),
        #061426;
    box-shadow: 0 38px 90px rgba(0, 0, 0, 0.46);
}

.lpe-stage-alerts::before {
    content: "";
    position: absolute;
    inset: 8% 12%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(174, 34, 58, 0.18), transparent 70%);
    pointer-events: none;
}

.lpe-stage-alerts [hidden] {
    display: none !important;
}

.lpe-stage-alerts__head,
.lpe-stage-alerts__grid,
.lpe-stage-alerts__submit,
.lpe-stage-alerts__result {
    position: relative;
    z-index: 2;
}

.lpe-stage-alerts__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    color: #9baabd;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-stage-alerts__head span {
    color: #d8b467;
}

.lpe-stage-alerts__head b {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
}

.lpe-stage-alerts__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.lpe-stage-alert {
    position: relative;
    min-width: 0;
}

.lpe-stage-alert > button {
    position: relative;
    width: 100%;
    min-height: 113px;
    display: grid;
    align-content: center;
    gap: 5px;
    overflow: hidden;
    padding: 14px 12px 18px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    background: rgba(3, 14, 30, 0.9);
    color: #fff;
    cursor: pointer;
    text-align: left;
    transition:
        border-color 0.25s ease,
        background 0.25s ease,
        transform 0.25s ease;
}

.lpe-stage-alert > button[data-alert-axis="produire"] {
    box-shadow: inset 3px 0 #286eaf;
}

.lpe-stage-alert > button[data-alert-axis="proteger"] {
    box-shadow: inset 3px 0 #d8b467;
}

.lpe-stage-alert > button[data-alert-axis="transmettre"] {
    box-shadow: inset 3px 0 #ad2540;
}

.lpe-stage-alert > button:hover,
.lpe-stage-alert > button:focus-visible {
    border-color: rgba(216, 180, 103, 0.62);
    background: rgba(13, 38, 69, 0.96);
    outline: 0;
    transform: translateY(-2px);
}

.lpe-stage-alert > button[aria-pressed="true"] {
    border-color: #d8b467;
    background: linear-gradient(145deg, rgba(30, 67, 105, 0.98), rgba(38, 19, 30, 0.96));
    box-shadow:
        inset 0 0 0 1px rgba(216, 180, 103, 0.28),
        0 12px 30px rgba(0, 0, 0, 0.25);
}

.lpe-stage-alert > button i {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 19px;
    height: 19px;
    opacity: 0;
    transform: scale(0.65) rotate(-10deg);
    transition: 0.25s ease;
}

.lpe-stage-alert > button i::before,
.lpe-stage-alert > button i::after {
    content: "";
    position: absolute;
    top: 9px;
    left: 0;
    width: 20px;
    height: 2px;
    background: #f1d798;
}

.lpe-stage-alert > button i::before {
    transform: rotate(45deg);
}

.lpe-stage-alert > button i::after {
    transform: rotate(-45deg);
}

.lpe-stage-alert > button[aria-pressed="true"] i {
    opacity: 1;
    transform: none;
}

.lpe-stage-alert > button strong {
    padding-right: 20px;
    color: #f2d99b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.05rem, 1.5vw, 1.55rem);
    font-weight: 500;
    line-height: 1;
}

.lpe-stage-alert > button span {
    display: -webkit-box;
    overflow: hidden;
    color: #c5ced8;
    font-size: 0.64rem;
    font-weight: 750;
    line-height: 1.28;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.lpe-stage-alert > a {
    position: absolute;
    z-index: 3;
    right: 9px;
    bottom: 6px;
    color: #73859a;
    font-size: 0.5rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-stage-alert > a:hover,
.lpe-stage-alert > a:focus-visible {
    color: #f0d89b;
}

.lpe-stage-alerts__submit {
    display: grid;
    grid-template-columns: auto minmax(130px, 1fr);
    align-items: center;
    gap: 7px 16px;
}

.lpe-stage-alerts__submit > label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}

.lpe-stage-alerts__submit > button,
.lpe-stage-alerts__result-actions button {
    grid-row: 1 / span 2;
    min-height: 42px;
    padding: 10px 17px;
    border: 1px solid rgba(216, 180, 103, 0.5);
    border-radius: 22px;
    background: #d8b467;
    color: #071426;
    font-size: 0.62rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
}

.lpe-stage-alerts__submit > button:disabled {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.06);
    color: #657489;
    cursor: not-allowed;
}

.lpe-stage-alerts__submit p {
    grid-column: 2;
    margin: 0;
    color: #8e9daf;
    font-size: 0.61rem;
}

.lpe-stage-alerts__result {
    max-height: 500px;
    overflow: auto;
    padding: 20px 22px;
    border-left: 2px solid #d8b467;
    background: rgba(3, 14, 29, 0.91);
    scrollbar-color: #d8b467 #061426;
}

.lpe-stage-alerts__result h3 {
    margin: 5px 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3vw, 3.15rem);
    font-weight: 500;
    line-height: 1;
}

.lpe-stage-alerts__result > p:not(.lpe-kicker):not(.lpe-stage-alerts__sample):not(.lpe-stage-alerts__result-status) {
    margin: 0;
    color: #aebac7;
    font-size: 0.78rem;
    line-height: 1.5;
}

.lpe-stage-alerts__top {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 16px;
    margin-top: 18px;
    padding-top: 15px;
    border-top: 1px solid rgba(216, 180, 103, 0.18);
}

.lpe-stage-alerts__top > strong {
    color: #d8b467;
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-stage-alerts__top ol {
    display: grid;
    gap: 6px;
    margin: 0;
    padding-left: 22px;
    color: #dbe1e8;
    font-size: 0.7rem;
}

.lpe-stage-alerts__top li span {
    color: #8fa0b2;
}

.lpe-stage-alerts__sample {
    margin: 14px 0 0;
    color: #718197;
    font-size: 0.58rem;
}

.lpe-stage-alerts__sample b {
    color: #d8b467;
}

.lpe-stage-alerts__result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 15px;
}

.lpe-stage-alerts__result-actions button {
    grid-row: auto;
    min-height: 34px;
    padding: 8px 12px;
    background: transparent;
    color: #d8b467;
    font-size: 0.52rem;
}

.lpe-stage-alerts__result-actions button:hover,
.lpe-stage-alerts__result-actions button:focus-visible {
    background: rgba(216, 180, 103, 0.12);
    outline: 0;
}

.lpe-stage-alerts__details,
.lpe-stage-alerts__measures {
    display: grid;
    gap: 9px;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.lpe-stage-alerts__details-intro {
    margin: 0 0 3px;
    color: #7f8fa2;
    font-size: 0.57rem;
    line-height: 1.45;
}

.lpe-stage-alerts__detail-row {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) 1.2fr 45px;
    align-items: center;
    gap: 9px;
    color: #adbac8;
    font-size: 0.58rem;
}

.lpe-stage-alerts__detail-row i {
    height: 4px;
    overflow: hidden;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.08);
}

.lpe-stage-alerts__detail-row i::after {
    content: "";
    display: block;
    width: var(--lpe-alert-percent, 0%);
    height: 100%;
    background: linear-gradient(90deg, #286eaf, #d8b467 52%, #ad2540);
}

.lpe-stage-alerts__detail-row b {
    color: #d8b467;
    text-align: right;
}

.lpe-stage-alerts__measure-group {
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    background: rgba(255, 255, 255, 0.025);
}

.lpe-stage-alerts__measure-group > strong {
    display: block;
    margin-bottom: 7px;
    color: #f0d89b;
    font-size: 0.65rem;
}

.lpe-stage-alerts__measure-group ul {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lpe-stage-alerts__measure-group a {
    color: #bbc7d3;
    font-size: 0.61rem;
    line-height: 1.35;
    text-decoration: none;
}

.lpe-stage-alerts__measure-group a:hover,
.lpe-stage-alerts__measure-group a:focus-visible {
    color: #fff;
    text-decoration: underline;
}

.lpe-stage-alerts__result-status {
    min-height: 1em;
    margin: 12px 0 0;
    color: #74869a;
    font-size: 0.56rem;
}

/* Contrôles du carrousel */
.lpe-home-stage__controls {
    position: absolute;
    z-index: 8;
    right: 0;
    bottom: 34px;
    left: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
}

.lpe-home-stage__arrows {
    display: flex;
    gap: 8px;
}

.lpe-home-stage__arrows button,
.lpe-home-stage__pause {
    min-width: 46px;
    height: 46px;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(216, 180, 103, 0.28);
    border-radius: 50%;
    background: rgba(2, 10, 21, 0.78);
    color: #d8b467;
    cursor: pointer;
    backdrop-filter: blur(8px);
    transition: 0.25s ease;
}

.lpe-home-stage__arrows button:hover,
.lpe-home-stage__arrows button:focus-visible,
.lpe-home-stage__pause:hover,
.lpe-home-stage__pause:focus-visible {
    border-color: #d8b467;
    background: rgba(216, 180, 103, 0.13);
    outline: 0;
}

.lpe-home-stage__dots {
    display: grid;
    grid-template-columns: repeat(var(--lpe-slide-count, 4), minmax(70px, 1fr));
    gap: 12px;
}

.lpe-home-stage__dots button {
    display: grid;
    gap: 8px;
    padding: 8px 0;
    border: 0;
    background: transparent;
    color: #738295;
    cursor: pointer;
    text-align: left;
}

.lpe-home-stage__dots button > span {
    position: relative;
    height: 2px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.13);
}

.lpe-home-stage__dots button > span::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #2569ad, #d8b467 52%, #a51e38);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s ease;
}

.lpe-home-stage__dots button.is-active > span::after {
    transform: scaleX(1);
}

.lpe-home-stage__dots small {
    overflow: hidden;
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.lpe-home-stage__dots button.is-active {
    color: #d8b467;
}

.lpe-home-stage__pause {
    display: inline-flex;
    gap: 7px;
    width: auto;
    min-width: 86px;
    padding: 0 13px;
    border-radius: 24px;
}

.lpe-home-stage__pause small {
    font-size: 0.58rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-home-stage__pause[aria-pressed="true"] span {
    font-size: 0;
}

.lpe-home-stage__pause[aria-pressed="true"] span::before {
    content: "▶";
    font-size: 0.72rem;
}

.lpe-home-stage__progress {
    position: absolute;
    z-index: 9;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    background: rgba(255, 255, 255, 0.08);
}

.lpe-home-stage__progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, #2268b4, #e6d6a5 52%, #b3203c);
    transform: scaleX(0);
    transform-origin: left;
}

.lpe-home-stage.is-running .lpe-home-stage__progress span {
    animation: lpe-stage-progress var(--lpe-stage-duration) linear forwards;
}

@keyframes lpe-stage-progress {
    to {
        transform: scaleX(1);
    }
}

/* Galerie « La France de l'intérieur » */
.lpe-life-archive {
    background: #030b16;
}

.lpe-life-archive__hero {
    position: relative;
    overflow: hidden;
    padding: clamp(90px, 10vw, 150px) 0 clamp(75px, 9vw, 125px);
    background:
        radial-gradient(circle at 78% 28%, rgba(25, 80, 145, 0.3), transparent 36%),
        linear-gradient(135deg, #07182e, #020812 72%);
}

.lpe-life-archive__hero::before {
    content: "NOUS";
    position: absolute;
    top: 50%;
    right: -0.06em;
    color: rgba(255, 255, 255, 0.025);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(12rem, 30vw, 34rem);
    line-height: 0.7;
    transform: translateY(-50%);
}

.lpe-life-archive__hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(340px, 0.78fr);
    gap: clamp(55px, 10vw, 160px);
    align-items: end;
}

.lpe-life-archive__hero h1 {
    max-width: 850px;
    margin: 0.1em 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(4.2rem, 9vw, 9.5rem);
    font-weight: 500;
    letter-spacing: -0.065em;
    line-height: 0.86;
}

.lpe-life-archive__hero-grid > div:last-child {
    color: #aebbc8;
    font-size: 1rem;
}

.lpe-life-archive__lead {
    margin-top: 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 2.5vw, 2.55rem);
    line-height: 1.16;
}

.lpe-life-archive__hero-grid strong {
    display: block;
    margin-top: 28px;
    color: #d8b467;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    line-height: 1.55;
    text-transform: uppercase;
}

.lpe-life-archive__rule {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 40px), var(--lpe-shell));
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    margin: 72px auto 0;
}

.lpe-life-archive__rule span {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(216, 180, 103, 0.38));
}

.lpe-life-archive__rule span:last-child {
    transform: rotate(180deg);
}

.lpe-life-archive__rule i {
    width: 9px;
    height: 9px;
    border: 1px solid #d8b467;
    transform: rotate(45deg);
}

.lpe-life-gallery {
    padding: clamp(80px, 9vw, 135px) 0;
    background: #eeeae1;
    color: #07182e;
}

.lpe-life-gallery__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.72fr);
    align-items: end;
    gap: clamp(40px, 8vw, 110px);
    margin-bottom: 50px;
}

.lpe-life-gallery__heading h2 {
    max-width: 820px;
    margin: 0.14em 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 5.5vw, 5.8rem);
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.lpe-life-gallery__heading > p {
    color: #536071;
    font-size: 0.82rem;
    line-height: 1.65;
}

.lpe-life-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.lpe-life-card {
    min-width: 0;
    border: 1px solid rgba(7, 24, 46, 0.12);
    border-radius: 4px 24px 4px 24px;
    overflow: hidden;
    background: #f8f5ee;
    box-shadow: 0 20px 50px rgba(21, 28, 39, 0.08);
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.45s ease;
}

.lpe-life-card:hover,
.lpe-life-card:focus-within {
    transform: translateY(-9px);
    box-shadow: 0 32px 75px rgba(21, 28, 39, 0.15);
}

.lpe-life-card__link {
    height: 100%;
    display: flex;
    flex-direction: column;
    color: #07182e;
}

.lpe-life-card__media {
    position: relative;
    aspect-ratio: 4 / 4.7;
    overflow: hidden;
    background: #07182e;
}

.lpe-life-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 47%, rgba(2, 9, 18, 0.95));
}

.lpe-life-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--lpe-life-position, 78%) center;
    filter: saturate(0.82);
    transform: scale(1.01);
    transition:
        filter 0.45s ease,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.lpe-life-card:hover img,
.lpe-life-card:focus-within img {
    filter: saturate(1);
    transform: scale(1.055);
}

.lpe-life-card__number {
    position: absolute;
    z-index: 2;
    top: 18px;
    left: 18px;
    color: #d8b467;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.05rem;
}

.lpe-life-card__identity {
    position: absolute;
    z-index: 2;
    right: 22px;
    bottom: 20px;
    left: 22px;
    color: #fff;
}

.lpe-life-card__identity h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 2.2vw, 2.55rem);
    font-weight: 500;
    letter-spacing: -0.035em;
}

.lpe-life-card__identity p {
    margin: 5px 0 0;
    color: #b9c4cf;
    font-size: 0.7rem;
}

.lpe-life-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 26px 25px 24px;
}

.lpe-life-card__quote {
    min-height: 84px;
    margin: 0 0 24px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.24rem;
    font-weight: 600;
    line-height: 1.25;
}

.lpe-life-card__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid rgba(7, 24, 46, 0.12);
    border-bottom: 1px solid rgba(7, 24, 46, 0.12);
}

.lpe-life-card__stats span {
    min-width: 0;
    padding: 15px 8px;
    border-right: 1px solid rgba(7, 24, 46, 0.1);
}

.lpe-life-card__stats span:last-child {
    border-right: 0;
}

.lpe-life-card__stats small,
.lpe-life-card__reveal small {
    display: block;
    margin-bottom: 5px;
    color: #7c8795;
    font-size: 0.52rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.lpe-life-card__stats strong {
    overflow-wrap: anywhere;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.05rem;
}

.lpe-life-card__reveal {
    display: grid;
    gap: 12px;
    margin-top: 20px;
    color: #344154;
    font-size: 0.76rem;
    line-height: 1.5;
}

.lpe-life-card__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 24px;
    color: #9b1731;
    font-size: 0.68rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.lpe-life-archive__outro {
    padding: clamp(82px, 10vw, 150px) 0;
    background:
        radial-gradient(circle at 78% 60%, rgba(140, 23, 44, 0.2), transparent 36%),
        #030b16;
}

.lpe-life-archive__outro .lpe-shell {
    max-width: 1050px;
}

.lpe-life-archive__outro p {
    color: #d8b467;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-life-archive__outro h2 {
    margin: 0.28em 0 0.6em;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 6vw, 6.3rem);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

/* Fiche individuelle */
.lpe-life-profile {
    background: #eeeae1;
    color: #07182e;
}

.lpe-life-profile__hero {
    position: relative;
    min-height: clamp(650px, 82vh, 900px);
    display: grid;
    align-items: end;
    overflow: hidden;
    background: #020813;
    color: #fff;
}

.lpe-life-profile__media,
.lpe-life-profile__veil {
    position: absolute;
    inset: 0;
}

.lpe-life-profile__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--lpe-life-position, 78%) center;
    filter: saturate(0.9) contrast(1.02);
}

.lpe-life-profile__veil {
    background:
        linear-gradient(90deg, rgba(2, 8, 17, 0.98) 0%, rgba(3, 11, 24, 0.86) 37%, rgba(3, 11, 24, 0.2) 70%, rgba(2, 8, 17, 0.2)),
        linear-gradient(180deg, rgba(2, 8, 17, 0.12), rgba(2, 8, 17, 0.72));
}

.lpe-life-profile__hero-inner {
    position: relative;
    z-index: 2;
    min-height: inherit;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-top: 45px;
    padding-bottom: clamp(72px, 9vh, 112px);
}

.lpe-life-profile__back {
    align-self: flex-start;
    color: #c8d1db;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-life-profile__identity {
    max-width: 720px;
}

.lpe-life-profile__identity h1 {
    margin: 0.05em 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(5rem, 12vw, 12rem);
    font-weight: 500;
    letter-spacing: -0.065em;
    line-height: 0.78;
}

.lpe-life-profile__coordinates {
    margin: 26px 0 0;
    color: #b6c1cc;
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.lpe-life-profile__identity blockquote {
    max-width: 650px;
    margin: 28px 0 0;
    padding-left: 20px;
    border-left: 2px solid #d8b467;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.45rem, 2.5vw, 2.55rem);
    line-height: 1.12;
}

.lpe-life-profile__audio {
    display: inline-flex;
    margin-top: 30px;
    padding: 9px 13px;
    border: 1px solid rgba(216, 180, 103, 0.25);
    color: #8998a8;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-life-profile__opening,
.lpe-life-profile__dashboard,
.lpe-life-profile__money,
.lpe-life-profile__inside,
.lpe-life-profile__truth,
.lpe-life-profile__response {
    padding: clamp(76px, 9vw, 135px) 0;
}

.lpe-life-profile__opening-grid,
.lpe-life-profile__money-grid,
.lpe-life-profile__truth-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
    gap: clamp(50px, 9vw, 140px);
}

.lpe-life-profile__opening h2,
.lpe-life-profile__money h2,
.lpe-life-profile__section-heading h2,
.lpe-life-profile__response h2 {
    margin: 0.16em 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 5.3vw, 5.8rem);
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.lpe-life-profile__opening-grid > div:first-child > p:last-child {
    color: #566274;
}

.lpe-life-profile__summary {
    margin-top: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.5rem, 2.5vw, 2.5rem);
    line-height: 1.32;
}

.lpe-life-profile__privacy-note {
    max-width: 760px;
    padding-top: 22px;
    border-top: 1px solid rgba(7, 24, 46, 0.14);
    color: #6c7886;
    font-size: 0.72rem;
    line-height: 1.55;
}

.lpe-life-profile__privacy-note strong {
    color: #07182e;
}

.lpe-life-profile__dashboard {
    background: #061426;
    color: #fff;
}

.lpe-life-profile__section-heading {
    max-width: 900px;
    margin-bottom: 46px;
}

.lpe-life-profile__stats {
    display: grid;
    grid-template-columns: repeat(var(--lpe-profile-stat-count, 3), minmax(0, 1fr));
    border-top: 1px solid rgba(216, 180, 103, 0.28);
    border-bottom: 1px solid rgba(216, 180, 103, 0.28);
}

.lpe-life-profile__stats span {
    min-height: 165px;
    display: grid;
    align-content: center;
    gap: 8px;
    padding: 30px;
    border-right: 1px solid rgba(216, 180, 103, 0.2);
}

.lpe-life-profile__stats span:last-child {
    border-right: 0;
}

.lpe-life-profile__stats small,
.lpe-life-profile__facts small,
.lpe-life-profile__inside-grid small,
.lpe-life-profile__balance small,
.lpe-life-profile__moral small,
.lpe-life-profile__diagnosis small {
    color: #96a5b5;
    font-size: 0.58rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.lpe-life-profile__stats strong {
    color: #d8b467;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 4vw, 4.5rem);
    font-weight: 500;
}

.lpe-life-profile__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-top: 34px;
    background: rgba(255, 255, 255, 0.09);
}

.lpe-life-profile__facts > div {
    min-height: 150px;
    display: grid;
    align-content: start;
    gap: 14px;
    padding: 26px;
    background: #07172a;
}

.lpe-life-profile__facts strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.35;
}

.lpe-life-profile__money {
    background: #e5ded2;
}

.lpe-life-profile__money header > p:last-child {
    color: #586576;
}

.lpe-life-ledger {
    border-top: 1px solid rgba(7, 24, 46, 0.2);
}

.lpe-life-ledger > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 20px 4px;
    border-bottom: 1px solid rgba(7, 24, 46, 0.13);
}

.lpe-life-ledger span {
    color: #4f5c6d;
    font-size: 0.78rem;
}

.lpe-life-ledger strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
    font-weight: 500;
}

.lpe-life-ledger__result {
    color: #8f1630;
}

.lpe-life-ledger__result strong {
    font-size: 2.35rem;
}

.lpe-life-profile__inside {
    background: #f4f0e8;
}

.lpe-life-profile__inside-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: rgba(7, 24, 46, 0.12);
}

.lpe-life-profile__inside-grid > div {
    min-height: 220px;
    padding: 28px;
    background: #f4f0e8;
}

.lpe-life-profile__inside-grid > div.is-secret {
    background: #07182e;
    color: #fff;
}

.lpe-life-profile__inside-grid p {
    margin: 18px 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.18rem;
    line-height: 1.4;
}

.lpe-life-profile__balance {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-top: 34px;
}

.lpe-life-profile__balance > div {
    position: relative;
    min-height: 190px;
    padding: 32px 32px 32px 92px;
    border: 1px solid rgba(7, 24, 46, 0.12);
}

.lpe-life-profile__balance > div > span {
    position: absolute;
    top: 30px;
    left: 30px;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.lpe-life-profile__balance .is-help > span {
    background: #164f83;
    color: #fff;
}

.lpe-life-profile__balance .is-trap > span {
    background: #9b1d35;
    color: #fff;
}

.lpe-life-profile__balance p {
    margin: 14px 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
    line-height: 1.38;
}

.lpe-life-profile__truth {
    background:
        radial-gradient(circle at 75% 25%, rgba(32, 95, 161, 0.25), transparent 34%),
        #030b16;
    color: #fff;
}

.lpe-life-profile__truth blockquote {
    margin: 28px 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 4.5vw, 5rem);
    line-height: 1.03;
}

.lpe-life-profile__diagnosis {
    display: grid;
    align-content: start;
}

.lpe-life-profile__diagnosis span {
    display: grid;
    gap: 12px;
    padding: 26px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    color: #c5cdd6;
    font-size: 1rem;
    line-height: 1.55;
}

.lpe-life-profile__moral {
    margin-top: 75px;
    padding-top: 38px;
    border-top: 1px solid rgba(216, 180, 103, 0.3);
}

.lpe-life-profile__moral p {
    max-width: 1100px;
    margin: 12px 0 0;
    color: #d8b467;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3.3vw, 3.5rem);
    line-height: 1.15;
}

.lpe-life-profile__response {
    text-align: center;
}

.lpe-life-profile__response .lpe-button {
    margin-top: 30px;
}

.lpe-life-profile__ministries {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    max-width: 1000px;
    margin: 48px auto 0;
    text-align: left;
}

.lpe-life-profile__ministries a {
    min-height: 110px;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 16px;
    padding: 20px;
    border: 1px solid rgba(7, 24, 46, 0.14);
    border-radius: 4px 17px 4px 17px;
    color: #07182e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem;
    transition: 0.25s ease;
}

.lpe-life-profile__ministries a:hover,
.lpe-life-profile__ministries a:focus-visible {
    border-color: #9b1d35;
    background: #fff;
    transform: translateY(-4px);
    outline: 0;
}

.lpe-life-profile__ministries span {
    color: #a01c37;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.lpe-life-profile__secondary-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    margin-top: 38px;
}

.lpe-life-profile__secondary-actions a {
    color: #8e1932;
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.lpe-life-profile__navigation {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(7, 24, 46, 0.14);
    background: #e5ded2;
}

.lpe-life-profile__navigation a {
    min-height: 130px;
    display: grid;
    align-content: center;
    gap: 8px;
    padding: 28px clamp(24px, 4vw, 60px);
    border-right: 1px solid rgba(7, 24, 46, 0.12);
    color: #07182e;
}

.lpe-life-profile__navigation a:nth-child(2) {
    text-align: center;
}

.lpe-life-profile__navigation a:last-child {
    border-right: 0;
    text-align: right;
}

.lpe-life-profile__navigation small {
    color: #778391;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-life-profile__navigation strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.5rem;
}

/* Passerelles programme → histoires vécues → quiz */
.lpe-context-bridges {
    position: relative;
    overflow: hidden;
    padding: clamp(74px, 8vw, 124px) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background:
        radial-gradient(circle at 8% 12%, rgba(23, 103, 236, 0.2), transparent 30%),
        radial-gradient(circle at 92% 84%, rgba(219, 24, 57, 0.2), transparent 30%),
        linear-gradient(135deg, #020711 0%, #07172b 50%, #050811 100%);
    color: #fff;
}

.lpe-context-bridges::before {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(32, 124, 255, 0.34), rgba(255, 255, 255, 0.16) 50%, rgba(255, 45, 78, 0.34)) top / 100% 2px no-repeat,
        linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px) 0 0 / 100% 34px;
    content: "";
    pointer-events: none;
}

.lpe-context-bridges__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(310px, 0.65fr);
    gap: clamp(20px, 3vw, 42px);
    align-items: stretch;
}

.lpe-reality-bridge,
.lpe-knowledge-bridge {
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 6px 30px 6px 30px;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.28);
}

.lpe-reality-bridge {
    padding: clamp(28px, 4vw, 52px);
    background: rgba(3, 13, 28, 0.78);
    backdrop-filter: blur(12px);
}

.lpe-reality-bridge__heading {
    max-width: 890px;
}

.lpe-reality-bridge__heading h2,
.lpe-knowledge-bridge h2 {
    margin: 0.22em 0 0.42em;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 1.02;
}

.lpe-reality-bridge__heading h2 {
    font-size: clamp(2.2rem, 4vw, 4.6rem);
}

.lpe-reality-bridge__heading > p:last-child {
    max-width: 760px;
    color: #aebbc9;
    line-height: 1.65;
}

.lpe-reality-bridge__faces {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 38px;
}

.lpe-reality-bridge__person {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 3px 17px 3px 17px;
    background: #07172a;
    color: #fff;
    transition: 0.28s ease;
}

.lpe-reality-bridge__person:hover,
.lpe-reality-bridge__person:focus-visible {
    border-color: #d8b467;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35);
    transform: translateY(-5px);
    outline: 0;
}

.lpe-reality-bridge__portrait {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #030914;
}

.lpe-reality-bridge__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--lpe-life-position, 78%) center;
    filter: saturate(0.82) contrast(1.05);
    transition: 0.45s ease;
}

.lpe-reality-bridge__person:hover img,
.lpe-reality-bridge__person:focus-visible img {
    filter: saturate(1) contrast(1.04);
    transform: scale(1.025);
}

.lpe-reality-bridge__identity {
    min-height: 172px;
    display: flex;
    flex-direction: column;
    padding: 22px 20px;
}

.lpe-reality-bridge__identity strong {
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.5rem;
    font-weight: 500;
}

.lpe-reality-bridge__identity small {
    margin-top: 10px;
    color: #afbbc8;
    font-size: 0.74rem;
    line-height: 1.48;
}

.lpe-reality-bridge__identity em {
    margin-top: auto;
    padding-top: 18px;
    color: #d8b467;
    font-size: 0.57rem;
    font-style: normal;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lpe-context-bridges__text-link {
    display: inline-flex;
    margin-top: 30px;
    color: #fff;
    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.lpe-knowledge-bridge {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: clamp(30px, 4vw, 48px);
    background:
        radial-gradient(circle at 86% 8%, rgba(255, 255, 255, 0.18), transparent 24%),
        linear-gradient(155deg, #9d1732, #5e0d21 68%, #250610);
}

.lpe-knowledge-bridge::after {
    position: absolute;
    right: -54px;
    bottom: -74px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 50%;
    box-shadow:
        0 0 0 28px rgba(255, 255, 255, 0.026),
        0 0 0 58px rgba(255, 255, 255, 0.018);
    content: "";
}

.lpe-knowledge-bridge > * {
    position: relative;
    z-index: 1;
}

.lpe-knowledge-bridge__mark {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    margin-bottom: 50px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 50%;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.7rem;
    box-shadow: 0 0 34px rgba(255, 255, 255, 0.12);
}

.lpe-knowledge-bridge h2 {
    font-size: clamp(2rem, 3vw, 3.3rem);
}

.lpe-knowledge-bridge > p:not(.lpe-kicker) {
    color: rgba(255, 255, 255, 0.79);
    font-size: 0.87rem;
    line-height: 1.64;
}

.lpe-knowledge-bridge ul {
    display: grid;
    gap: 11px;
    margin: 30px 0 40px;
    padding: 0;
    list-style: none;
}

.lpe-knowledge-bridge li {
    position: relative;
    padding-left: 22px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.72rem;
}

.lpe-knowledge-bridge li::before {
    position: absolute;
    top: 0.52em;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 1px;
    background: #d8b467;
    content: "";
    transform: rotate(45deg);
}

.lpe-knowledge-bridge .lpe-button {
    align-self: flex-start;
    margin-top: auto;
}

@media (max-width: 1100px) {
    .lpe-home-stage__grid {
        grid-template-columns: minmax(330px, 0.8fr) minmax(0, 1.2fr);
        gap: 28px;
    }

    .lpe-stage-faces {
        min-height: 500px;
    }

    .lpe-stage-face__line {
        display: none;
    }

    .lpe-life-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lpe-life-profile__inside-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lpe-context-bridges__grid {
        grid-template-columns: 1fr;
    }

    .lpe-knowledge-bridge__mark {
        margin-bottom: 28px;
    }
}

@media (max-width: 820px) {
    .lpe-home-stage,
    .lpe-home-stage__slides,
    .lpe-home-stage__grid {
        min-height: 920px;
    }

    .lpe-home-stage__grid {
        grid-template-columns: 1fr;
        align-content: start;
        gap: 26px;
        padding-top: 52px;
        padding-bottom: 170px;
    }

    .lpe-home-stage__content {
        max-width: 760px;
    }

    .lpe-home-stage__content h1,
    .lpe-home-stage__content h2 {
        max-width: 700px;
        font-size: clamp(3.1rem, 10vw, 5.3rem);
    }

    .lpe-home-stage__lead {
        margin-top: 20px;
    }

    .lpe-stage-faces {
        min-height: 390px;
    }

    .lpe-stage-quiz,
    .lpe-stage-minister,
    .lpe-stage-programme,
    .lpe-stage-alerts {
        min-height: 380px;
    }

    .lpe-stage-alerts {
        min-height: 480px;
        padding: 14px;
    }

    .lpe-home-stage.has-alert-slide-active,
    .lpe-home-stage.has-alert-slide-active .lpe-home-stage__slides,
    .lpe-home-stage.has-alert-slide-active .lpe-home-stage__grid {
        min-height: 1050px;
    }

    .lpe-stage-programme__pole {
        min-height: 240px;
    }

    .lpe-home-stage__controls {
        grid-template-columns: auto 1fr auto;
        bottom: 28px;
        gap: 14px;
    }

    .lpe-home-stage__dots small {
        display: none;
    }

    .lpe-life-archive__hero-grid,
    .lpe-life-gallery__heading,
    .lpe-life-profile__opening-grid,
    .lpe-life-profile__money-grid,
    .lpe-life-profile__truth-grid {
        grid-template-columns: 1fr;
    }

    .lpe-life-archive__hero h1 {
        max-width: 680px;
    }

    .lpe-life-profile__stats,
    .lpe-life-profile__facts,
    .lpe-life-profile__ministries {
        grid-template-columns: 1fr;
    }

    .lpe-life-profile__stats span {
        min-height: 120px;
        border-right: 0;
        border-bottom: 1px solid rgba(216, 180, 103, 0.2);
    }

    .lpe-life-profile__stats span:last-child {
        border-bottom: 0;
    }

    .lpe-life-profile__facts > div {
        min-height: auto;
    }

    .lpe-reality-bridge__faces {
        grid-template-columns: 1fr;
    }

    .lpe-reality-bridge__person {
        display: grid;
        grid-template-columns: minmax(150px, 0.7fr) minmax(0, 1.3fr);
    }

    .lpe-reality-bridge__portrait {
        height: 100%;
        aspect-ratio: auto;
    }
}

@media (max-width: 620px) {
    .lpe-home-stage,
    .lpe-home-stage__slides,
    .lpe-home-stage__grid {
        min-height: 860px;
    }

    .lpe-home-stage__grid {
        padding-top: 38px;
        padding-bottom: 148px;
    }

    .lpe-home-stage__meta {
        margin-bottom: 16px;
    }

    .lpe-home-stage__content h1,
    .lpe-home-stage__content h2 {
        font-size: clamp(2.55rem, 12.5vw, 4rem);
        line-height: 0.98;
    }

    .lpe-home-stage__lead {
        display: -webkit-box;
        overflow: hidden;
        font-size: 0.93rem;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;
    }

    .lpe-home-stage__actions {
        margin-top: 20px;
    }

    .lpe-home-stage__actions .lpe-button {
        width: auto;
    }

    .lpe-home-stage__actions > span,
    .lpe-home-stage__actions .lpe-text-link {
        display: none;
    }

    .lpe-stage-faces {
        min-height: 330px;
        border-radius: 3px 22px 3px 22px;
    }

    .lpe-stage-face {
        flex-basis: 25%;
    }

    .lpe-stage-face:hover,
    .lpe-stage-face:focus-visible {
        flex-grow: 1.3;
    }

    .lpe-stage-face__name {
        right: 7px;
        bottom: 16px;
        left: 7px;
        font-size: 0.9rem;
        writing-mode: vertical-rl;
        transform: rotate(180deg);
    }

    .lpe-stage-face::after {
        display: none;
    }

    .lpe-stage-quiz,
    .lpe-stage-minister,
    .lpe-stage-programme,
    .lpe-stage-alerts {
        min-height: 320px;
        padding: 8px 0;
    }

    .lpe-stage-alerts {
        min-height: 430px;
        padding: 10px;
    }

    .lpe-home-stage.has-alert-slide-active,
    .lpe-home-stage.has-alert-slide-active .lpe-home-stage__slides,
    .lpe-home-stage.has-alert-slide-active .lpe-home-stage__grid {
        min-height: 1010px;
    }

    .lpe-stage-alerts__head {
        gap: 8px;
        font-size: 0.55rem;
    }

    .lpe-stage-alerts__grid {
        gap: 4px;
    }

    .lpe-stage-alert > button {
        min-height: 88px;
        padding: 10px 7px 15px;
    }

    .lpe-stage-alert > button strong {
        padding-right: 13px;
        font-size: 0.91rem;
    }

    .lpe-stage-alert > button span {
        font-size: 0.53rem;
    }

    .lpe-stage-alert > a {
        right: 5px;
        bottom: 4px;
        font-size: 0.43rem;
    }

    .lpe-stage-alerts__submit {
        grid-template-columns: 1fr;
    }

    .lpe-stage-alerts__submit > button {
        grid-row: auto;
    }

    .lpe-stage-alerts__submit p {
        grid-column: 1;
        text-align: center;
    }

    .lpe-stage-alerts__result {
        max-height: 425px;
        padding: 17px 15px;
    }

    .lpe-stage-alerts__top {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .lpe-stage-alerts__detail-row {
        grid-template-columns: minmax(90px, 1fr) 0.8fr 37px;
        gap: 5px;
        font-size: 0.5rem;
    }

    .lpe-stage-quiz__question {
        padding: 24px;
    }

    .lpe-stage-quiz__question strong {
        font-size: 1.65rem;
    }

    .lpe-stage-quiz__score {
        display: none;
    }

    .lpe-stage-minister__desk {
        padding: 22px;
    }

    .lpe-stage-minister__desk strong {
        font-size: 1.75rem;
    }

    .lpe-stage-minister__choices {
        margin-left: 0;
    }

    .lpe-stage-minister__choices span {
        padding: 12px 8px;
    }

    .lpe-stage-minister__choices b {
        font-size: 1rem;
    }

    .lpe-stage-programme {
        gap: 5px;
    }

    .lpe-stage-programme__pole {
        min-height: 190px;
        padding: 20px 6px;
        border-radius: 3px 15px 3px 15px;
    }

    .lpe-stage-programme__pole img {
        width: 44px;
        height: 44px;
    }

    .lpe-stage-programme__pole strong {
        font-size: 0.86rem;
    }

    .lpe-stage-programme__pole small {
        display: none;
    }

    .lpe-stage-programme__count {
        display: none;
    }

    .lpe-home-stage__arrows {
        display: none;
    }

    .lpe-home-stage__controls {
        grid-template-columns: 1fr auto;
    }

    .lpe-home-stage__dots {
        grid-template-columns: repeat(var(--lpe-slide-count, 4), 1fr);
    }

    .lpe-home-stage__pause {
        min-width: 46px;
        width: 46px;
        padding: 0;
    }

    .lpe-home-stage__pause small {
        display: none;
    }

    .lpe-life-archive__hero {
        padding-top: 74px;
    }

    .lpe-life-archive__hero h1 {
        font-size: clamp(4rem, 22vw, 6.8rem);
    }

    .lpe-life-gallery__heading {
        margin-bottom: 32px;
    }

    .lpe-life-grid {
        grid-template-columns: 1fr;
    }

    .lpe-life-card__media {
        aspect-ratio: 4 / 4.35;
    }

    .lpe-life-card__quote {
        min-height: auto;
    }

    .lpe-life-profile__hero {
        min-height: 720px;
    }

    .lpe-life-profile__media img {
        object-position: var(--lpe-life-position, 78%) center;
    }

    .lpe-life-profile__veil {
        background:
            linear-gradient(180deg, rgba(2, 8, 17, 0.08) 20%, rgba(2, 8, 17, 0.94) 66%, #020811 100%);
    }

    .lpe-life-profile__hero-inner {
        justify-content: space-between;
        padding-bottom: 46px;
    }

    .lpe-life-profile__identity h1 {
        font-size: clamp(4.4rem, 23vw, 7rem);
    }

    .lpe-life-profile__coordinates {
        font-size: 0.63rem;
        line-height: 1.55;
    }

    .lpe-life-profile__identity blockquote {
        font-size: 1.3rem;
    }

    .lpe-life-profile__inside-grid,
    .lpe-life-profile__balance {
        grid-template-columns: 1fr;
    }

    .lpe-life-profile__inside-grid > div {
        min-height: auto;
    }

    .lpe-life-profile__balance > div {
        padding: 82px 24px 26px;
    }

    .lpe-life-profile__balance > div > span {
        top: 24px;
        left: 24px;
    }

    .lpe-life-profile__navigation {
        grid-template-columns: 1fr 1fr;
    }

    .lpe-life-profile__navigation a:nth-child(2) {
        display: none;
    }

    .lpe-life-profile__navigation a {
        min-height: 110px;
        padding: 22px 18px;
    }

    .lpe-context-bridges {
        padding: 58px 0;
    }

    .lpe-reality-bridge,
    .lpe-knowledge-bridge {
        border-radius: 4px 22px 4px 22px;
    }

    .lpe-reality-bridge__person {
        grid-template-columns: 1fr;
    }

    .lpe-reality-bridge__portrait {
        aspect-ratio: 16 / 9;
    }

    .lpe-reality-bridge__identity {
        min-height: 155px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lpe-home-stage__slide,
    .lpe-home-stage__slide *,
    .lpe-life-card,
    .lpe-life-card * {
        transition: none !important;
        animation: none !important;
    }

    .lpe-home-stage__progress {
        display: none;
    }
}

/* Priorité finale V4.4 : ces règles remplacent les anciens réglages V4. */
.lpe-header__inner {
    min-height: 88px;
    grid-template-columns: minmax(174px, 218px) minmax(0, 1fr);
}

.lpe-header.is-compact .lpe-header__inner {
    min-height: 74px;
}

.lpe-logo {
    width: auto;
    height: auto;
    display: inline-flex;
}

.lpe-nav__mega {
    position: static;
}

.lpe-mega-menu {
    position: fixed;
    top: 126px;
    right: 0;
    left: 0;
    width: 100vw;
    grid-template-columns: minmax(230px, 1.15fr) repeat(3, minmax(180px, 1fr));
    padding-right: max(24px, calc((100vw - 1240px) / 2));
    padding-left: max(24px, calc((100vw - 1240px) / 2));
    border-right: 0;
    border-left: 0;
    border-radius: 0 0 24px 24px;
}

.admin-bar .lpe-mega-menu {
    top: 158px;
}

.lpe-home-stage,
.lpe-home-stage__slides,
.lpe-home-stage__grid {
    min-height: clamp(650px, calc(100svh - 126px), 790px);
}

.lpe-home-stage__grid {
    grid-template-columns: minmax(360px, 0.88fr) minmax(0, 1.12fr);
    gap: clamp(28px, 4vw, 64px);
    padding-top: clamp(42px, 5vh, 66px);
    padding-bottom: clamp(118px, 14vh, 145px);
}

.lpe-home-stage__content h1,
.lpe-home-stage__content h2 {
    font-size: clamp(2.8rem, 4.7vw, 5.7rem);
    line-height: 0.98;
}

.lpe-home-stage__lead {
    margin-top: 22px;
    color: #d1d9e3;
    font-size: clamp(1rem, 1.2vw, 1.12rem);
    line-height: 1.62;
}

.lpe-home-stage__slide.is-active .lpe-home-stage__meta,
.lpe-home-stage__slide.is-active .lpe-home-stage__content h1,
.lpe-home-stage__slide.is-active .lpe-home-stage__content h2,
.lpe-home-stage__slide.is-active .lpe-home-stage__lead,
.lpe-home-stage__slide.is-active .lpe-home-stage__actions,
.lpe-home-stage__slide.is-active .lpe-stage-visual {
    transition-delay: 0.08s;
}

.lpe-article-list {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 24px;
}

.lpe-article-list .lpe-article-card {
    grid-column: span 4;
}

.lpe-article-list .lpe-article-card:first-child {
    grid-column: span 8;
    grid-row: span 2;
}

.lpe-article-list .lpe-article-card:nth-child(2),
.lpe-article-list .lpe-article-card:nth-child(3) {
    grid-column: span 4;
}

@media (max-width: 820px) {
    .lpe-header__inner {
        grid-template-columns: 1fr auto;
    }

    .lpe-mega-menu,
    .lpe-nav__mega[open] .lpe-mega-menu,
    .lpe-nav__mega:hover .lpe-mega-menu,
    .lpe-nav__mega:focus-within .lpe-mega-menu {
        position: static;
        width: auto;
        padding: 0;
        grid-template-columns: 1fr;
        border-radius: 10px;
    }

    .lpe-home-stage,
    .lpe-home-stage__slides,
    .lpe-home-stage__grid {
        min-height: 780px;
    }

    .lpe-home-stage__grid {
        grid-template-columns: 1fr;
    }

    .lpe-article-list .lpe-article-card,
    .lpe-article-list .lpe-article-card:first-child,
    .lpe-article-list .lpe-article-card:nth-child(2),
    .lpe-article-list .lpe-article-card:nth-child(3) {
        grid-column: span 6;
        grid-row: auto;
    }
}

@media (max-width: 560px) {
    .lpe-home-stage,
    .lpe-home-stage__slides,
    .lpe-home-stage__grid {
        min-height: 720px;
    }

    .lpe-article-list .lpe-article-card,
    .lpe-article-list .lpe-article-card:first-child,
    .lpe-article-list .lpe-article-card:nth-child(2),
    .lpe-article-list .lpe-article-card:nth-child(3) {
        grid-column: 1 / -1;
    }
}

/* V4.5 — Porte d’entrée plein écran
-------------------------------------------------------------- */
body.lpe-is-front-page {
    background: #ffffff;
    color: var(--lpe-ink);
    overflow: hidden;
}

body.lpe-is-front-page::before {
    display: none;
}

.lpe-portal-main {
    min-height: 100dvh;
}

.lpe-portal {
    position: relative;
    width: 100%;
    height: 100dvh;
    min-height: 580px;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 50% 8%, rgba(255, 255, 255, 1) 0 19%, rgba(250, 248, 242, 0.82) 53%, rgba(244, 241, 232, 0.72) 100%),
        #fff;
    color: var(--lpe-ink);
}

.admin-bar .lpe-portal,
.admin-bar .lpe-portal-main {
    height: calc(100dvh - 32px);
    min-height: calc(580px - 32px);
}

.lpe-portal__shine {
    position: absolute;
    inset: -25%;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.98) 0 12%, transparent 31%),
        linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.74) 48%, transparent 61%);
    opacity: 0.9;
    transform: translateX(-14%);
}

.lpe-portal__inner {
    position: relative;
    width: min(calc(100% - 48px), 1440px);
    height: 100%;
    margin-inline: auto;
}

.lpe-portal__skip {
    position: absolute;
    top: 20px;
    right: 24px;
    z-index: 10;
    border: 0;
    border-bottom: 1px solid rgba(16, 27, 44, 0.28);
    padding: 7px 0;
    background: transparent;
    color: #4f5b6c;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color 0.2s ease, opacity 0.35s ease;
}

.lpe-portal__skip:hover,
.lpe-portal__skip:focus-visible {
    color: var(--lpe-blue-deep);
}

.lpe-portal.is-complete .lpe-portal__skip {
    opacity: 0;
    pointer-events: none;
}

.lpe-portal__identity {
    position: absolute;
    top: clamp(20px, 3.2vh, 44px);
    left: 50%;
    z-index: 3;
    width: min(38vw, 510px);
    transform: translateX(-50%);
    text-align: center;
}

.lpe-portal__logo {
    width: 100%;
    height: auto;
    margin-inline: auto;
    filter: drop-shadow(0 18px 30px rgba(11, 61, 130, 0.1));
    transform-origin: center center;
}

.lpe-portal__slogan {
    display: grid;
    gap: 2px;
    margin: clamp(6px, 1vh, 12px) 0 0;
    color: var(--lpe-ink);
    font-family: Georgia, "Times New Roman", serif;
    line-height: 1.03;
    text-align: center;
}

.lpe-portal__slogan-first,
.lpe-portal__slogan-impact {
    display: block;
}

.lpe-portal__slogan-first {
    font-size: clamp(1rem, 1.75vw, 1.62rem);
    font-weight: 500;
    letter-spacing: -0.025em;
}

.lpe-portal__slogan-impact {
    position: relative;
    width: fit-content;
    margin-inline: auto;
    font-family: Inter, Manrope, system-ui, sans-serif;
    font-size: clamp(1.22rem, 2.45vw, 2.24rem);
    font-weight: 950;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.lpe-portal__slogan-impact::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    width: 46%;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--lpe-blue), #d8b467 49%, var(--lpe-red));
    transform: translateX(-50%);
}

.lpe-portal__doors {
    position: absolute;
    left: 50%;
    bottom: clamp(18px, 3.4vh, 44px);
    width: min(100%, 1380px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(10px, 1.1vw, 17px);
    transform: translateX(-50%);
}

.lpe-portal-card {
    position: relative;
    min-height: clamp(104px, 14.2vh, 142px);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    overflow: hidden;
    border: 1px solid rgba(16, 27, 44, 0.12);
    border-radius: 18px;
    padding: clamp(15px, 1.7vw, 24px);
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 18px 45px rgba(18, 35, 58, 0.09);
    backdrop-filter: blur(14px);
    color: var(--lpe-ink);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.lpe-portal-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(130deg, rgba(255, 255, 255, 0.72), transparent 42%);
}

.lpe-portal-card:hover,
.lpe-portal-card:focus-visible {
    z-index: 2;
    transform: translateY(-5px);
    border-color: rgba(22, 119, 216, 0.35);
    box-shadow: 0 24px 55px rgba(18, 35, 58, 0.16);
}

.lpe-portal-card__index {
    align-self: start;
    color: var(--lpe-blue);
    font-size: 0.69rem;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.lpe-portal-card__content {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 7px;
}

.lpe-portal-card__content strong {
    font-size: clamp(0.93rem, 1.18vw, 1.18rem);
    font-weight: 950;
    letter-spacing: -0.02em;
    line-height: 1.08;
    text-transform: uppercase;
}

.lpe-portal-card__content small {
    color: #657184;
    font-size: clamp(0.7rem, 0.78vw, 0.8rem);
    line-height: 1.38;
}

.lpe-portal-card__arrow {
    position: relative;
    z-index: 1;
    align-self: end;
    font-size: 1rem;
    font-weight: 900;
    transition: transform 0.2s ease;
}

.lpe-portal-card:hover .lpe-portal-card__arrow,
.lpe-portal-card:focus-visible .lpe-portal-card__arrow {
    transform: translate(3px, -3px);
}

.lpe-portal-card--blue {
    border-color: transparent;
    background: linear-gradient(145deg, #0b274a, #07182e);
    color: #fff;
}

.lpe-portal-card--blue .lpe-portal-card__index,
.lpe-portal-card--blue .lpe-portal-card__content small {
    color: #b8d9ff;
}

.lpe-portal-card--human {
    background:
        radial-gradient(circle at 92% 8%, rgba(216, 180, 103, 0.24), transparent 34%),
        rgba(255, 255, 255, 0.9);
}

.lpe-portal-card--outline-red {
    border: 2px solid rgba(227, 58, 52, 0.64);
}

.lpe-portal-card--outline-red .lpe-portal-card__index {
    color: var(--lpe-red);
}

.lpe-portal-card--red {
    border-color: transparent;
    background: linear-gradient(145deg, #ec453f, #b91f25);
    color: #fff;
    box-shadow: 0 20px 48px rgba(185, 31, 37, 0.22);
}

.lpe-portal-card--red .lpe-portal-card__index,
.lpe-portal-card--red .lpe-portal-card__content small {
    color: #ffe6e3;
}

/* L’état final reste immédiatement lisible sans JavaScript. */
.lpe-js .lpe-portal__identity {
    top: 50%;
    width: min(82vw, 920px);
    transform: translate(-50%, -50%);
    transition: top 0.72s cubic-bezier(0.22, 1, 0.36, 1), width 0.72s cubic-bezier(0.22, 1, 0.36, 1), transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}

.lpe-js .lpe-portal__logo {
    opacity: 0;
    transform: scale(0.94);
    transition: opacity 0.42s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.lpe-js .lpe-portal__slogan-first,
.lpe-js .lpe-portal__slogan-impact {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.42s ease, transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
}

.lpe-js .lpe-portal__slogan-impact::after {
    transform: translateX(-50%) scaleX(0);
    transform-origin: center;
    transition: transform 0.46s ease 0.18s;
}

.lpe-js .lpe-portal-card {
    opacity: 0;
    transform: translateY(24px) scale(0.965);
}

.lpe-portal.is-logo-visible .lpe-portal__logo {
    opacity: 1;
    transform: scale(1);
}

.lpe-portal.is-logo-settled .lpe-portal__identity {
    top: clamp(20px, 3.2vh, 44px);
    width: min(38vw, 510px);
    transform: translateX(-50%);
}

.lpe-portal.is-line-one .lpe-portal__slogan-first,
.lpe-portal.is-line-two .lpe-portal__slogan-impact {
    opacity: 1;
    transform: translateY(0);
}

.lpe-portal.is-line-two .lpe-portal__slogan-impact::after {
    transform: translateX(-50%) scaleX(1);
}

.lpe-portal.is-doors-visible .lpe-portal-card {
    animation: lpe-portal-wave 0.52s cubic-bezier(0.2, 0.82, 0.2, 1.08) both;
    animation-delay: calc(var(--lpe-door-order) * 82ms);
}

.lpe-portal.is-skipped .lpe-portal-card {
    animation: none !important;
    opacity: 1;
    transform: none;
}

@keyframes lpe-portal-wave {
    from {
        opacity: 0;
        transform: translateY(26px) scale(0.96);
    }
    64% {
        opacity: 1;
        transform: translateY(-3px) scale(1.008);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* V4.5 — Paroles du peuple
-------------------------------------------------------------- */
.lpe-words-page {
    background: var(--lpe-paper);
    color: var(--lpe-ink);
}

.lpe-words-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(82px, 9vw, 144px) 0 clamp(70px, 8vw, 120px);
    background:
        radial-gradient(circle at 82% 18%, rgba(216, 180, 103, 0.18), transparent 28%),
        linear-gradient(135deg, #fff 0%, #f8f4ea 60%, #f3eee2 100%);
}

.lpe-words-hero::before {
    content: "";
    position: absolute;
    top: -140px;
    right: -80px;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(11, 61, 130, 0.08);
    border-radius: 50%;
}

.lpe-words-hero__inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
    align-items: end;
    gap: clamp(48px, 8vw, 120px);
}

.lpe-words-hero h1 {
    max-width: 920px;
    margin: 10px 0 24px;
    color: var(--lpe-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6.2vw, 6.6rem);
    letter-spacing: -0.055em;
    line-height: 0.92;
}

.lpe-words-hero__lead {
    max-width: 760px;
    margin: 0;
    color: #536073;
    font-size: clamp(1.03rem, 1.55vw, 1.34rem);
    line-height: 1.65;
}

.lpe-words-hero__manifesto {
    margin: 28px 0 32px;
    padding-left: 22px;
    border-left: 3px solid var(--lpe-red);
}

.lpe-words-hero__manifesto p,
.lpe-words-hero__manifesto strong {
    display: block;
    margin: 0;
}

.lpe-words-hero__manifesto strong {
    margin-top: 2px;
    font-size: clamp(1.12rem, 1.6vw, 1.42rem);
}

.lpe-words-hero__quote {
    position: relative;
    margin: 0;
    border: 1px solid rgba(16, 27, 44, 0.12);
    border-radius: 28px;
    padding: clamp(30px, 4vw, 54px);
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 28px 70px rgba(18, 35, 58, 0.11);
    backdrop-filter: blur(16px);
}

.lpe-words-hero__quote > span {
    position: absolute;
    top: -26px;
    left: 22px;
    color: rgba(22, 119, 216, 0.16);
    font-family: Georgia, serif;
    font-size: 8rem;
    line-height: 1;
}

.lpe-words-hero__quote p,
.lpe-words-hero__quote strong {
    position: relative;
    z-index: 1;
}

.lpe-words-hero__quote p {
    margin: 0 0 22px;
    color: #4f5d70;
    font-family: Georgia, serif;
    font-size: clamp(1.2rem, 2vw, 1.65rem);
    line-height: 1.45;
}

.lpe-words-hero__quote strong {
    display: block;
    color: var(--lpe-blue-deep);
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.lpe-inline-notice {
    margin: 28px 0 0;
    border-radius: 14px;
    padding: 16px 20px;
    font-weight: 750;
}

.lpe-inline-notice--success {
    border: 1px solid rgba(28, 130, 82, 0.28);
    background: #edf9f2;
    color: #17643f;
}

.lpe-inline-notice--error {
    border: 1px solid rgba(227, 58, 52, 0.28);
    background: #fff1f0;
    color: #9c2020;
}

.lpe-words-intents,
.lpe-words-library,
.lpe-words-rules {
    padding: clamp(72px, 8vw, 120px) 0;
}

.lpe-words-intent-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 42px;
}

.lpe-words-intent-card {
    position: relative;
    min-height: 250px;
    overflow: hidden;
    border: 1px solid rgba(16, 27, 44, 0.11);
    border-radius: 22px;
    padding: 32px;
    background: #fff;
    box-shadow: var(--lpe-shadow-light);
}

.lpe-words-intent-card::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -90px;
    width: 210px;
    height: 210px;
    border-radius: 50%;
    background: rgba(22, 119, 216, 0.07);
}

.lpe-words-intent-card > span {
    color: var(--lpe-blue);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.lpe-words-intent-card h3 {
    margin: 38px 0 14px;
    font-family: Georgia, serif;
    font-size: clamp(2rem, 3vw, 3.4rem);
    letter-spacing: -0.045em;
}

.lpe-words-intent-card p {
    position: relative;
    z-index: 1;
    max-width: 420px;
    margin: 0;
    color: #687487;
}

.lpe-words-intent-card--je-vis::after {
    background: rgba(216, 180, 103, 0.14);
}

.lpe-words-intent-card--j-espere::after {
    background: rgba(227, 58, 52, 0.08);
}

.lpe-words-library {
    background: #fff;
}

.lpe-words-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 34px 0;
}

.lpe-words-filters button {
    border: 1px solid rgba(16, 27, 44, 0.16);
    border-radius: 999px;
    padding: 10px 16px;
    background: #fff;
    color: var(--lpe-ink);
    font-weight: 800;
    cursor: pointer;
}

.lpe-words-filters button.is-active,
.lpe-words-filters button:hover,
.lpe-words-filters button:focus-visible {
    border-color: var(--lpe-blue-deep);
    background: var(--lpe-blue-deep);
    color: #fff;
}

.lpe-words-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.lpe-word-card {
    min-height: 330px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(16, 27, 44, 0.11);
    border-radius: 20px;
    padding: 28px;
    background: linear-gradient(160deg, #fff, #faf8f2);
    box-shadow: 0 15px 42px rgba(18, 35, 58, 0.07);
}

.lpe-word-card[hidden] {
    display: none;
}

.lpe-word-card__category {
    margin: 0 0 22px;
    color: var(--lpe-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-word-card h3 {
    margin: 0 0 18px;
    font-family: Georgia, serif;
    font-size: clamp(1.65rem, 2.2vw, 2.35rem);
    letter-spacing: -0.035em;
    line-height: 1.04;
}

.lpe-word-card__excerpt {
    margin: 0;
    color: #596679;
    font-family: Georgia, serif;
    font-size: 1.05rem;
    line-height: 1.62;
}

.lpe-word-card__footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-top: auto;
    padding-top: 28px;
}

.lpe-word-card__footer > span {
    color: #697589;
    font-size: 0.78rem;
    font-weight: 750;
}

.lpe-word-card__footer button {
    flex: 0 0 auto;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--lpe-blue-deep);
    font-weight: 900;
    cursor: pointer;
}

.lpe-words-empty {
    max-width: 760px;
    margin: 48px auto 0;
    border: 1px solid rgba(16, 27, 44, 0.12);
    border-radius: 26px;
    padding: clamp(36px, 6vw, 72px);
    background: #fbf9f3;
    text-align: center;
}

.lpe-words-empty > span {
    display: block;
    height: 58px;
    color: rgba(22, 119, 216, 0.2);
    font-family: Georgia, serif;
    font-size: 7rem;
    line-height: 0.8;
}

.lpe-words-empty h3 {
    margin: 22px 0 10px;
    font-family: Georgia, serif;
    font-size: clamp(2rem, 4vw, 3.7rem);
    letter-spacing: -0.045em;
    line-height: 1;
}

.lpe-words-empty p {
    max-width: 590px;
    margin: 0 auto 28px;
    color: #647084;
}

.lpe-words-rules {
    background: var(--lpe-ink);
    color: #fff;
}

.lpe-words-rules__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(48px, 8vw, 120px);
}

.lpe-words-rules h2 {
    margin: 8px 0 0;
    font-family: Georgia, serif;
    font-size: clamp(2.6rem, 5vw, 5.6rem);
    letter-spacing: -0.05em;
    line-height: 0.96;
}

.lpe-words-rules__list {
    display: grid;
    gap: 0;
}

.lpe-words-rules__list p {
    margin: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
    padding: 22px 0;
    color: #cbd4df;
}

.lpe-words-rules__list strong {
    color: #fff;
}

.lpe-word-dialog,
.lpe-words-form-dialog {
    width: min(calc(100% - 34px), 780px);
    max-height: calc(100dvh - 34px);
    border: 0;
    border-radius: 24px;
    padding: 0;
    background: transparent;
    color: var(--lpe-ink);
}

.lpe-words-form-dialog {
    width: min(calc(100% - 34px), 920px);
}

.lpe-word-dialog::backdrop,
.lpe-words-form-dialog::backdrop {
    background: rgba(3, 11, 23, 0.72);
    backdrop-filter: blur(8px);
}

.lpe-word-dialog__surface,
.lpe-words-form-dialog__surface {
    position: relative;
    overflow: auto;
    max-height: calc(100dvh - 34px);
    border-radius: 24px;
    padding: clamp(30px, 5vw, 62px);
    background: #fff;
    box-shadow: 0 35px 100px rgba(0, 0, 0, 0.34);
}

.lpe-dialog-close {
    position: absolute;
    top: 16px;
    right: 18px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(16, 27, 44, 0.13);
    border-radius: 50%;
    background: #fff;
    color: var(--lpe-ink);
    font-size: 1.55rem;
    line-height: 1;
    cursor: pointer;
}

.lpe-word-dialog h2,
.lpe-words-form-dialog h2 {
    margin: 9px 46px 24px 0;
    font-family: Georgia, serif;
    font-size: clamp(2.2rem, 5vw, 4.7rem);
    letter-spacing: -0.05em;
    line-height: 0.98;
}

.lpe-word-dialog__text {
    color: #344256;
    font-family: Georgia, serif;
    font-size: clamp(1.08rem, 1.8vw, 1.32rem);
    line-height: 1.72;
}

.lpe-word-dialog__signature {
    margin: 30px 0 0;
    border-top: 1px solid rgba(16, 27, 44, 0.12);
    padding-top: 18px;
    color: var(--lpe-blue-deep);
    font-weight: 850;
}

.lpe-words-form-dialog__surface > p:not(.lpe-kicker) {
    max-width: 720px;
    color: #657184;
}

.lpe-words-form {
    display: grid;
    gap: 22px;
    margin-top: 30px;
}

.lpe-form-field {
    display: grid;
    gap: 8px;
}

.lpe-form-field label,
.lpe-words-form legend {
    color: var(--lpe-ink);
    font-size: 0.86rem;
    font-weight: 900;
}

.lpe-form-field input,
.lpe-form-field textarea {
    width: 100%;
    border: 1px solid rgba(16, 27, 44, 0.18);
    border-radius: 12px;
    padding: 13px 15px;
    background: #fff;
    color: var(--lpe-ink);
}

.lpe-form-field input:focus,
.lpe-form-field textarea:focus {
    border-color: var(--lpe-blue);
    outline: 3px solid rgba(22, 119, 216, 0.12);
}

.lpe-form-field > small {
    justify-self: end;
    color: #778294;
    font-size: 0.72rem;
}

.lpe-words-form__categories {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    border: 0;
    margin: 0;
    padding: 0;
}

.lpe-words-form__categories legend {
    grid-column: 1 / -1;
    margin-bottom: 8px;
}

.lpe-words-form__categories label {
    cursor: pointer;
}

.lpe-words-form__categories input {
    position: absolute;
    opacity: 0;
}

.lpe-words-form__categories label > span {
    min-height: 122px;
    display: grid;
    align-content: start;
    gap: 7px;
    border: 1px solid rgba(16, 27, 44, 0.16);
    border-radius: 14px;
    padding: 16px;
    background: #fbfaf6;
}

.lpe-words-form__categories label > span small {
    color: #6b7789;
    font-size: 0.73rem;
    line-height: 1.4;
}

.lpe-words-form__categories input:checked + span {
    border-color: var(--lpe-blue);
    background: rgba(22, 119, 216, 0.07);
    box-shadow: inset 0 0 0 1px var(--lpe-blue);
}

.lpe-words-form__two-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.lpe-form-check {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 11px;
    color: #556275;
    font-size: 0.82rem;
    line-height: 1.5;
}

.lpe-form-check input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--lpe-blue);
}

.lpe-words-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
}

/* V4.5 — Développements de mesures sans répétition
-------------------------------------------------------------- */
.lpe-measure-explanation {
    margin-top: 14px;
    border-left: 3px solid var(--lpe-blue);
    padding: 3px 0 3px 18px;
}

.lpe-measure-explanation > span {
    display: block;
    margin-bottom: 6px;
    color: var(--lpe-blue);
    font-size: 0.67rem;
    font-weight: 950;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lpe-measure-explanation p {
    margin: 0;
    color: #4d5b6d;
}

.lpe-measure-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 20px 0 0;
}

.lpe-measure-facts > div {
    border: 1px solid rgba(16, 27, 44, 0.1);
    border-radius: 11px;
    padding: 12px 14px;
    background: rgba(22, 119, 216, 0.035);
}

.lpe-measure-facts dt {
    margin-bottom: 4px;
    color: var(--lpe-blue);
    font-size: 0.65rem;
    font-weight: 950;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.lpe-measure-facts dd {
    margin: 0;
    color: #4e5c6e;
    font-size: 0.83rem;
    line-height: 1.48;
}

.lpe-flagship-card__expanded .lpe-measure-item__promise {
    display: none;
}

@media (max-width: 980px) {
    .lpe-portal__inner {
        width: min(calc(100% - 28px), 760px);
    }

    .lpe-portal__identity,
    .lpe-portal.is-logo-settled .lpe-portal__identity {
        width: min(66vw, 480px);
    }

    .lpe-portal__doors {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
        bottom: 14px;
    }

    .lpe-portal.is-doors-visible .lpe-portal-card {
        animation-delay: calc(var(--lpe-door-order-mobile) * 82ms);
    }

    .lpe-portal-card {
        min-height: clamp(72px, 10.7vh, 92px);
        gap: 9px;
        border-radius: 14px;
        padding: 12px 13px;
    }

    .lpe-portal-card__content {
        gap: 3px;
    }

    .lpe-portal-card__content strong {
        font-size: clamp(0.72rem, 2.55vw, 0.9rem);
    }

    .lpe-portal-card__content small {
        font-size: clamp(0.58rem, 1.8vw, 0.7rem);
        line-height: 1.25;
    }

    .lpe-portal-card__index {
        font-size: 0.57rem;
    }

    .lpe-words-hero__inner,
    .lpe-words-rules__grid {
        grid-template-columns: 1fr;
    }

    .lpe-words-hero__quote {
        max-width: 680px;
    }

    .lpe-words-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    body.lpe-is-front-page {
        overflow: hidden;
    }

    .admin-bar .lpe-portal,
    .admin-bar .lpe-portal-main {
        height: calc(100dvh - 46px);
        min-height: calc(580px - 46px);
    }

    .lpe-portal {
        min-height: 540px;
    }

    .lpe-portal__skip {
        top: 10px;
        right: 14px;
        font-size: 0.6rem;
    }

    .lpe-portal__identity,
    .lpe-portal.is-logo-settled .lpe-portal__identity {
        top: 13px;
        width: min(79vw, 410px);
    }

    .lpe-js .lpe-portal__identity {
        width: min(96vw, 720px);
    }

    .lpe-portal__slogan {
        margin-top: 3px;
    }

    .lpe-portal__slogan-first {
        font-size: clamp(0.82rem, 3.8vw, 1.05rem);
    }

    .lpe-portal__slogan-impact {
        font-size: clamp(1rem, 5.2vw, 1.38rem);
    }

    .lpe-portal__slogan-impact::after {
        bottom: -5px;
        height: 2px;
    }

    .lpe-portal__doors {
        width: 100%;
        gap: 7px;
    }

    .lpe-portal-card {
        min-height: clamp(67px, 10vh, 82px);
        padding: 9px 10px;
    }

    .lpe-portal-card__arrow {
        display: none;
    }

    .lpe-portal-card__content small {
        display: -webkit-box;
        overflow: hidden;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .lpe-words-hero {
        padding-top: 72px;
    }

    .lpe-words-hero h1 {
        font-size: clamp(2.7rem, 14vw, 4.6rem);
    }

    .lpe-words-intent-grid,
    .lpe-words-grid,
    .lpe-words-form__categories,
    .lpe-words-form__two-columns,
    .lpe-measure-facts {
        grid-template-columns: 1fr;
    }

    .lpe-words-intent-card {
        min-height: 220px;
    }

    .lpe-word-card {
        min-height: 280px;
    }

    .lpe-word-dialog,
    .lpe-words-form-dialog {
        width: calc(100% - 18px);
        max-height: calc(100dvh - 18px);
    }

    .lpe-word-dialog__surface,
    .lpe-words-form-dialog__surface {
        max-height: calc(100dvh - 18px);
        border-radius: 18px;
        padding: 28px 20px;
    }

    .lpe-words-form__categories label > span {
        min-height: auto;
    }
}

@media (max-height: 690px) and (min-width: 981px) {
    .lpe-portal__identity,
    .lpe-portal.is-logo-settled .lpe-portal__identity {
        top: 10px;
        width: min(33vw, 430px);
    }

    .lpe-portal__doors {
        bottom: 10px;
    }

    .lpe-portal-card {
        min-height: 96px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lpe-portal *,
    .lpe-portal *::before,
    .lpe-portal *::after {
        animation-duration: 0.01ms !important;
        animation-delay: 0ms !important;
        transition-duration: 0.01ms !important;
    }
}

.lpe-honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
}
