/*--------------------------------------------------------------
# Composants LNCI (templates page-home.php et apropos.php)
# Reprend la charte existante : blanc, noir/anthracite, orange #fba919,
# titres Ubuntu, textes Open Sans, breakpoints Bootstrap 767 / 991 / 1199.
--------------------------------------------------------------*/

.lnci-page {
    --lnci-orange: #fba919;
    --lnci-orange-dark: #e39400;
    --lnci-ink: #111111;
    --lnci-anthracite: #1c1d20;
    --lnci-text: #2f3237;
    --lnci-muted: #5a5e66;
    --lnci-line: #e4e4e1;
    --lnci-soft: #f6f5f2;
    --lnci-radius: 4px;
    --lnci-shadow: 0 10px 30px rgba(17, 17, 17, 0.08);
    --lnci-ease: cubic-bezier(.2, .7, .2, 1);

    display: block;
    color: var(--lnci-text);
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 16px;
    line-height: 1.65;
}

.lnci-page h1,
.lnci-page h2,
.lnci-page h3 {
    font-family: 'Ubuntu', Arial, sans-serif;
    color: var(--lnci-ink);
    letter-spacing: 0;
}

.lnci-page p { margin: 0 0 1em; }
.lnci-page p:last-child { margin-bottom: 0; }

.lnci-page ul[role="list"],
.lnci-page ol {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lnci-page a:focus-visible,
.lnci-page summary:focus-visible {
    outline: 3px solid var(--lnci-orange);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}

/* ---------- Sections ---------- */

.lnci-section {
    padding: 96px 0;
}

.lnci-section--white {
    background: #fff;
}

/* sections sur le fond « plan technique » du site : motif atténué pour la lisibilité */
.lnci-section:not(.lnci-section--white) {
    background: rgba(247, 246, 243, .9);
}

.lnci-section__head {
    max-width: 780px;
    margin: 0 auto 56px;
    text-align: center;
}

.lnci-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px !important;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--lnci-ink);
}

.lnci-eyebrow::before {
    content: "";
    width: 28px;
    height: 3px;
    background: var(--lnci-orange);
}

.lnci-title {
    margin: 0 0 18px;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.2;
}

.lnci-lead {
    font-size: 18px;
    color: var(--lnci-muted);
}

.lnci-lead p { text-align: inherit !important; }

.lnci-text p { font-size: 16px; }

.lnci-center {
    margin-top: 48px !important;
    text-align: center;
}

/* ---------- Boutons ---------- */

.lnci-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 32px;
}

.lnci-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 12px 28px;
    border: 2px solid transparent;
    border-radius: var(--lnci-radius);
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s var(--lnci-ease), box-shadow .2s ease;
}

.lnci-btn:hover { transform: translateY(-2px); }
.lnci-btn:active { transform: translateY(0); }

.lnci-btn--primary {
    background: var(--lnci-orange);
    border-color: var(--lnci-orange);
    color: var(--lnci-ink) !important;
}

.lnci-btn--primary:hover,
.lnci-btn--primary:focus-visible {
    background: var(--lnci-orange-dark);
    border-color: var(--lnci-orange-dark);
    box-shadow: 0 8px 20px rgba(251, 169, 25, .35);
}

.lnci-btn--light {
    background: transparent;
    border-color: #fff;
    color: #fff !important;
}

.lnci-btn--light:hover,
.lnci-btn--light:focus-visible {
    background: #fff;
    color: var(--lnci-ink) !important;
}

.lnci-btn--outline {
    background: transparent;
    border-color: var(--lnci-ink);
    color: var(--lnci-ink) !important;
}

.lnci-btn--outline:hover,
.lnci-btn--outline:focus-visible {
    background: var(--lnci-ink);
    color: #fff !important;
}

.lnci-btn--lg {
    min-height: 56px;
    padding: 14px 36px;
    font-size: 17px;
}

/* ---------- 1. Hero ---------- */

.lnci-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 700px;
    padding: 200px 0 100px;
    margin-top: -85px; /* body a un margin-top de 85px ; le hero passe sous le header fixe */
    overflow: hidden;
    background: var(--lnci-anthracite);
    color: #fff;
}

.lnci-hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
}

.lnci-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(17, 17, 17, .88) 0%, rgba(17, 17, 17, .72) 45%, rgba(17, 17, 17, .25) 100%);
}

.lnci-hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
}

.lnci-hero__content {
    max-width: 700px;
}

.lnci-hero__content::before {
    content: "";
    display: block;
    width: 64px;
    height: 4px;
    margin-bottom: 24px;
    background: var(--lnci-orange);
}

.lnci-page .lnci-hero__title {
    margin: 0 0 22px;
    color: #fff;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.15;
}

.lnci-hero__text p {
    font-size: 17px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .9);
}

/* ---------- 2. Introduction ---------- */

.lnci-split {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 64px;
    align-items: center;
}

.lnci-split__media {
    position: relative;
}

.lnci-split__media::before {
    content: "";
    position: absolute;
    top: -16px;
    left: -16px;
    width: 45%;
    height: 45%;
    border-top: 4px solid var(--lnci-orange);
    border-left: 4px solid var(--lnci-orange);
}

.lnci-intro__img {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: var(--lnci-radius);
    box-shadow: var(--lnci-shadow);
}

.lnci-split__content .lnci-title { font-size: 32px; }

/* ---------- 3. Activités ---------- */

#activites { scroll-margin-top: 150px; }

.lnci-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.lnci-card { display: flex; }

.lnci-card__link {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: var(--lnci-radius);
    color: inherit;
    text-decoration: none !important;
    transition: transform .25s var(--lnci-ease), box-shadow .25s ease, border-color .25s ease;
}

.lnci-card__link:hover,
.lnci-card__link:focus-visible {
    transform: translateY(-4px);
    border-color: transparent;
    box-shadow: var(--lnci-shadow);
}

.lnci-card__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--lnci-soft);
}

.lnci-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s var(--lnci-ease);
}

.lnci-card__link:hover .lnci-card__media img { transform: scale(1.05); }

.lnci-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 22px 22px 24px;
    border-top: 3px solid var(--lnci-orange);
}

.lnci-page .lnci-card__title {
    margin: 0 0 10px;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
}

.lnci-card__text {
    flex: 1;
    font-size: 15px;
    line-height: 1.6;
    color: var(--lnci-muted);
}

.lnci-card__more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--lnci-ink);
}

.lnci-card__more::after {
    content: "→";
    color: var(--lnci-orange-dark);
    transition: transform .2s var(--lnci-ease);
}

.lnci-card__link:hover .lnci-card__more::after { transform: translateX(4px); }

/* ---------- 4. Process ---------- */

.lnci-steps {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px;
    counter-reset: none;
}

.lnci-step {
    position: relative;
    padding: 28px 20px 26px;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: var(--lnci-radius);
    transition: border-color .25s ease, box-shadow .25s ease;
}

.lnci-step:hover {
    border-color: var(--lnci-orange);
    box-shadow: var(--lnci-shadow);
}

/* ligne de liaison entre les étapes (desktop) */
.lnci-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 46px;
    right: -21px;
    width: 21px;
    height: 2px;
    background: var(--lnci-orange);
}

.lnci-step__num {
    display: block;
    margin-bottom: 14px;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1;
    color: var(--lnci-orange-dark);
}

.lnci-step__icon {
    position: absolute;
    top: 26px;
    right: 18px;
    color: #9a9a9a;
}

.lnci-page .lnci-step__title {
    margin: 0 0 10px;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
}

.lnci-step__text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--lnci-muted);
}

/* ---------- 5. Références ---------- */

.lnci-logos {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}

.lnci-logos__item {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 3 / 2;
    padding: 14px;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: var(--lnci-radius);
}

.lnci-logos__item img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .8;
    transition: filter .25s ease, opacity .25s ease;
}

.lnci-logos__item:hover img {
    filter: none;
    opacity: 1;
}

/* ---------- 6. À propos ---------- */

.lnci-values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.lnci-value {
    padding: 36px 30px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: var(--lnci-radius);
}

.lnci-value__icon {
    display: block;
    width: 72px;
    height: auto;
    margin: 0 auto 18px;
}

.lnci-page .lnci-value__title {
    margin: 0 0 10px;
    font-size: 20px;
    font-weight: 700;
    text-transform: none;
}

.lnci-value__text {
    font-size: 15px;
    color: var(--lnci-muted);
}

/* ---------- 7. Domaines ---------- */

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

.lnci-domain {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    padding: 26px 24px;
    background: var(--lnci-soft);
    border-left: 3px solid var(--lnci-orange);
    border-radius: var(--lnci-radius);
    transition: background-color .25s ease, box-shadow .25s ease;
}

.lnci-domain:hover {
    background: #fff;
    box-shadow: var(--lnci-shadow);
}

.lnci-domain__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #fff;
    color: var(--lnci-ink);
    box-shadow: 0 2px 8px rgba(17, 17, 17, .06);
}

.lnci-page .lnci-domain__title {
    margin: 2px 0 6px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.lnci-domain__text {
    font-size: 15px;
    color: var(--lnci-muted);
}

/* ---------- 8. FAQ ---------- */

.lnci-faq__list {
    max-width: 860px;
    margin: 0 auto;
}

.lnci-faq__item {
    margin-bottom: 12px;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: var(--lnci-radius);
    transition: border-color .2s ease;
}

.lnci-faq__item[open] { border-color: var(--lnci-orange); }

.lnci-faq__question {
    position: relative;
    display: block;
    padding: 22px 64px 22px 24px;
    cursor: pointer;
    list-style: none;
}

.lnci-faq__question::-webkit-details-marker { display: none; }

.lnci-page .lnci-faq__question h3 {
    display: inline;
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
}

.lnci-faq__question::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 22px;
    width: 30px;
    height: 30px;
    margin-top: -15px;
    border-radius: 50%;
    background: var(--lnci-soft);
    color: var(--lnci-ink);
    font: 700 20px/30px 'Ubuntu', Arial, sans-serif;
    text-align: center;
    transition: transform .2s ease, background-color .2s ease;
}

.lnci-faq__item[open] .lnci-faq__question::after {
    content: "−";
    background: var(--lnci-orange);
}

.lnci-faq__answer {
    padding: 0 24px 24px;
    color: var(--lnci-muted);
}

/* ---------- 9. CTA final ---------- */

.lnci-cta {
    position: relative;
    padding: 80px 0;
    overflow: hidden;
    background: var(--lnci-anthracite);
    color: #fff;
}

.lnci-cta::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--lnci-orange);
}

.lnci-cta__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.lnci-cta__inner::before,
.lnci-cta__inner::after { display: none; } /* clearfix Bootstrap du .container */

.lnci-page .lnci-cta__title {
    margin: 0 0 12px;
    color: #fff;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.2;
}

.lnci-cta__text {
    max-width: 680px;
    font-size: 17px;
    color: rgba(255, 255, 255, .82);
}

.lnci-cta .lnci-btn { flex: none; }

/* ---------- Apparition au scroll (activée par js/home.js) ---------- */

.lnci-reveal-on .lnci-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .6s ease, transform .6s var(--lnci-ease);
}

.lnci-reveal-on .lnci-reveal.is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .lnci-page *,
    .lnci-page *::before,
    .lnci-page *::after {
        transition: none !important;
    }
    .lnci-btn:hover,
    .lnci-card__link:hover { transform: none; }
}

/* ---------- Responsive ---------- */

@media (max-width: 1199px) {
    .lnci-cards { gap: 20px; }
    .lnci-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lnci-step:nth-child(3n)::after { display: none; }
    .lnci-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
    .lnci-section { padding: 72px 0; }
    .lnci-title { font-size: 30px; }
    .lnci-hero { padding-top: 170px; min-height: 580px; }
    .lnci-page .lnci-hero__title { font-size: 38px; }
    .lnci-split { grid-template-columns: 1fr; gap: 48px; }
    .lnci-split__media { max-width: 560px; margin: 0 16px; }
    .lnci-intro__img { aspect-ratio: 16 / 10; }
    .lnci-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lnci-domains { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lnci-values { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
    .lnci-cta__inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 767px) {
    .lnci-section { padding: 56px 0; }
    .lnci-section__head { margin-bottom: 36px; }
    .lnci-title,
    .lnci-split__content .lnci-title { font-size: 26px; }
    .lnci-lead { font-size: 16px; }
    .lnci-hero { padding: 120px 0 64px; min-height: 0; }
    .lnci-hero::after { background: rgba(17, 17, 17, .78); }
    .lnci-page .lnci-hero__title { font-size: 30px; }
    .lnci-hero__text p { font-size: 16px; }
    .lnci-actions { flex-direction: column; }
    .lnci-actions .lnci-btn { width: 100%; }
    .lnci-split__media { margin: 0 0 0 12px; }
    .lnci-cards,
    .lnci-domains { grid-template-columns: 1fr; }
    .lnci-steps { grid-template-columns: 1fr; gap: 14px; }
    .lnci-step { padding: 20px 20px 20px 84px; }
    .lnci-step__num { position: absolute; top: 20px; left: 20px; font-size: 30px; }
    .lnci-step__icon { display: none; }
    .lnci-step:not(:last-child)::after {
        display: block;
        top: auto;
        bottom: -15px;
        left: 38px;
        right: auto;
        width: 2px;
        height: 15px;
    }
    .lnci-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .lnci-faq__question { padding: 18px 56px 18px 18px; }
    .lnci-page .lnci-faq__question h3 { font-size: 16px; }
    .lnci-faq__answer { padding: 0 18px 18px; }
    .lnci-cta { padding: 60px 0; }
    .lnci-page .lnci-cta__title { font-size: 26px; }
    .lnci-cta .lnci-btn { width: 100%; }
}

/*--------------------------------------------------------------
# Pages intérieures (L’entreprise)
--------------------------------------------------------------*/

/* ---------- Hero de page ---------- */

.lnci-page-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 460px;
    padding: 200px 0 80px;
    margin-top: -85px; /* body a un margin-top de 85px ; le hero passe sous le header fixe */
    overflow: hidden;
    background: var(--lnci-soft);
}

.lnci-page-hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

.lnci-page-hero--image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, .96) 0%, rgba(255, 255, 255, .88) 55%, rgba(255, 255, 255, .6) 100%);
}

.lnci-page-hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
}

.lnci-page-hero__inner::before {
    content: "";
    display: block;
    width: 64px;
    height: 4px;
    margin-bottom: 22px;
    background: var(--lnci-orange);
}

.lnci-page .lnci-page-hero__title {
    max-width: 820px;
    margin: 0 0 18px;
    font-size: 44px;
    font-weight: 700;
    line-height: 1.15;
}

.lnci-page-hero__text {
    max-width: 720px;
    font-size: 18px;
    color: var(--lnci-text);
}

/* ---------- Split texte à gauche ---------- */

.lnci-split--text-first {
    grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
}

.lnci-split--text-first .lnci-split__media::before {
    left: auto;
    right: -16px;
    border-left: 0;
    border-right: 4px solid var(--lnci-orange);
}

/* ---------- Étapes : grille selon le nombre d'éléments ---------- */

.lnci-steps--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lnci-steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lnci-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lnci-steps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.lnci-step__link {
    display: inline-block;
    margin-top: 14px;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--lnci-ink) !important;
    text-decoration: underline;
    text-decoration-color: var(--lnci-orange);
    text-underline-offset: 4px;
}

/* ---------- Vision & mission ---------- */

.lnci-vm {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
}

.lnci-vm::before,
.lnci-vm::after { display: none; } /* clearfix Bootstrap du .container */

.lnci-vm--single {
    grid-template-columns: minmax(0, 860px);
    justify-content: center;
}

.lnci-vm__item {
    padding: 44px 40px;
    background: var(--lnci-soft);
    border-top: 4px solid var(--lnci-orange);
    border-radius: var(--lnci-radius);
}

.lnci-vm__item .lnci-title { font-size: 28px; }

/* ---------- Valeurs : cercles ---------- */

.lnci-circles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px;
}

.lnci-circle {
    text-align: center;
}

.lnci-circle__badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 112px;
    height: 112px;
    margin: 22px auto 36px;
    border-radius: 50%;
    background: var(--lnci-orange);
    color: var(--lnci-ink);
    box-shadow: 0 0 0 10px rgba(251, 169, 25, .35), 0 0 0 20px rgba(251, 169, 25, .15);
    transition: transform .3s var(--lnci-ease);
}

.lnci-circle__badge svg {
    width: 40px;
    height: 40px;
}

.lnci-circle:hover .lnci-circle__badge { transform: scale(1.05); }

.lnci-page .lnci-circle__title {
    margin: 0 0 10px;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
}

.lnci-circle__text {
    font-size: 15px;
    color: var(--lnci-muted);
}

/* ---------- Cartes sur 3 colonnes ---------- */

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

/* ---------- Points forts ---------- */

.lnci-features {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.lnci-feature {
    padding: 30px 26px;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-bottom: 3px solid var(--lnci-orange);
    border-radius: var(--lnci-radius);
    transition: box-shadow .25s ease, transform .25s var(--lnci-ease);
}

.lnci-feature:hover {
    transform: translateY(-3px);
    box-shadow: var(--lnci-shadow);
}

.lnci-feature .lnci-domain__icon {
    margin-bottom: 18px;
    background: var(--lnci-soft);
    box-shadow: none;
}

.lnci-page .lnci-feature__title {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.lnci-feature__text {
    font-size: 15px;
    color: var(--lnci-muted);
}

/* ---------- CTA à deux boutons ---------- */

.lnci-actions--cta {
    flex: none;
    margin-top: 0;
}

/* ---------- Responsive pages intérieures ---------- */

@media (max-width: 1199px) {
    .lnci-steps--4,
    .lnci-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lnci-steps--4 .lnci-step:nth-child(3n)::after { display: block; }
    .lnci-steps--4 .lnci-step:nth-child(2n)::after { display: none; }
    .lnci-steps--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
    .lnci-page-hero { padding-top: 170px; min-height: 380px; }
    .lnci-page .lnci-page-hero__title { font-size: 34px; }
    .lnci-split--text-first { grid-template-columns: 1fr; }
    .lnci-vm { grid-template-columns: 1fr; }
    .lnci-circles { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; }
    .lnci-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .lnci-page-hero { padding: 120px 0 56px; min-height: 0; }
    .lnci-page-hero--image::after { background: rgba(255, 255, 255, .9); }
    .lnci-page .lnci-page-hero__title { font-size: 28px; }
    .lnci-page-hero__text { font-size: 16px; }
    .lnci-steps--2,
    .lnci-steps--3,
    .lnci-steps--4,
    .lnci-steps--5 { grid-template-columns: 1fr; }
    .lnci-steps--4 .lnci-step:nth-child(2n):not(:last-child)::after { display: block; }
    .lnci-split--text-first .lnci-split__media { margin: 0 12px 0 0; }
    .lnci-vm__item { padding: 32px 22px; }
    .lnci-vm__item .lnci-title { font-size: 24px; }
    .lnci-circles,
    .lnci-cards--3,
    .lnci-features { grid-template-columns: 1fr; }
    .lnci-actions--cta { width: 100%; flex-direction: column; }
}

/*--------------------------------------------------------------
# Politique QSE (et variantes réutilisables)
--------------------------------------------------------------*/

.lnci-features--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lnci-features--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.lnci-circles--2,
.lnci-circles--3 {
    max-width: 980px;
    margin: 0 auto;
}
.lnci-circles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lnci-circles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.lnci-split--text-only {
    grid-template-columns: minmax(0, 860px);
    justify-content: center;
}

.lnci-intro__img--landscape { aspect-ratio: 4 / 3; }

.lnci-card__link--static:hover,
.lnci-card__link--static:focus-visible { transform: none; }

.lnci-card__link--static:hover .lnci-card__media img { transform: none; }

.lnci-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: var(--lnci-soft);
    color: var(--lnci-ink);
}

.lnci-card__icon svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 991px) {
    .lnci-features--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lnci-circles--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; }
}

@media (max-width: 767px) {
    .lnci-features--2,
    .lnci-features--3,
    .lnci-circles--2,
    .lnci-circles--3 { grid-template-columns: 1fr; }
}

/*--------------------------------------------------------------
# Fiches activités (template commun single-nos_activites.php)
--------------------------------------------------------------*/

/* ---------- Hero sombre + fil d'Ariane ---------- */

.lnci-page-hero--dark {
    min-height: 520px;
    background: var(--lnci-anthracite);
    color: #fff;
}

.lnci-page-hero--dark::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(17, 17, 17, .9) 0%, rgba(17, 17, 17, .75) 50%, rgba(17, 17, 17, .35) 100%);
}

.lnci-page-hero--dark .lnci-page-hero__inner::before { display: none; }

.lnci-page .lnci-page-hero--dark .lnci-page-hero__title,
.lnci-page-hero--dark .lnci-eyebrow { color: #fff; }

.lnci-page-hero--dark .lnci-page-hero__text { color: rgba(255, 255, 255, .9); }

.lnci-page-hero__text p { margin-bottom: .8em; }

.lnci-breadcrumb {
    margin-bottom: 26px;
    font-size: 14px;
    color: rgba(255, 255, 255, .75);
}

.lnci-breadcrumb a {
    color: #fff !important;
    text-decoration: underline;
    text-decoration-color: var(--lnci-orange);
    text-underline-offset: 3px;
}

.lnci-breadcrumb .breadcrumb_last { color: rgba(255, 255, 255, .75); }

/* ---------- Focus métier : points clés sous le bloc texte/image ---------- */

.lnci-features--spaced { margin-top: 48px !important; }
.lnci-features--1 { grid-template-columns: minmax(0, 1fr); }

/* ---------- Prestations : liste compacte ---------- */

.lnci-checklist {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 24px;
}

.lnci-checklist__item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: var(--lnci-radius);
}

.lnci-checklist__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--lnci-orange);
    color: var(--lnci-ink);
}

.lnci-checklist__icon svg { width: 18px; height: 18px; }

.lnci-page .lnci-checklist__title {
    margin: 5px 0 0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
}

.lnci-checklist__text {
    margin-top: 6px !important;
    font-size: 14px;
    color: var(--lnci-muted);
}

/* ---------- Galerie ---------- */

.lnci-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.lnci-gallery__item a {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: var(--lnci-radius);
    background: var(--lnci-soft);
}

.lnci-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s var(--lnci-ease);
}

.lnci-gallery__item a:hover img { transform: scale(1.04); }

/* ---------- Mini-cartes (activités associées, projets) ---------- */

.lnci-mini-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 18px;
}

.lnci-mini-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-bottom: 3px solid var(--lnci-orange);
    border-radius: var(--lnci-radius);
    color: var(--lnci-ink) !important;
    text-decoration: none !important;
    transition: transform .25s var(--lnci-ease), box-shadow .25s ease;
}

.lnci-mini-card:hover,
.lnci-mini-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: var(--lnci-shadow);
}

.lnci-mini-card img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.lnci-mini-card__title {
    padding: 14px 16px 16px;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
}

/* ---------- CTA avec image de fond ---------- */

.lnci-cta--image .lnci-cta__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

.lnci-cta--image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(17, 17, 17, .82);
}

.lnci-cta--image .lnci-cta__inner {
    position: relative;
    z-index: 1;
}

@media (max-width: 991px) {
    .lnci-page-hero--dark { min-height: 440px; }
    .lnci-checklist,
    .lnci-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .lnci-page-hero--dark::after { background: rgba(17, 17, 17, .8); }
    .lnci-checklist,
    .lnci-gallery { grid-template-columns: 1fr; }
    .lnci-mini-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/*--------------------------------------------------------------
# Références : cartes clients (logos uniformisés, sans déformation)
--------------------------------------------------------------*/

.lnci-clients {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px;
}

.lnci-client { display: flex; }

.lnci-client__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 18px 14px 16px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: var(--lnci-radius);
    color: var(--lnci-ink) !important;
    text-decoration: none !important;
    transition: transform .25s var(--lnci-ease), box-shadow .25s ease, border-color .25s ease;
}

.lnci-client__card:hover,
.lnci-client__card:focus-visible {
    transform: translateY(-3px);
    border-color: transparent;
    box-shadow: var(--lnci-shadow);
}

.lnci-client__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 3 / 2;
    margin-bottom: 12px;
}

.lnci-client__logo img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .75;
    transition: filter .3s ease, opacity .3s ease, transform .3s var(--lnci-ease);
}

.lnci-client__card:hover .lnci-client__logo img {
    filter: none;
    opacity: 1;
    transform: scale(1.04);
}

.lnci-client__name {
    margin-top: auto;
    padding-top: 10px;
    width: 100%;
    border-top: 2px solid var(--lnci-soft);
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    transition: border-color .25s ease;
}

.lnci-client__card:hover .lnci-client__name { border-top-color: var(--lnci-orange); }

.lnci-client__sector {
    margin-top: 4px;
    font-size: 12px;
    color: var(--lnci-orange-dark);
    text-transform: uppercase;
    letter-spacing: .06em;
}

.lnci-client__desc {
    margin-top: 6px;
    font-size: 13px;
    color: var(--lnci-muted);
}

@media (max-width: 1199px) { .lnci-clients { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .lnci-clients { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

/*--------------------------------------------------------------
# Contact : formulaire (Contact Form 7), coordonnées, carte
--------------------------------------------------------------*/

.lnci-contact__grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
    gap: 48px;
    align-items: start;
}

.lnci-contact__grid--single {
    grid-template-columns: minmax(0, 860px);
    justify-content: center;
}

.lnci-contact__intro { margin-bottom: 28px; color: var(--lnci-muted); }

/* Formulaire */
.lnci-contact .wpcf7 { margin: 0; }
.lnci-contact .wpcf7 p { margin: 0; }

.lnci-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
}

.lnci-form__grid > p { display: contents; }
.lnci-form br { display: none; } /* <br> ajoutés par l'auto-paragraphe de CF7 */
.lnci-form > p:empty { display: none; }

.lnci-field {
    display: flex !important;
    flex-direction: column;
    gap: 7px;
    width: 100%;
    margin: 0;
    font-weight: 400;
}

.lnci-field--full { grid-column: 1 / -1; }

.lnci-field__label {
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--lnci-ink);
}

.lnci-field__label abbr {
    border: 0;
    color: var(--lnci-orange-dark);
    text-decoration: none;
    cursor: help;
}

.lnci-field--file .lnci-field__label { font-weight: 400; font-size: 13px; color: var(--lnci-muted); }

.lnci-contact .wpcf7-form-control-wrap { display: block; }

.lnci-contact .wpcf7 input.wpcf7-form-control:not([type="submit"]):not([type="file"]),
.lnci-contact .wpcf7 select.wpcf7-form-control,
.lnci-contact .wpcf7 textarea.wpcf7-form-control {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 13px 14px;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: var(--lnci-ink);
    background: #fff;
    border: 1px solid #d4d4d0;
    border-radius: var(--lnci-radius);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.lnci-contact .wpcf7 textarea.wpcf7-form-control { min-height: 150px; resize: vertical; }

.lnci-contact .wpcf7 input.wpcf7-form-control:focus,
.lnci-contact .wpcf7 select.wpcf7-form-control:focus,
.lnci-contact .wpcf7 textarea.wpcf7-form-control:focus {
    outline: none;
    border-color: var(--lnci-orange);
    box-shadow: 0 0 0 3px rgba(251, 169, 25, .25);
}

.lnci-contact .wpcf7 input[type="file"] {
    width: 100%;
    padding: 14px;
    font-size: 14px;
    background: var(--lnci-soft);
    border: 1px dashed #c9c9c4;
    border-radius: var(--lnci-radius);
}

.lnci-contact .wpcf7 .wpcf7-not-valid { border-color: #c0392b !important; }

.lnci-contact .wpcf7 .wpcf7-not-valid-tip {
    margin-top: 5px;
    font-size: 13px;
    color: #c0392b;
}

.lnci-form__submit { margin-top: 24px; }

.lnci-contact .wpcf7 input.wpcf7-submit {
    width: auto;
    min-height: 54px;
    padding: 14px 34px;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--lnci-ink);
    background: var(--lnci-orange);
    border: 0;
    border-radius: var(--lnci-radius);
    cursor: pointer;
    transition: background-color .2s ease, transform .2s var(--lnci-ease), box-shadow .2s ease;
}

.lnci-contact .wpcf7 input.wpcf7-submit:hover,
.lnci-contact .wpcf7 input.wpcf7-submit:focus-visible {
    background: var(--lnci-orange-dark);
    box-shadow: 0 8px 20px rgba(251, 169, 25, .35);
    transform: translateY(-2px);
}

.lnci-contact .wpcf7 .wpcf7-spinner { vertical-align: middle; }

.lnci-contact .wpcf7 form .wpcf7-response-output {
    margin: 22px 0 0 !important;
    padding: 14px 16px;
    border-radius: var(--lnci-radius);
    font-size: 14px;
}

/* Coordonnées */
.lnci-contact__details {
    position: sticky;
    top: 110px;
    padding: 32px 28px;
    background: var(--lnci-soft);
    border-top: 4px solid var(--lnci-orange);
    border-radius: var(--lnci-radius);
}

.lnci-contact__details .lnci-title { font-size: 24px; }

.lnci-contact__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0 0 22px !important;
}

.lnci-contact__list li {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    font-size: 15px;
    line-height: 1.55;
}

.lnci-contact__list a {
    color: var(--lnci-ink) !important;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--lnci-orange);
    text-underline-offset: 3px;
    word-break: break-word;
}

.lnci-contact__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #fff;
    color: var(--lnci-orange-dark);
}

.lnci-contact__icon svg { width: 18px; height: 18px; }

.lnci-contact__map {
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: var(--lnci-radius);
    background: #e9e8e4;
}

.lnci-contact__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    filter: grayscale(.4);
}

/* Préparer sa demande : 5 éléments */
.lnci-features--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* Boutons d'appel direct (libellé + coordonnée) */
.lnci-btn--stack {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 230px;
}

.lnci-btn--stack small {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 13px;
    font-weight: 400;
    opacity: .85;
}

@media (max-width: 1199px) {
    .lnci-features--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
    .lnci-contact__grid { grid-template-columns: 1fr; }
    .lnci-contact__details { position: static; }
    .lnci-features--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .lnci-form__grid { grid-template-columns: 1fr; }
    .lnci-contact .wpcf7 input.wpcf7-submit { width: 100%; }
    .lnci-features--5 { grid-template-columns: 1fr; }
    .lnci-btn--stack { width: 100%; min-width: 0; }
}

/*==============================================================
# Fiche activité premium (single-nos_activites.php)
# Fonds clairs, trame « plan technique », numérotation des sections,
# orange en accent, coins 4px, animations discrètes.
==============================================================*/

.lnci-act { counter-reset: lnci-act; }

.lnci-act-section {
    position: relative;
    padding: 104px 0;
    counter-increment: lnci-act;
    scroll-margin-top: 140px;
}

.lnci-act-section--white { background: #fff; }
.lnci-act-section--soft,
.lnci-act-section--focus { background: var(--lnci-soft); }

/* trame de plan technique, très légère */
.lnci-act-section--soft::before,
.lnci-act-section--focus::before,
.lnci-act-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(17, 17, 17, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(17, 17, 17, .035) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
    mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
}

.lnci-act-section > .container { position: relative; }

.lnci-act .container::before,
.lnci-act .container::after { display: none; }

/* ---------- En-têtes de section ---------- */

.lnci-act-head {
    max-width: 780px;
    margin: 0 0 56px;
}

.lnci-act-kicker {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 18px !important;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--lnci-ink);
}

.lnci-act-index::before {
    content: counter(lnci-act, decimal-leading-zero);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 26px;
    padding: 0 8px;
    border: 1px solid var(--lnci-ink);
    border-radius: 2px;
    font-size: 12px;
    letter-spacing: .06em;
}

.lnci-act-kicker > span:not(.lnci-act-index)::before {
    content: "";
    display: inline-block;
    width: 26px;
    height: 2px;
    margin-right: 12px;
    vertical-align: middle;
    background: var(--lnci-orange);
}

.lnci-page .lnci-act-title {
    margin: 0 0 18px;
    font-size: 38px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.01em;
}

.lnci-act-lead {
    margin: 0 !important;
    font-size: 18px;
    line-height: 1.7;
    color: var(--lnci-muted);
}

.lnci-act-prose p {
    margin: 0 0 1.1em;
    font-size: 16.5px;
    line-height: 1.8;
    color: var(--lnci-text);
}

.lnci-act-prose p:last-child { margin-bottom: 0; }

/* ---------- Hero métier ---------- */

.lnci-act-hero {
    position: relative;
    margin-top: -85px;
    padding-top: 150px;
    overflow: hidden;
    background: #fff;
}

.lnci-act-hero::before { right: 45%; }

.lnci-act-hero__grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 64px;
    align-items: stretch;
}

.lnci-act-hero__content { padding: 28px 0 88px; }

.lnci-act-breadcrumb {
    margin-bottom: 34px;
    font-size: 13px;
    color: var(--lnci-muted);
}

.lnci-act-breadcrumb a {
    color: var(--lnci-ink) !important;
    text-decoration: underline;
    text-decoration-color: var(--lnci-orange);
    text-underline-offset: 3px;
}

.lnci-act-hero__label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px !important;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--lnci-ink);
}

.lnci-act-hero__label::before {
    content: "";
    width: 28px;
    height: 3px;
    background: var(--lnci-orange);
}

.lnci-page .lnci-act-hero__title {
    margin: 0 0 24px;
    font-size: 50px;
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.015em;
}

.lnci-act-hero__text p {
    margin: 0 0 .9em;
    font-size: 17px;
    line-height: 1.75;
    color: var(--lnci-text);
}

.lnci-act-hero .lnci-actions { margin-top: 30px; }

.lnci-act-highlights {
    display: flex;
    flex-wrap: wrap;
    margin: 40px 0 0;
    border-top: 1px solid var(--lnci-line);
}

.lnci-act-highlights__item {
    padding: 18px 28px 0 0;
    margin-right: 28px;
    border-right: 1px solid var(--lnci-line);
}

.lnci-act-highlights__item:last-child { border-right: 0; margin-right: 0; }

.lnci-act-highlights dt {
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--lnci-ink);
}

.lnci-act-highlights dd {
    margin: 4px 0 0;
    max-width: 220px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--lnci-muted);
}

.lnci-act-hero__media {
    position: relative;
    min-height: 560px;
    margin-right: calc((1200px - 100vw) / 2 - 15px);
}

.lnci-act-hero__media picture,
.lnci-act-hero__img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

/* cadre technique : angle orange + réglette */
.lnci-act-hero__media::before {
    content: "";
    position: absolute;
    left: -18px;
    bottom: 40px;
    z-index: 1;
    width: 90px;
    height: 90px;
    border-left: 4px solid var(--lnci-orange);
    border-bottom: 4px solid var(--lnci-orange);
}

.lnci-act-hero__media::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    height: 14px;
    background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .85) 0 1px, transparent 1px 12px);
    -webkit-mask-image: linear-gradient(90deg, #000, transparent 70%);
    mask-image: linear-gradient(90deg, #000, transparent 70%);
}

/* ---------- Navigation locale ---------- */

.lnci-act-nav {
    position: sticky;
    top: 68px;
    z-index: 50;
    background: rgba(255, 255, 255, .95);
    border-top: 1px solid var(--lnci-line);
    border-bottom: 1px solid var(--lnci-line);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.lnci-act-nav__list {
    display: flex;
    gap: 4px;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    list-style: none;
    scrollbar-width: none;
}

.lnci-act-nav__list::-webkit-scrollbar { display: none; }

.lnci-act-nav__link {
    position: relative;
    display: block;
    padding: 18px 16px;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--lnci-muted) !important;
    text-decoration: none !important;
    transition: color .2s ease;
}

.lnci-act-nav__link::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: -1px;
    height: 3px;
    background: var(--lnci-orange);
    transform: scaleX(0);
    transform-origin: 0 50%;
    transition: transform .3s var(--lnci-ease);
}

.lnci-act-nav__link:hover,
.lnci-act-nav__link.is-active { color: var(--lnci-ink) !important; }

.lnci-act-nav__link:hover::after,
.lnci-act-nav__link.is-active::after { transform: scaleX(1); }

/* ---------- Présentation ---------- */

.lnci-act-intro {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 80px;
    align-items: start;
}

.lnci-act-intro--text { grid-template-columns: minmax(0, 860px); }

.lnci-act-intro .lnci-act-prose p:first-child {
    font-size: 19px;
    line-height: 1.65;
    color: var(--lnci-ink);
}

.lnci-act-figure {
    position: sticky;
    top: 150px;
    margin: 14px 0 0;
}

.lnci-act-figure::before {
    content: "";
    position: absolute;
    top: -14px;
    left: -14px;
    z-index: 1;
    width: 72px;
    height: 72px;
    border-top: 3px solid var(--lnci-orange);
    border-left: 3px solid var(--lnci-orange);
}

.lnci-act-figure::after {
    content: "";
    position: absolute;
    inset: 14px -14px -14px 14px;
    z-index: -1;
    border: 1px solid rgba(17, 17, 17, .16);
    border-radius: 4px;
}

.lnci-act-figure img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 4px;
}

.lnci-act-figure figcaption {
    margin-top: 26px;
    padding-left: 12px;
    border-left: 2px solid var(--lnci-orange);
    font-size: 13px;
    color: var(--lnci-muted);
}

/* ---------- Applications (liste numérotée) ---------- */

.lnci-act-apps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid rgba(17, 17, 17, .14);
}

.lnci-act-apps__item {
    position: relative;
    padding: 30px 28px 34px;
    border-bottom: 1px solid rgba(17, 17, 17, .14);
    transition: background-color .3s ease;
}

.lnci-act-apps__item:not(:nth-child(3n)) { border-right: 1px solid rgba(17, 17, 17, .14); }

.lnci-act-apps__item::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    background: var(--lnci-orange);
    transform: scaleX(0);
    transform-origin: 0 50%;
    transition: transform .4s var(--lnci-ease);
}

.lnci-act-apps__item:hover { background: rgba(255, 255, 255, .7); }
.lnci-act-apps__item:hover::after { transform: scaleX(1); }

.lnci-act-apps__num {
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--lnci-orange-dark);
}

.lnci-act-apps__icon {
    position: absolute;
    top: 26px;
    right: 24px;
    color: #9a9a9a;
}

.lnci-page .lnci-act-apps__title {
    margin: 14px 0 8px;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
}

.lnci-act-apps__text {
    margin: 0 !important;
    font-size: 15px;
    line-height: 1.6;
    color: var(--lnci-muted);
}

/* ---------- Prestations ---------- */

.lnci-act-services {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: 64px;
    align-items: start;
}

.lnci-act-services:not(:has(.lnci-act-head)) { grid-template-columns: 1fr; }

.lnci-act-head--side {
    position: sticky;
    top: 150px;
    margin: 0;
}

.lnci-act-services__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.lnci-act-service__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 3px;
    background: rgba(251, 169, 25, .16);
    color: var(--lnci-orange-dark);
}

.lnci-act-service__icon svg { width: 16px; height: 16px; }

.lnci-act-service__body { display: flex; flex-direction: column; gap: 6px; }

.lnci-act-service__title {
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--lnci-ink);
}

.lnci-act-service__text { font-size: 14.5px; line-height: 1.6; color: var(--lnci-muted); }

/* liste compacte */
.lnci-act-services--compact .lnci-act-services__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 40px;
    border-top: 1px solid var(--lnci-line);
}

.lnci-act-services--compact .lnci-act-service {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 18px 0;
    border-bottom: 1px solid var(--lnci-line);
    transition: padding-left .3s var(--lnci-ease);
}

.lnci-act-services--compact .lnci-act-service:hover { padding-left: 6px; }

/* liste détaillée */
.lnci-act-services--detailed .lnci-act-services__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.lnci-act-services--detailed .lnci-act-service {
    display: flex;
    gap: 16px;
    padding: 24px;
    background: var(--lnci-soft);
    border-left: 3px solid var(--lnci-orange);
    border-radius: 4px;
}

/* cartes avec images */
.lnci-act-services--cards .lnci-act-services__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.lnci-act-services--cards .lnci-act-service {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    padding: 0 0 22px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: 4px;
}

.lnci-act-services--cards .lnci-act-service__media { flex: 0 0 100%; aspect-ratio: 16 / 10; overflow: hidden; }
.lnci-act-services--cards .lnci-act-service__media img { width: 100%; height: 100%; object-fit: cover; }
.lnci-act-services--cards .lnci-act-service__icon { margin-left: 22px; }
.lnci-act-services--cards .lnci-act-service__body { flex: 1; padding-right: 22px; }

/* ---------- Focus métier ---------- */

.lnci-act-focus {
    display: grid;
    grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
    gap: 72px;
    align-items: center;
}

.lnci-act-focus--text { grid-template-columns: minmax(0, 860px); }

.lnci-act-focus__media { position: relative; }

.lnci-act-focus__media::after {
    content: "";
    position: absolute;
    right: -16px;
    top: -16px;
    width: 45%;
    height: 45%;
    border-top: 4px solid var(--lnci-orange);
    border-right: 4px solid var(--lnci-orange);
    pointer-events: none;
}

.lnci-act-focus__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 4;
    object-fit: cover;
    border-radius: 4px;
}

.lnci-act-focus .lnci-act-head { margin-bottom: 28px; }

.lnci-act-specs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 1px;
    margin: 64px 0 0;
    padding: 0;
    list-style: none;
    background: rgba(17, 17, 17, .12);
    border: 1px solid rgba(17, 17, 17, .12);
}

.lnci-act-specs__item {
    position: relative;
    padding: 26px 24px;
    background: #fff;
    transition: background-color .25s ease;
}

.lnci-act-specs__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 26px;
    width: 3px;
    height: 24px;
    background: var(--lnci-orange);
}

.lnci-act-specs__item:hover { background: #fffaf0; }

.lnci-act-specs__icon { display: inline-flex; margin-bottom: 12px; color: var(--lnci-orange-dark); }

.lnci-page .lnci-act-specs__title {
    margin: 0;
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.35;
}

.lnci-act-specs__text {
    margin: 8px 0 0 !important;
    font-size: 14px;
    line-height: 1.6;
    color: var(--lnci-muted);
}

/* ---------- Méthodologie : timeline ---------- */

.lnci-act-timeline {
    --p: 0;
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--lnci-steps, 6), minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lnci-act-timeline::before,
.lnci-act-timeline::after {
    content: "";
    position: absolute;
    top: 27px;
    left: 28px;
    right: 28px;
    height: 2px;
    background: rgba(17, 17, 17, .12);
}

.lnci-act-timeline::after {
    background: var(--lnci-orange);
    transform: scaleX(var(--p));
    transform-origin: 0 50%;
}

.lnci-act-timeline__step { position: relative; }

.lnci-act-timeline__node {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border: 2px solid var(--lnci-ink);
    border-radius: 50%;
    background: #fff;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--lnci-ink);
    transition: background-color .4s ease, border-color .4s ease;
}

.lnci-act-timeline__step.is-visible .lnci-act-timeline__node,
html:not(.lnci-reveal-on) .lnci-act-timeline__node {
    border-color: var(--lnci-orange);
    background: var(--lnci-orange);
}

.lnci-act-timeline__icon {
    position: absolute;
    top: 16px;
    left: 70px;
    color: #9a9a9a;
}

.lnci-page .lnci-act-timeline__title {
    margin: 26px 0 8px;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
}

.lnci-act-timeline__text {
    margin: 0 !important;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--lnci-muted);
}

/* ---------- Secteurs ---------- */

.lnci-act-sectors {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lnci-act-sector {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: 4px;
    transition: border-color .25s ease, box-shadow .25s ease;
}

.lnci-act-sector:hover { border-color: var(--lnci-orange); box-shadow: var(--lnci-shadow); }

.lnci-act-sector__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.lnci-act-sector__media img { width: 100%; height: 100%; object-fit: cover; }

.lnci-act-sector__body {
    display: flex;
    gap: 16px;
    align-items: center;
    padding: 20px 22px;
}

.lnci-act-sector__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--lnci-soft);
    color: var(--lnci-ink);
}

.lnci-page .lnci-act-sector__title {
    margin: 0;
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.35;
}

.lnci-act-sector__text { display: block; margin-top: 4px; font-size: 14px; color: var(--lnci-muted); }

/* ---------- Réalisations ---------- */

.lnci-act-projects { display: flex; flex-direction: column; gap: 28px; }

.lnci-act-project {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: 4px;
}

.lnci-act-project__media { display: block; min-height: 280px; overflow: hidden; }
.lnci-act-project__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--lnci-ease); }
.lnci-act-project:hover .lnci-act-project__media img { transform: scale(1.03); }

.lnci-act-project__body { padding: 36px 40px; }

.lnci-act-project__kicker {
    margin: 0 0 10px !important;
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--lnci-orange-dark);
}

.lnci-page .lnci-act-project__title { margin: 0 0 12px; font-size: 24px; font-weight: 700; line-height: 1.25; }
.lnci-act-project__title a { color: inherit !important; text-decoration: none !important; }

.lnci-act-project__text { color: var(--lnci-muted); }

.lnci-act-project__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 24px;
    margin: 22px 0 0;
    padding-top: 20px;
    border-top: 1px solid var(--lnci-line);
}

.lnci-act-project__meta dt {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--lnci-muted);
}

.lnci-act-project__meta dd { margin: 4px 0 0; font-weight: 600; color: var(--lnci-ink); }

/* galerie en mosaïque */
.lnci-act-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 190px;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lnci-act-gallery__item:first-child { grid-column: span 2; grid-row: span 2; }
.lnci-act-gallery--1 { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 420px; }
.lnci-act-gallery--1 .lnci-act-gallery__item:first-child { grid-column: auto; grid-row: auto; }
.lnci-act-gallery--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 320px; }
.lnci-act-gallery--2 .lnci-act-gallery__item:first-child { grid-column: auto; grid-row: auto; }

.lnci-act-gallery__item a {
    display: block;
    height: 100%;
    overflow: hidden;
    border-radius: 4px;
    background: #e9e8e4;
}

.lnci-act-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--lnci-ease);
}

.lnci-act-gallery__item a:hover img { transform: scale(1.04); }

/* ---------- Continuité + activités associées ---------- */

.lnci-act-cross {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 64px;
    align-items: start;
}

.lnci-act-cross .lnci-act-head { margin: 0; }
.lnci-act-cross--cards { grid-template-columns: 1fr; gap: 0; }
.lnci-act-cross--cards .lnci-act-head { margin-bottom: 40px; }

.lnci-act-related {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lnci-act-cross--cards .lnci-act-related { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }

.lnci-act-related__card {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) 28px;
    gap: 18px;
    align-items: center;
    height: 100%;
    padding: 12px 18px 12px 12px;
    background: #fff;
    border: 1px solid var(--lnci-line);
    border-radius: 4px;
    color: var(--lnci-ink) !important;
    text-decoration: none !important;
    transition: border-color .25s ease, transform .3s var(--lnci-ease), box-shadow .25s ease;
}

.lnci-act-related__card:hover,
.lnci-act-related__card:focus-visible {
    border-color: var(--lnci-orange);
    box-shadow: var(--lnci-shadow);
    transform: translateX(4px);
}

.lnci-act-related__media img {
    display: block;
    width: 96px;
    height: 72px;
    object-fit: cover;
    border-radius: 3px;
}

.lnci-act-related__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }

.lnci-act-related__title {
    font-family: 'Ubuntu', Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
}

.lnci-act-related__text {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--lnci-muted);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.lnci-act-related__arrow { color: var(--lnci-orange-dark); transition: transform .25s var(--lnci-ease); }
.lnci-act-related__card:hover .lnci-act-related__arrow { transform: translateX(4px); }

/* ---------- FAQ ---------- */

.lnci-act-faq {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: 64px;
    align-items: start;
}

.lnci-act-faq:not(:has(.lnci-act-head)) { grid-template-columns: 1fr; }
.lnci-act-faq__list { max-width: none; margin: 0; }

/* ---------- Responsive ---------- */

@media (max-width: 1199px) {
    .lnci-page .lnci-act-hero__title { font-size: 42px; }
    .lnci-act-hero__media { margin-right: calc((970px - 100vw) / 2 - 15px); }
    .lnci-act-timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 40px; }
    .lnci-act-timeline::before,
    .lnci-act-timeline::after { display: none; }
}

@media (max-width: 991px) {
    .lnci-act-section { padding: 80px 0; }
    .lnci-page .lnci-act-title { font-size: 32px; }
    .lnci-act-hero { padding-top: 110px; }
    .lnci-act-hero::before { right: 0; }
    .lnci-act-hero__grid { grid-template-columns: 1fr; gap: 0; }
    .lnci-act-hero__content { padding: 24px 0 48px; }
    .lnci-act-hero__media { min-height: 380px; margin: 0 -15px; }
    .lnci-act-hero__media::before { left: 15px; bottom: auto; top: -18px; border-bottom: 0; border-top: 4px solid var(--lnci-orange); }
    .lnci-act-nav { top: 64px; }
    .lnci-act-intro,
    .lnci-act-services,
    .lnci-act-focus,
    .lnci-act-cross,
    .lnci-act-faq { grid-template-columns: 1fr; gap: 40px; }
    .lnci-act-figure,
    .lnci-act-head--side { position: static; }
    .lnci-act-figure img { aspect-ratio: 16 / 10; }
    .lnci-act-apps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lnci-act-apps__item:not(:nth-child(3n)) { border-right: 0; }
    .lnci-act-apps__item:nth-child(odd) { border-right: 1px solid rgba(17, 17, 17, .14); }
    .lnci-act-sectors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lnci-act-project { grid-template-columns: 1fr; }
    .lnci-act-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 170px; }

    /* timeline verticale */
    .lnci-act-timeline { grid-template-columns: 1fr; gap: 28px; }
    .lnci-act-timeline::before,
    .lnci-act-timeline::after {
        display: block;
        top: 0;
        bottom: 0;
        left: 27px;
        right: auto;
        width: 2px;
        height: auto;
    }
    .lnci-act-timeline::after { transform: scaleY(var(--p)); transform-origin: 50% 0; }
    .lnci-act-timeline__step { padding-left: 84px; min-height: 56px; }
    .lnci-act-timeline__node { position: absolute; left: 0; top: 0; }
    .lnci-page .lnci-act-timeline__title { margin-top: 14px; }
    .lnci-act-timeline__icon { display: none; }
}

@media (max-width: 767px) {
    .lnci-act-section { padding: 64px 0; }
    .lnci-act-head { margin-bottom: 36px; }
    .lnci-page .lnci-act-title { font-size: 27px; }
    .lnci-act-lead { font-size: 16px; }
    .lnci-page .lnci-act-hero__title { font-size: 32px; }
    .lnci-act-hero__text p { font-size: 16px; }
    .lnci-act-hero .lnci-actions .lnci-btn { width: 100%; }
    .lnci-act-hero__media { min-height: 280px; }
    .lnci-act-highlights__item { flex: 1 1 45%; margin-right: 0; padding-right: 16px; border-right: 0; }
    .lnci-act-intro .lnci-act-prose p:first-child { font-size: 17.5px; }
    .lnci-act-prose p { font-size: 16px; }
    .lnci-act-apps,
    .lnci-act-sectors,
    .lnci-act-services--compact .lnci-act-services__list,
    .lnci-act-services--detailed .lnci-act-services__list,
    .lnci-act-services--cards .lnci-act-services__list { grid-template-columns: 1fr; }
    .lnci-act-apps__item:nth-child(odd) { border-right: 0; }
    .lnci-act-apps__item { padding: 24px 0 26px; }
    .lnci-act-apps__icon { right: 0; }
    .lnci-act-specs { grid-template-columns: 1fr; margin-top: 40px; }
    .lnci-act-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 140px; }
    .lnci-act-project__body { padding: 26px 22px; }
    .lnci-act-project__meta { grid-template-columns: 1fr; }
    .lnci-act-cross--cards .lnci-act-related { grid-template-columns: 1fr; }
    .lnci-act-related__card { grid-template-columns: 72px minmax(0, 1fr) 20px; gap: 14px; }
    .lnci-act-related__media img { width: 72px; height: 56px; }
    .lnci-act-nav__link { padding: 15px 12px; font-size: 13px; }
    .lnci-act-focus__media::after { right: 0; top: -12px; }
    .lnci-act-nav__list { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
    .lnci-act-figure::after { right: 0; }
}
