/*
Architecture Portfolio Pro — 12 Projets 2026
Police principale : Garet/Garett si chargée par Elementor ou le thème.
*/
.app2026-single,
.app2026-single * {
    box-sizing: border-box;
}

.app2026-single {
    --app-bg: #FCFBFA;
    --app-paper: #ffffff;
    --app-dark: #181818;
    --app-text: #181818;
    --app-muted: #666666;
    --app-line: rgba(24,24,24,.12);
    background: var(--app-bg);
    color: var(--app-text);
    font-family: 'Garet', 'Garett', 'Garrett', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

.app2026-container {
    width: min(1180px, calc(100% - 2rem));
    margin-inline: auto;
}

.app2026-hero {
    position: relative;
    min-height: clamp(520px, 72vh, 760px);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #282828, #111111);
    background-size: cover;
    background-position: center;
    overflow: hidden;
    color: #fff;
}

.app2026-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,.38), rgba(0,0,0,.68));
}

.app2026-hero-inner {
    position: relative;
    z-index: 2;
    width: min(1040px, calc(100% - 2rem));
    margin-inline: auto;
    text-align: center;
    padding: clamp(4rem, 8vw, 7rem) 0;
}

.app2026-kicker,
.app2026-section-kicker {
    margin: 0 0 .9rem;
    text-transform: uppercase;
    letter-spacing: .22em;
    font-size: .78rem;
    font-weight: 800;
}

.app2026-kicker {
    color: rgba(255,255,255,.78);
}

.app2026-section-kicker {
    color: #8a7d6b;
}

.app2026-hero h1 {
    margin: 0;
    font-size: clamp(3rem, 6.4vw, 6.6rem);
    line-height: .98;
    letter-spacing: -.06em;
    font-weight: 800;
}

.app2026-hero-subtitle {
    max-width: 860px;
    margin: clamp(1.1rem, 2vw, 1.5rem) auto 0;
    font-size: clamp(1.05rem, 1.55vw, 1.4rem);
    line-height: 1.65;
    color: rgba(255,255,255,.86);
}

.app2026-hero-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .9rem;
    margin-top: clamp(2rem, 4vw, 3rem);
}

.app2026-hero-meta span {
    display: grid;
    gap: .25rem;
    min-width: 150px;
    padding: 1rem 1.2rem;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.08);
    backdrop-filter: blur(10px);
    text-align: left;
}

.app2026-hero-meta strong {
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: .68rem;
    color: rgba(255,255,255,.68);
}

.app2026-info {
    padding: clamp(2rem, 4vw, 3rem) 0;
    background: #fff;
    border-bottom: 1px solid var(--app-line);
}

.app2026-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: var(--app-line);
    border: 1px solid var(--app-line);
}

.app2026-info-card {
    background: #fff;
    padding: clamp(1rem, 2vw, 1.5rem);
}

.app2026-info-card span {
    display: block;
    margin-bottom: .45rem;
    color: var(--app-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.app2026-info-card strong {
    color: var(--app-dark);
    font-size: clamp(1rem, 1.25vw, 1.25rem);
    line-height: 1.35;
}

.app2026-content-section,
.app2026-gallery-section,
.app2026-process,
.app2026-related {
    padding: clamp(4rem, 7vw, 6.5rem) 0;
}

.app2026-challenge {
    padding: clamp(4rem, 7vw, 6.5rem) 0;
    background: var(--app-dark);
    color: #fff;
}

.app2026-two-cols,
.app2026-challenge-grid {
    display: grid;
    grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}

.app2026-two-cols h2,
.app2026-section-head h2,
.app2026-challenge h2 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 1.05;
    letter-spacing: -.045em;
    font-weight: 800;
}

.app2026-richtext p {
    margin: 0;
    color: #333;
    font-size: clamp(1.04rem, 1.25vw, 1.22rem);
    line-height: 1.9;
}

.app2026-challenge-grid article {
    border: 1px solid rgba(255,255,255,.16);
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background: rgba(255,255,255,.035);
}

.app2026-challenge-grid span {
    display: inline-flex;
    margin-bottom: 1rem;
    color: #caa76b;
    font-weight: 800;
    letter-spacing: .16em;
}

.app2026-challenge-grid p {
    margin: 1rem 0 0;
    color: rgba(255,255,255,.76);
    font-size: 1.05rem;
    line-height: 1.8;
}

.app2026-section-head {
    text-align: center;
    max-width: 780px;
    margin: 0 auto clamp(2rem, 4vw, 3rem);
}

.app2026-slideshow {
    position: relative;
    overflow: hidden;
    background: #111;
    min-height: 620px;
}

.app2026-slides,
.app2026-slide {
    position: absolute;
    inset: 0;
}

.app2026-slide {
    opacity: 0;
    transition: opacity .65s ease;
    margin: 0;
}

.app2026-slide.is-active {
    opacity: 1;
    z-index: 2;
}

.app2026-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.app2026-gallery-prev,
.app2026-gallery-next {
    position: absolute;
    z-index: 4;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(0,0,0,.25);
    color: #fff;
    cursor: pointer;
    font-size: 2.4rem;
    line-height: .75;
}

.app2026-gallery-prev {
    left: 1rem;
}

.app2026-gallery-next {
    right: 1rem;
}

.app2026-process {
    background: #fff;
}

.app2026-process-list {
    margin: 0;
    padding-left: 1.2rem;
    display: grid;
    gap: .75rem;
    color: #333;
    font-size: 1.08rem;
    line-height: 1.7;
}

.app2026-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.1rem;
}

.app2026-grid-card {
    background: #fff;
    overflow: hidden;
    border: 1px solid var(--app-line);
}

.app2026-grid-card a {
    display: block;
    color: inherit;
    text-decoration: none;
}

.app2026-grid-card img,
.app2026-grid-placeholder {
    width: 100%;
    aspect-ratio: 4 / 3;
    display: block;
    object-fit: cover;
    background: linear-gradient(135deg, #e9e5dd, #d8d1c5);
}

.app2026-grid-card div:not(.app2026-grid-placeholder) {
    padding: 1.1rem;
}

.app2026-grid-card span {
    display: block;
    color: var(--app-muted);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .68rem;
    font-weight: 800;
}

.app2026-grid-card h3 {
    margin: .45rem 0 .35rem;
    font-size: 1.25rem;
    line-height: 1.2;
}

.app2026-grid-card p {
    margin: 0;
    color: var(--app-muted);
    font-size: .92rem;
}

.app2026-admin-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 1rem;
}

@media (max-width: 900px) {
    .app2026-info-grid,
    .app2026-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app2026-two-cols,
    .app2026-challenge-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .app2026-info-grid,
    .app2026-grid {
        grid-template-columns: 1fr;
    }

    .app2026-hero-meta span {
        width: 100%;
    }

    .app2026-slideshow {
        min-height: 420px;
    }
}


/* Version 3.1.0 — animations élégantes des sections et éléments */
.app2026-hero-inner > * {
    opacity: 0;
    transform: translateY(22px);
    animation: app2026HeroFadeUp .9s cubic-bezier(.2,.75,.2,1) forwards;
}

.app2026-hero-inner > *:nth-child(1) { animation-delay: .08s; }
.app2026-hero-inner > *:nth-child(2) { animation-delay: .18s; }
.app2026-hero-inner > *:nth-child(3) { animation-delay: .30s; }
.app2026-hero-inner > *:nth-child(4) { animation-delay: .42s; }

.app2026-reveal {
    opacity: 1;
    transform: none;
    transition:
        opacity .9s cubic-bezier(.2,.75,.2,1),
        transform .9s cubic-bezier(.2,.75,.2,1);
    will-change: opacity, transform;
}

/* On ne masque (pour animer) QUE si le JS a marque la page comme prete */
.app2026-js .app2026-reveal:not(.is-visible) {
    opacity: 0;
    transform: translateY(34px);
}
.app2026-js .app2026-info-card.app2026-reveal:not(.is-visible),
.app2026-js .app2026-grid-card.app2026-reveal:not(.is-visible),
.app2026-js .app2026-challenge-grid article.app2026-reveal:not(.is-visible) {
    transform: translateY(28px) scale(.985);
}

.app2026-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.app2026-info-card.app2026-reveal,
.app2026-grid-card.app2026-reveal,
.app2026-challenge-grid article.app2026-reveal {
    transform: translateY(28px) scale(.985);
}

.app2026-info-card.app2026-reveal.is-visible,
.app2026-grid-card.app2026-reveal.is-visible,
.app2026-challenge-grid article.app2026-reveal.is-visible {
    transform: translateY(0) scale(1);
}

.app2026-info-card,
.app2026-grid-card,
.app2026-challenge-grid article {
    transition:
        opacity .85s cubic-bezier(.2,.75,.2,1),
        transform .85s cubic-bezier(.2,.75,.2,1),
        box-shadow .25s ease,
        border-color .25s ease;
}

.app2026-grid-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 60px rgba(0,0,0,.10);
}

.app2026-challenge-grid article:hover {
    border-color: rgba(255,255,255,.28);
    transform: translateY(-4px);
}

.app2026-slide.is-active img {
    animation: app2026GalleryZoom 6s ease-out forwards;
}

@keyframes app2026HeroFadeUp {
    from {
        opacity: 0;
        transform: translateY(22px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes app2026GalleryZoom {
    from {
        transform: scale(1);
    }
    to {
        transform: scale(1.035);
    }
}

@media (prefers-reduced-motion: reduce) {
    .app2026-hero-inner > *,
    .app2026-reveal,
    .app2026-info-card.app2026-reveal,
    .app2026-grid-card.app2026-reveal,
    .app2026-challenge-grid article.app2026-reveal,
    .app2026-slide.is-active img {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
    }
}


/* Version 3.2.0 — structure enrichie, titres de sections et blocs égaux */
.app2026-single-v32 {
    --app-bg: #FCFBFA;
    --app-soft: #F2EFEA;
    --app-dark: #181818;
    --app-text: #181818;
    --app-muted: #666666;
    --app-border: rgba(24,24,24,.12);
}

.app2026-single-v32 .app2026-container {
    width: min(1240px, calc(100% - 2rem));
}

.app2026-overview {
    padding: clamp(4rem, 7vw, 6.6rem) 0;
    background: var(--app-bg);
}

.app2026-overview-grid {
    display: grid;
    grid-template-columns: minmax(240px, .78fr) minmax(0, 1.22fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}

.app2026-overview-intro h2,
.app2026-section-head h2,
.app2026-process-intro h2 {
    margin: 0;
    color: var(--app-text);
    font-size: clamp(2.1rem, 4vw, 4.1rem);
    line-height: 1.05;
    letter-spacing: -.045em;
    font-weight: 800;
}

.app2026-overview-text p,
.app2026-section-head p,
.app2026-process-intro p {
    margin: 0;
    color: #3f3f3f;
    font-size: clamp(1.05rem, 1.28vw, 1.23rem);
    line-height: 1.9;
}

.app2026-overview-text p + .app2026-tags {
    margin-top: clamp(1.4rem, 3vw, 2rem);
}

.app2026-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.app2026-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: .75rem 1rem;
    background: #fff;
    border: 1px solid var(--app-border);
    color: #222;
    font-size: .85rem;
    font-weight: 700;
}

.app2026-single-v32 .app2026-info {
    padding: clamp(4rem, 7vw, 6rem) 0;
    background: var(--app-soft);
    border: 0;
}

.app2026-section-head {
    text-align: center;
    max-width: 850px;
    margin: 0 auto clamp(2.2rem, 4vw, 3.3rem);
}

.app2026-section-head-compact {
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.app2026-section-head p {
    margin-top: .9rem;
    color: var(--app-muted);
}

.app2026-single-v32 .app2026-info-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: var(--app-border);
    border: 1px solid var(--app-border);
}

.app2026-single-v32 .app2026-info-card {
    min-height: 168px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: #fff;
    padding: clamp(1.1rem, 2vw, 1.65rem);
}

.app2026-info-card em {
    display: inline-flex;
    color: #b49358;
    font-style: normal;
    font-weight: 900;
    letter-spacing: .14em;
    font-size: .75rem;
}

.app2026-single-v32 .app2026-info-card span {
    margin: auto 0 .35rem;
}

.app2026-single-v32 .app2026-challenge {
    padding: clamp(4.8rem, 8vw, 7.5rem) 0;
    background: #181818;
}

.app2026-section-head-dark h2 {
    color: #fff;
}

.app2026-section-head-dark p {
    color: rgba(255,255,255,.70);
}

.app2026-single-v32 .app2026-challenge-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 2rem);
    align-items: stretch;
}

.app2026-single-v32 .app2026-challenge-grid article,
.app2026-equal-card {
    height: 100%;
    min-height: clamp(360px, 28vw, 470px);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    border: 1px solid rgba(255,255,255,.16);
    background:
        linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.02)),
        rgba(255,255,255,.025);
    padding: clamp(1.7rem, 3.4vw, 3.2rem);
}

.app2026-single-v32 .app2026-challenge-grid article span {
    display: inline-flex;
    margin-bottom: clamp(1.4rem, 3vw, 2rem);
    color: #caa76b;
    font-weight: 900;
    letter-spacing: .22em;
    font-size: .86rem;
}

.app2026-single-v32 .app2026-challenge-grid article h2 {
    color: #fff;
    font-size: clamp(2.35rem, 4.3vw, 4.65rem);
    line-height: .98;
    margin-bottom: clamp(1.2rem, 2.5vw, 2rem);
}

.app2026-single-v32 .app2026-challenge-grid article p {
    color: rgba(255,255,255,.82);
    font-size: clamp(1.03rem, 1.35vw, 1.28rem);
    line-height: 1.85;
    margin-top: auto;
}

.app2026-single-v32 .app2026-gallery-section {
    background: var(--app-bg);
}

.app2026-single-v32 .app2026-process {
    background: #fff;
    padding: clamp(4.8rem, 8vw, 7rem) 0;
}

.app2026-process-grid {
    display: grid;
    grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}

.app2026-process-list-wrap {
    background: var(--app-soft);
    border: 1px solid var(--app-border);
    padding: clamp(1.2rem, 3vw, 2.2rem);
}

.app2026-process-list {
    list-style: none;
    counter-reset: appProcess;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 1px;
    background: rgba(24,24,24,.10);
}

.app2026-process-list li {
    counter-increment: appProcess;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    background: #fff;
    padding: 1.1rem;
}

.app2026-process-list li span::before {
    content: counter(appProcess, decimal-leading-zero);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    background: var(--app-dark);
    color: #fff;
    font-weight: 900;
    font-size: .82rem;
}

.app2026-process-list li p {
    margin: 0;
    color: #333;
    line-height: 1.65;
    font-size: 1.02rem;
}

.app2026-single-v32 .app2026-related {
    background: var(--app-soft);
}

.app2026-single-v32 .app2026-grid-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.app2026-single-v32 .app2026-grid-card a {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.app2026-single-v32 .app2026-grid-card div:not(.app2026-grid-placeholder) {
    flex: 1;
}

@media (max-width: 1024px) {
    .app2026-single-v32 .app2026-info-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app2026-overview-grid,
    .app2026-process-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .app2026-single-v32 .app2026-challenge-grid {
        grid-template-columns: 1fr;
    }

    .app2026-single-v32 .app2026-challenge-grid article,
    .app2026-equal-card {
        min-height: auto;
    }

    .app2026-single-v32 .app2026-info-grid {
        grid-template-columns: 1fr;
    }
}


/* Version 3.4.0 — correction ciblée du vide galerie */
.app2026-single-v32 .app2026-gallery-section {
    padding: clamp(3.8rem, 6vw, 5.4rem) 0;
}

.app2026-gallery-section:empty,
.app2026-slideshow:empty,
.app2026-slides:empty {
    display: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.app2026-slideshow:not(:has(.app2026-slide)) {
    display: none !important;
    min-height: 0 !important;
}

.app2026-slideshow {
    min-height: clamp(420px, 58vw, 620px);
}

.app2026-challenge + .app2026-process {
    margin-top: 0;
}

.app2026-single-v32 .app2026-challenge {
    padding-bottom: clamp(4.4rem, 7vw, 6.6rem);
}

.app2026-reveal.is-visible,
.app2026-gallery-section .app2026-reveal.is-visible {
    visibility: visible;
}

@supports not selector(:has(*)) {
    .app2026-slideshow {
        min-height: clamp(420px, 58vw, 620px);
    }
}


/* Version 3.8.0 — galerie premium Elementor-safe, sans 100vw ni modification du layout global */
.app2026-gallery-section {
    background: #FCFBFA;
    padding: clamp(4rem, 7vw, 6rem) 0;
}

.app2026-gallery-safe-luxury {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-height: clamp(420px, 58vw, 660px);
    height: clamp(420px, 58vw, 660px);
    overflow: hidden;
    background: #111;
    border: 1px solid rgba(24,24,24,.14);
    box-shadow: 0 28px 70px rgba(0,0,0,.16);
    isolation: isolate;
}

.app2026-gallery-safe-luxury::before {
    content: '';
    position: absolute;
    inset: 16px;
    z-index: 4;
    border: 1px solid rgba(255,255,255,.22);
    pointer-events: none;
}

.app2026-gallery-safe-luxury::after {
    content: '';
    position: absolute;
    inset: auto 7% -22% 7%;
    height: 36%;
    z-index: 3;
    background: radial-gradient(circle at center, rgba(199,154,75,.28), rgba(199,154,75,0) 65%);
    filter: blur(18px);
    pointer-events: none;
}

.app2026-gallery-safe-luxury .app2026-slides,
.app2026-gallery-safe-luxury .app2026-slide {
    position: absolute;
    inset: 0;
}

.app2026-gallery-safe-luxury .app2026-slide {
    margin: 0;
    opacity: 0;
    z-index: 1;
    transition:
        opacity 900ms cubic-bezier(.2,.75,.2,1),
        transform 1100ms cubic-bezier(.2,.75,.2,1);
    transform: scale(1.012);
}

.app2026-gallery-safe-luxury .app2026-slide.is-active {
    opacity: 1;
    z-index: 2;
    transform: scale(1);
}

.app2026-gallery-safe-luxury .app2026-slide::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
        linear-gradient(to bottom, rgba(0,0,0,.03), rgba(0,0,0,.20)),
        radial-gradient(circle at 50% 40%, rgba(255,255,255,.02), rgba(0,0,0,.18) 82%);
    pointer-events: none;
}

.app2026-gallery-safe-luxury .app2026-slide img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
    transform-origin: center;
    backface-visibility: hidden;
}

.app2026-gallery-safe-luxury .app2026-slide.is-active img {
    animation: app2026SafeLuxuryGalleryZoom 6.4s ease-out forwards;
}

.app2026-gallery-gold-btn {
    position: absolute;
    top: 50%;
    z-index: 8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(52px, 5vw, 66px);
    height: clamp(52px, 5vw, 66px);
    border: 1px solid rgba(255,255,255,.58);
    border-radius: 999px;
    background: linear-gradient(135deg, #FFE7A8 0%, #D1A04F 48%, #8A6426 100%);
    color: #181818;
    box-shadow:
        0 18px 44px rgba(0,0,0,.30),
        0 0 0 8px rgba(209,160,79,.18);
    cursor: pointer;
    transform: translateY(-50%);
    transition:
        transform .28s ease,
        box-shadow .28s ease,
        background .28s ease;
}

.app2026-gallery-gold-btn span {
    display: inline-flex;
    transform: translateY(-2px);
    font-size: clamp(2.6rem, 4vw, 3.35rem);
    line-height: .68;
    font-weight: 300;
    color: #181818;
}

.app2026-gallery-safe-luxury .app2026-gallery-prev {
    left: clamp(1rem, 3vw, 2rem);
}

.app2026-gallery-safe-luxury .app2026-gallery-next {
    right: clamp(1rem, 3vw, 2rem);
}

.app2026-gallery-gold-btn:hover {
    transform: translateY(-50%) scale(1.06);
    background: linear-gradient(135deg, #FFF1BF 0%, #D9AD5C 48%, #96702E 100%);
    box-shadow:
        0 22px 56px rgba(0,0,0,.34),
        0 0 0 10px rgba(209,160,79,.24);
}

.app2026-gallery-gold-btn:focus-visible {
    outline: 3px solid #F4D08A;
    outline-offset: 5px;
}

.app2026-gallery-counter {
    position: absolute;
    left: clamp(1rem, 3vw, 2rem);
    bottom: clamp(1rem, 3vw, 2rem);
    z-index: 8;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    min-height: 42px;
    padding: .7rem 1rem;
    background: rgba(0,0,0,.54);
    color: #fff;
    border: 1px solid rgba(244,208,138,.38);
    backdrop-filter: blur(12px);
    font-weight: 800;
    letter-spacing: .16em;
    font-size: .76rem;
}

.app2026-gallery-counter em {
    color: #D1A04F;
    font-style: normal;
}

.app2026-gallery-progress {
    position: absolute;
    left: clamp(1rem, 3vw, 2rem);
    right: clamp(1rem, 3vw, 2rem);
    bottom: 0;
    z-index: 8;
    height: 3px;
    background: rgba(255,255,255,.20);
}

.app2026-gallery-progress span {
    display: block;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, #8A6426, #F4D08A, #D1A04F);
    box-shadow: 0 0 18px rgba(244,208,138,.55);
    animation: app2026SafeGalleryProgress 5.6s linear forwards;
}

.app2026-gallery-thumbs {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(82px, 112px);
    gap: .7rem;
    width: 100%;
    max-width: 100%;
    margin-top: 1rem;
    overflow-x: auto;
    padding: .2rem .05rem .45rem;
    scrollbar-width: thin;
}

.app2026-gallery-thumb {
    position: relative;
    aspect-ratio: 4 / 3;
    padding: 0;
    border: 1px solid rgba(24,24,24,.16);
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    opacity: .62;
    transition:
        opacity .25s ease,
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}

.app2026-gallery-thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 2px solid transparent;
    transition: border-color .25s ease;
}

.app2026-gallery-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.app2026-gallery-thumb:hover,
.app2026-gallery-thumb.is-active {
    opacity: 1;
    transform: translateY(-2px);
    border-color: #D1A04F;
    box-shadow: 0 12px 30px rgba(0,0,0,.12);
}

.app2026-gallery-thumb.is-active::after {
    border-color: #F4D08A;
}

/* Sécurité Elementor : aucune règle full width globale ici */
.app2026-gallery-section .app2026-container {
    overflow: visible;
}

@keyframes app2026SafeLuxuryGalleryZoom {
    from { transform: scale(1); }
    to { transform: scale(1.04); }
}

@keyframes app2026SafeGalleryProgress {
    from { width: 0; }
    to { width: 100%; }
}

@media (max-width: 767px) {
    .app2026-gallery-safe-luxury {
        height: clamp(360px, 86vw, 520px);
        min-height: 360px;
    }

    .app2026-gallery-safe-luxury::before {
        inset: 10px;
    }

    .app2026-gallery-gold-btn {
        width: 48px;
        height: 48px;
        box-shadow:
            0 14px 34px rgba(0,0,0,.30),
            0 0 0 6px rgba(209,160,79,.18);
    }

    .app2026-gallery-safe-luxury .app2026-gallery-prev {
        left: .75rem;
    }

    .app2026-gallery-safe-luxury .app2026-gallery-next {
        right: .75rem;
    }

    .app2026-gallery-counter {
        min-height: 38px;
        padding: .55rem .75rem;
        font-size: .66rem;
    }

    .app2026-gallery-thumbs {
        grid-auto-columns: minmax(70px, 90px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .app2026-gallery-safe-luxury .app2026-slide,
    .app2026-gallery-safe-luxury .app2026-slide.is-active img,
    .app2026-gallery-progress span,
    .app2026-gallery-gold-btn,
    .app2026-gallery-thumb {
        transition: none !important;
        animation: none !important;
    }
}


/* Version 3.9.0 — correction réelle WordPress/Elementor/Block Theme : alignfull */
/*
overflow-x: hidden sur body transforme le body en conteneur de scroll
(overflow-y devient "auto") → une 2e barre de défilement apparaît dans la page.
overflow-x: clip coupe le débordement horizontal SANS créer de scrollbar interne.
Le "hidden" reste en fallback pour les très vieux navigateurs.
*/
body.single-projets {
    overflow-x: hidden;
    overflow-x: clip;
}

/*
Le thème WordPress peut appliquer .is-layout-constrained et limiter les contenus à ~600px.
La classe alignfull sur le template + ces règles empêchent la page projet d'être enfermée.
*/
body.single-projets .app2026-alignfull-template,
body.single-projets .app2026-single.alignfull,
body.single-projets .is-layout-constrained > .app2026-single.alignfull,
body.single-projets .wp-site-blocks > .app2026-single.alignfull,
body.single-projets .entry-content > .app2026-single.alignfull,
body.single-projets .wp-block-post-content > .app2026-single.alignfull {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow-x: hidden !important;
    overflow-x: clip !important;
}

/* Le contenu interne reste premium et centré */
body.single-projets .app2026-single .app2026-container {
    width: min(1240px, calc(100% - 48px)) !important;
    max-width: 1240px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Le hero reste large sans forcer 100vw */
body.single-projets .app2026-hero {
    width: 100% !important;
    max-width: 100% !important;
    background-size: cover !important;
    background-position: center center !important;
}

/* Sécurité : aucune section ne doit rester invisible si le JS/cache Elementor ne déclenche pas l'observer */
body.single-projets .app2026-reveal,
body.single-projets .app2026-reveal:not(.is-visible),
body.single-projets .app2026-info-card.app2026-reveal,
body.single-projets .app2026-grid-card.app2026-reveal,
body.single-projets .app2026-challenge-grid article.app2026-reveal {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

/* On garde une animation subtile non bloquante au chargement */
body.single-projets .app2026-overview,
body.single-projets .app2026-info,
body.single-projets .app2026-challenge,
body.single-projets .app2026-gallery-section,
body.single-projets .app2026-process,
body.single-projets .app2026-related {
    animation: app2026SafeFadeIn .7s cubic-bezier(.2,.75,.2,1) both;
}

@keyframes app2026SafeFadeIn {
    from { opacity: .88; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Responsive */
@media (max-width: 767px) {
    body.single-projets .app2026-single .app2026-container {
        width: min(100%, calc(100% - 28px)) !important;
        max-width: min(100%, calc(100% - 28px)) !important;
    }
}

/* Fallback pour navigateurs sans :has — garde au moins le template lui-même full */
@supports not selector(:has(*)) {
    body.single-projets .app2026-single.alignfull,
    body.single-projets .app2026-alignfull-template {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }
}



/* ==========================================================================
   Version 4.0.0 — MBA adaptation sans toucher aux contenus/images existants
   ========================================================================== */

.app2026-single,
.app2026-portfolio-home,
.app2026-portfolio-home * {
    box-sizing: border-box;
}

.app2026-single,
.app2026-portfolio-home {
    font-family: 'Garet', 'Garett', 'Garrett', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

.app2026-portfolio-home {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    color: #151515;
    background: transparent;
}

.app2026-portfolio-heading {
    max-width: 860px;
    margin: 0 auto clamp(2rem, 4vw, 3rem);
    text-align: center;
}

.app2026-portfolio-heading h2 {
    margin: 0;
    color: #151515;
    font-size: clamp(2.4rem, 5vw, 5rem);
    font-weight: 850;
    letter-spacing: -.055em;
    line-height: .96;
}

.app2026-portfolio-heading > p:last-child {
    max-width: 760px;
    margin: 1rem auto 0;
    color: #666;
    font-size: clamp(1rem, 1.3vw, 1.25rem);
    line-height: 1.65;
}

/* Home portfolio grid — ancien modèle adapté */
.app2026-grid-home,
.app2026-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(.85rem, 1.55vw, 1.35rem);
}

.app2026-project-card,
.app2026-grid-card {
    position: relative;
    min-width: 0;
    overflow: hidden;
    border: 0 !important;
    border-radius: 18px;
    background: #ece8e1;
    box-shadow: none;
}

.app2026-project-card > a,
.app2026-grid-card > a {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    color: inherit;
    text-decoration: none !important;
    border-radius: inherit;
}

.app2026-project-card img,
.app2026-grid-card img,
.app2026-project-card .app2026-grid-placeholder,
.app2026-grid-card .app2026-grid-placeholder {
    width: 100%;
    height: 100% !important;
    display: block;
    object-fit: cover;
    transition: transform .55s cubic-bezier(.2,.75,.2,1), filter .35s ease;
}

.app2026-grid-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(1.15rem, 2vw, 2rem);
    color: #fff;
    background:
        linear-gradient(to bottom, rgba(0,0,0,.08), rgba(0,0,0,.34) 42%, rgba(0,0,0,.72)),
        linear-gradient(135deg, rgba(0,0,0,.08), rgba(0,0,0,.36));
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .35s ease, transform .35s ease;
}

.app2026-project-card:hover .app2026-grid-overlay,
.app2026-project-card:focus-within .app2026-grid-overlay,
.app2026-project-card.is-featured .app2026-grid-overlay,
.app2026-grid-card:hover .app2026-grid-overlay,
.app2026-grid-card:focus-within .app2026-grid-overlay {
    opacity: 1;
    transform: translateY(0);
}

.app2026-project-card:hover img,
.app2026-project-card:focus-within img,
.app2026-grid-card:hover img,
.app2026-grid-card:focus-within img {
    transform: scale(1.045);
    filter: saturate(1.03) contrast(1.02);
}

.app2026-grid-category {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 .55rem;
    color: #fff;
    font-size: .73rem;
    font-weight: 900;
    letter-spacing: .14em;
    line-height: 1;
    text-transform: uppercase;
}

.app2026-grid-overlay h3 {
    max-width: 92%;
    margin: 0;
    color: #fff;
    font-size: clamp(1.35rem, 2.2vw, 2.15rem);
    font-weight: 850;
    line-height: 1.02;
    letter-spacing: -.045em;
}

.app2026-grid-service {
    max-width: 92%;
    margin: .5rem 0 0;
    color: rgba(255,255,255,.88);
    font-size: clamp(.88rem, 1.1vw, 1.05rem);
    font-weight: 650;
    line-height: 1.35;
}

.app2026-grid-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    width: min(100%, 370px);
    margin-top: clamp(1rem, 1.6vw, 1.35rem);
    border: 1px solid rgba(255,255,255,.25);
    background: rgba(255,255,255,.13);
    backdrop-filter: blur(8px);
}

.app2026-grid-stats span {
    display: grid;
    gap: .28rem;
    min-width: 0;
    padding: .72rem .75rem;
    color: #fff;
    background: rgba(0,0,0,.16);
}

.app2026-grid-stats strong {
    display: block;
    color: rgba(255,255,255,.70);
    font-size: .61rem;
    font-weight: 900;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
}

.app2026-grid-stats em {
    display: block;
    color: #fff;
    font-size: .82rem;
    font-style: normal;
    font-weight: 850;
    line-height: 1.16;
}

.app2026-grid-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 44px;
    margin-top: clamp(1rem, 1.6vw, 1.35rem);
    padding: 0 1.15rem;
    color: #151515;
    background: #fff;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1;
    text-transform: uppercase;
}

.app2026-grid-cta i {
    margin-left: .65rem;
    font-style: normal;
}

/* Related cards use the same style without forcing the first card permanently open */
.app2026-related .app2026-grid-card.is-featured .app2026-grid-overlay {
    opacity: 0;
}

/* Single project Hn fix */
.app2026-equal-card h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.55rem, 2.4vw, 2.35rem);
    line-height: 1.08;
    letter-spacing: -.035em;
    font-weight: 850;
}

/* Safer full-width behavior without global :has dependency */
body.single-projets .app2026-single.alignfull,
body.single-projets .app2026-alignfull-template {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-x: clip !important;
}

body.single-projets .app2026-single {
    background: #FCFBFA;
}

/* Avoid hidden states if cache/JS fails */
.app2026-reveal,
.app2026-reveal:not(.is-visible),
.app2026-grid-card.app2026-reveal,
.app2026-info-card.app2026-reveal,
.app2026-challenge-grid article.app2026-reveal {
    opacity: 1 !important;
    visibility: visible !important;
}

@media (max-width: 980px) {
    .app2026-grid-home,
    .app2026-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app2026-grid-overlay {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 640px) {
    .app2026-grid-home,
    .app2026-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .app2026-project-card,
    .app2026-grid-card {
        border-radius: 15px;
    }

    .app2026-grid-stats {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .app2026-grid-overlay {
        padding: 1.15rem;
    }

    .app2026-project-card > a,
    .app2026-grid-card > a {
        aspect-ratio: 4 / 3.25;
    }
}



/* ==========================================================================
   Version 4.1.0 — corrections section “Autres réalisations” + fades légers
   ========================================================================== */

/* Évite les retours à la ligne inutiles dans les titres de sections larges */
.app2026-related .app2026-section-head {
    max-width: min(1180px, calc(100% - 2rem)) !important;
}

.app2026-related .app2026-section-head h2 {
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(2.55rem, 4.45vw, 4.55rem) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
    text-wrap: balance;
}

.app2026-related .app2026-section-head p {
    max-width: 920px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    line-height: 1.58 !important;
    text-wrap: balance;
}

@media (min-width: 981px) {
    .app2026-related .app2026-section-head h2 {
        white-space: nowrap !important;
    }

    .app2026-related .app2026-section-head p {
        max-width: 980px !important;
    }
}

/* Les projets similaires doivent être nommés, pas seulement affichés comme images */
.app2026-related .app2026-grid-card > a {
    aspect-ratio: 4 / 3 !important;
}

.app2026-related .app2026-grid-card .app2026-related-overlay,
.app2026-related .app2026-grid-card .app2026-grid-overlay {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    justify-content: flex-end !important;
    padding: clamp(1.1rem, 1.8vw, 1.65rem) !important;
    background:
        linear-gradient(to bottom, rgba(0,0,0,0) 12%, rgba(0,0,0,.22) 42%, rgba(0,0,0,.76) 100%),
        linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.22)) !important;
}

.app2026-related .app2026-grid-card .app2026-grid-category {
    margin-bottom: .45rem !important;
    font-size: .68rem !important;
    letter-spacing: .14em !important;
    color: rgba(255,255,255,.82) !important;
}

.app2026-related .app2026-grid-card h3 {
    display: block !important;
    max-width: 95% !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(1.15rem, 1.65vw, 1.65rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -.035em !important;
    font-weight: 850 !important;
}

.app2026-related .app2026-grid-card .app2026-grid-service {
    margin-top: .45rem !important;
    color: rgba(255,255,255,.82) !important;
    font-size: .88rem !important;
    line-height: 1.35 !important;
}

.app2026-related .app2026-grid-card .app2026-grid-cta {
    min-height: 36px !important;
    margin-top: .85rem !important;
    padding: 0 .95rem !important;
    font-size: .66rem !important;
    background: rgba(255,255,255,.94) !important;
}

/* Annule l’ancienne règle qui masquait les overlays des cartes similaires */
.app2026-related .app2026-grid-card.is-featured .app2026-grid-overlay,
.app2026-related .app2026-grid-card .app2026-grid-overlay {
    opacity: 1 !important;
}

/* Fade animations légères sur toute la page projet */
html.app2026-js body.single-projets .app2026-reveal,
html.app2026-js .app2026-single .app2026-reveal {
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(18px) !important;
    transition:
        opacity .68s cubic-bezier(.22,.75,.2,1),
        transform .68s cubic-bezier(.22,.75,.2,1) !important;
    will-change: opacity, transform;
}

html.app2026-js body.single-projets .app2026-reveal.is-visible,
html.app2026-js .app2026-single .app2026-reveal.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
}

/* Fade direct pour les grandes sections, léger et non bloquant */
body.single-projets .app2026-hero .app2026-hero-inner {
    animation: app2026HeroFadeSoft .78s cubic-bezier(.22,.75,.2,1) both;
}

@keyframes app2026HeroFadeSoft {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Stagger visuel simple */
.app2026-info-card.app2026-reveal:nth-child(2),
.app2026-grid-card.app2026-reveal:nth-child(2),
.app2026-equal-card.app2026-reveal:nth-child(2) {
    transition-delay: .08s !important;
}

.app2026-info-card.app2026-reveal:nth-child(3),
.app2026-grid-card.app2026-reveal:nth-child(3) {
    transition-delay: .14s !important;
}

.app2026-info-card.app2026-reveal:nth-child(4),
.app2026-grid-card.app2026-reveal:nth-child(4) {
    transition-delay: .2s !important;
}

@media (max-width: 980px) {
    .app2026-related .app2026-section-head h2 {
        white-space: normal !important;
        font-size: clamp(2.2rem, 7vw, 3.4rem) !important;
    }

    .app2026-related .app2026-grid-card .app2026-related-overlay,
    .app2026-related .app2026-grid-card .app2026-grid-overlay {
        opacity: 1 !important;
        transform: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html.app2026-js body.single-projets .app2026-reveal,
    html.app2026-js .app2026-single .app2026-reveal,
    body.single-projets .app2026-hero .app2026-hero-inner {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }
}



/* ==========================================================================
   Version 4.2.0 — Raffinement premium global page projet
   Objectif : moins massif, plus équilibré, plus architectural.
   ========================================================================== */

/* 1) Rythme vertical général : sections moins lourdes */
body.single-projets .app2026-single section,
.app2026-single section {
    scroll-margin-top: 92px;
}

.app2026-overview,
.app2026-gallery-section,
.app2026-process,
.app2026-related {
    padding-top: clamp(4.2rem, 7vw, 6.5rem) !important;
    padding-bottom: clamp(4.2rem, 7vw, 6.5rem) !important;
}

/* 2) Headings secondaires : ne doivent plus rivaliser avec le Hero */
.app2026-section-head {
    max-width: min(980px, calc(100% - 2rem)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: clamp(2rem, 4vw, 3.2rem) !important;
    text-align: center !important;
}

.app2026-section-kicker,
.app2026-section-head .app2026-section-kicker,
.app2026-related .app2026-section-head .app2026-section-kicker {
    margin-bottom: .75rem !important;
    color: rgba(21,21,21,.55) !important;
    font-size: clamp(.72rem, .85vw, .82rem) !important;
    font-weight: 900 !important;
    letter-spacing: .34em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}

.app2026-section-head h2,
.app2026-related .app2026-section-head h2 {
    max-width: 980px !important;
    margin: 0 auto !important;
    color: #151515 !important;
    font-size: clamp(2.15rem, 3.55vw, 3.75rem) !important;
    font-weight: 850 !important;
    line-height: 1.02 !important;
    letter-spacing: -.055em !important;
    white-space: normal !important;
    text-wrap: balance !important;
}

.app2026-section-head p,
.app2026-related .app2026-section-head p {
    max-width: 760px !important;
    margin: 1rem auto 0 !important;
    color: rgba(21,21,21,.55) !important;
    font-size: clamp(.98rem, 1.12vw, 1.12rem) !important;
    font-weight: 500 !important;
    line-height: 1.62 !important;
    text-wrap: balance !important;
}

/* Dark sections heading refinement */
.app2026-challenge .app2026-section-kicker,
.app2026-challenge .app2026-section-head .app2026-section-kicker {
    color: rgba(255,255,255,.55) !important;
}

.app2026-challenge .app2026-section-head h2 {
    color: #fff !important;
    font-size: clamp(2.15rem, 3.8vw, 3.9rem) !important;
}

.app2026-challenge .app2026-section-head p {
    color: rgba(255,255,255,.62) !important;
}

/* 3) Section Défi / Solution : moins vide, plus dense, plus premium */
.app2026-challenge {
    background: #171717 !important;
    padding-top: clamp(4rem, 6.5vw, 6.2rem) !important;
    padding-bottom: clamp(4rem, 6.5vw, 6.2rem) !important;
}

.app2026-challenge-grid {
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(1rem, 2vw, 1.6rem) !important;
}

.app2026-challenge-grid article,
.app2026-equal-card {
    min-height: 0 !important;
    height: auto !important;
    padding: clamp(2rem, 3.4vw, 3.2rem) !important;
    border: 1px solid rgba(255,255,255,.095) !important;
    background:
        radial-gradient(circle at top left, rgba(255,255,255,.07), transparent 36%),
        linear-gradient(145deg, rgba(255,255,255,.052), rgba(255,255,255,.025)) !important;
    box-shadow: none !important;
}

.app2026-challenge-grid article > span,
.app2026-equal-card > span {
    display: inline-flex !important;
    margin-bottom: clamp(1.6rem, 3vw, 2.4rem) !important;
    color: #D1A04F !important;
    font-size: .78rem !important;
    font-weight: 900 !important;
    letter-spacing: .18em !important;
    line-height: 1 !important;
}

.app2026-challenge-grid article h3,
.app2026-equal-card h3 {
    margin: 0 0 clamp(1.5rem, 3vw, 2.25rem) !important;
    color: #fff !important;
    font-size: clamp(1.55rem, 2.4vw, 2.35rem) !important;
    font-weight: 850 !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
}

.app2026-challenge-grid article p,
.app2026-equal-card p {
    max-width: 94% !important;
    margin: 0 !important;
    color: rgba(255,255,255,.70) !important;
    font-size: clamp(1rem, 1.18vw, 1.18rem) !important;
    line-height: 1.72 !important;
}

/* 4) Related / autres réalisations : section secondaire plus fine */
.app2026-related {
    background: #F2EFEA !important;
}

.app2026-related .app2026-section-head {
    margin-bottom: clamp(2rem, 3.8vw, 3rem) !important;
}

.app2026-related .app2026-section-head h2 {
    font-size: clamp(2rem, 3.15vw, 3.25rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -.052em !important;
    white-space: normal !important;
}

.app2026-related .app2026-section-head p {
    max-width: 650px !important;
    font-size: clamp(.96rem, 1.06vw, 1.06rem) !important;
}

/* 5) Cartes similaires : image d’abord, texte lisible mais discret */
.app2026-related .app2026-grid,
.app2026-related .app2026-grid-home {
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: clamp(1rem, 1.8vw, 1.45rem) !important;
}

.app2026-related .app2026-grid-card {
    border-radius: 16px !important;
    background: #ded8cf !important;
    overflow: hidden !important;
}

.app2026-related .app2026-grid-card > a {
    aspect-ratio: 4 / 3.05 !important;
}

.app2026-related .app2026-grid-card img {
    filter: saturate(.98) contrast(1) brightness(.98) !important;
}

.app2026-related .app2026-grid-card:hover img,
.app2026-related .app2026-grid-card:focus-within img {
    transform: scale(1.035) !important;
    filter: saturate(1.02) contrast(1.02) brightness(.95) !important;
}

/* Overlay plus léger que la v4.1 */
.app2026-related .app2026-grid-card .app2026-related-overlay,
.app2026-related .app2026-grid-card .app2026-grid-overlay {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    justify-content: flex-end !important;
    padding: clamp(1rem, 1.55vw, 1.35rem) !important;
    background:
        linear-gradient(to bottom, rgba(0,0,0,0) 30%, rgba(0,0,0,.18) 58%, rgba(0,0,0,.64) 100%) !important;
}

.app2026-related .app2026-grid-card .app2026-grid-category {
    margin-bottom: .34rem !important;
    color: rgba(255,255,255,.76) !important;
    font-size: .58rem !important;
    font-weight: 900 !important;
    letter-spacing: .13em !important;
    line-height: 1.2 !important;
    max-width: 95% !important;
}

.app2026-related .app2026-grid-card h3 {
    max-width: 95% !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(1.05rem, 1.35vw, 1.38rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -.035em !important;
    font-weight: 850 !important;
}

.app2026-related .app2026-grid-card .app2026-grid-service {
    margin-top: .34rem !important;
    color: rgba(255,255,255,.76) !important;
    font-size: clamp(.78rem, .9vw, .88rem) !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
}

.app2026-related .app2026-grid-card .app2026-grid-cta {
    min-height: 30px !important;
    margin-top: .65rem !important;
    padding: 0 .78rem !important;
    color: #151515 !important;
    background: rgba(255,255,255,.90) !important;
    font-size: .58rem !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
    line-height: 1 !important;
    border-radius: 0 !important;
    opacity: .92 !important;
}

.app2026-related .app2026-grid-card .app2026-grid-cta i {
    margin-left: .45rem !important;
}

/* 6) Home portfolio cards also less commercial if reused */
.app2026-project-card .app2026-grid-overlay,
.app2026-grid-card .app2026-grid-overlay {
    background:
        linear-gradient(to bottom, rgba(0,0,0,.02), rgba(0,0,0,.28) 50%, rgba(0,0,0,.66)) !important;
}

/* 7) Animations fade plus fines */
html.app2026-js body.single-projets .app2026-reveal,
html.app2026-js .app2026-single .app2026-reveal {
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(12px) !important;
    transition:
        opacity .58s cubic-bezier(.22,.75,.2,1),
        transform .58s cubic-bezier(.22,.75,.2,1) !important;
    will-change: opacity, transform;
}

html.app2026-js body.single-projets .app2026-reveal.is-visible,
html.app2026-js .app2026-single .app2026-reveal.is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

body.single-projets .app2026-hero .app2026-hero-inner {
    animation: app2026HeroFadeSoftV42 .62s cubic-bezier(.22,.75,.2,1) both !important;
}

@keyframes app2026HeroFadeSoftV42 {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.app2026-info-card.app2026-reveal:nth-child(2),
.app2026-grid-card.app2026-reveal:nth-child(2),
.app2026-equal-card.app2026-reveal:nth-child(2) {
    transition-delay: .05s !important;
}

.app2026-info-card.app2026-reveal:nth-child(3),
.app2026-grid-card.app2026-reveal:nth-child(3) {
    transition-delay: .09s !important;
}

.app2026-info-card.app2026-reveal:nth-child(4),
.app2026-grid-card.app2026-reveal:nth-child(4) {
    transition-delay: .13s !important;
}

/* 8) Responsive : garder l’élégance sans casser les retours ligne */
@media (max-width: 980px) {
    .app2026-overview,
    .app2026-gallery-section,
    .app2026-process,
    .app2026-related,
    .app2026-challenge {
        padding-top: clamp(3.4rem, 8vw, 4.6rem) !important;
        padding-bottom: clamp(3.4rem, 8vw, 4.6rem) !important;
    }

    .app2026-section-head h2,
    .app2026-related .app2026-section-head h2,
    .app2026-challenge .app2026-section-head h2 {
        font-size: clamp(2rem, 7vw, 3.1rem) !important;
        white-space: normal !important;
    }

    .app2026-challenge-grid {
        grid-template-columns: 1fr !important;
    }

    .app2026-challenge-grid article,
    .app2026-equal-card {
        padding: clamp(1.6rem, 6vw, 2.35rem) !important;
    }
}

@media (max-width: 640px) {
    .app2026-section-head {
        margin-bottom: 1.75rem !important;
    }

    .app2026-section-head h2,
    .app2026-related .app2026-section-head h2,
    .app2026-challenge .app2026-section-head h2 {
        font-size: clamp(1.9rem, 10vw, 2.65rem) !important;
    }

    .app2026-section-head p,
    .app2026-related .app2026-section-head p,
    .app2026-challenge .app2026-section-head p {
        font-size: .96rem !important;
    }

    .app2026-related .app2026-grid-card .app2026-grid-category {
        font-size: .55rem !important;
    }

    .app2026-related .app2026-grid-card h3 {
        font-size: 1.18rem !important;
    }

    .app2026-related .app2026-grid-card .app2026-grid-cta {
        display: none !important;
    }
}



/* ==========================================================================
   Version 4.3.0 — Autres réalisations : cartes premium image + légende
   ========================================================================== */

/* La section reste secondaire et élégante */
.app2026-related {
    background: #F2EFEA !important;
}

.app2026-related .app2026-section-head {
    margin-bottom: clamp(1.8rem, 3.4vw, 2.7rem) !important;
}

.app2026-related .app2026-section-head h2 {
    font-size: clamp(2rem, 3vw, 3rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -.052em !important;
}

.app2026-related .app2026-section-head p {
    max-width: 620px !important;
    margin-top: .8rem !important;
}

/* Cartes : plus de gros overlay noir, image d’abord */
.app2026-related .app2026-grid,
.app2026-related .app2026-grid-home {
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: clamp(1.1rem, 2vw, 1.65rem) !important;
}

.app2026-related .app2026-grid-card {
    overflow: visible !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.app2026-related .app2026-grid-card > a {
    display: block !important;
    aspect-ratio: auto !important;
    overflow: visible !important;
    border-radius: 0 !important;
    background: transparent !important;
    text-decoration: none !important;
}

.app2026-related .app2026-grid-card img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 16px !important;
    filter: saturate(.98) contrast(1) brightness(1) !important;
    transform: none !important;
    transition: transform .42s cubic-bezier(.22,.75,.2,1), filter .42s ease, box-shadow .42s ease !important;
    box-shadow: 0 18px 36px rgba(17,17,17,.055) !important;
}

.app2026-related .app2026-grid-card:hover img,
.app2026-related .app2026-grid-card:focus-within img {
    transform: translateY(-3px) scale(1.018) !important;
    filter: saturate(1.02) contrast(1.02) brightness(.99) !important;
    box-shadow: 0 22px 46px rgba(17,17,17,.09) !important;
}

/* La légende devient statique sous l’image */
.app2026-related .app2026-grid-card .app2026-related-overlay,
.app2026-related .app2026-grid-card .app2026-grid-overlay {
    position: static !important;
    inset: auto !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    padding: .95rem .15rem 0 !important;
    color: #151515 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* Catégorie plus discrète */
.app2026-related .app2026-grid-card .app2026-grid-category {
    display: block !important;
    max-width: 100% !important;
    margin: 0 0 .38rem !important;
    color: rgba(21,21,21,.48) !important;
    font-size: .62rem !important;
    font-weight: 900 !important;
    letter-spacing: .14em !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
}

/* Nom du projet lisible mais pas agressif */
.app2026-related .app2026-grid-card h3 {
    display: block !important;
    max-width: 100% !important;
    margin: 0 !important;
    color: #151515 !important;
    font-size: clamp(1.08rem, 1.35vw, 1.42rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.035em !important;
    font-weight: 850 !important;
}

/* Infos secondaires en gris, sous le titre */
.app2026-related .app2026-grid-card .app2026-grid-service {
    max-width: 100% !important;
    margin: .38rem 0 0 !important;
    color: rgba(21,21,21,.55) !important;
    font-size: clamp(.82rem, .95vw, .92rem) !important;
    font-weight: 650 !important;
    line-height: 1.38 !important;
}

/* CTA supprimé visuellement : le clic est sur toute la carte */
.app2026-related .app2026-grid-card .app2026-grid-cta {
    display: none !important;
}

/* Hover plus élégant sur le titre */
.app2026-related .app2026-grid-card:hover h3,
.app2026-related .app2026-grid-card:focus-within h3 {
    color: #D1A04F !important;
}

/* Annule définitivement les anciens overlays noirs dans cette section */
.app2026-related .app2026-grid-card .app2026-grid-overlay::before,
.app2026-related .app2026-grid-card .app2026-grid-overlay::after {
    display: none !important;
    content: none !important;
}

@media (max-width: 980px) {
    .app2026-related .app2026-grid-card .app2026-related-overlay,
    .app2026-related .app2026-grid-card .app2026-grid-overlay {
        padding-top: .85rem !important;
    }

    .app2026-related .app2026-grid-card h3 {
        font-size: clamp(1.08rem, 2.6vw, 1.35rem) !important;
    }
}

@media (max-width: 640px) {
    .app2026-related .app2026-grid-card img {
        border-radius: 14px !important;
    }

    .app2026-related .app2026-grid-card .app2026-grid-category {
        font-size: .58rem !important;
    }

    .app2026-related .app2026-grid-card .app2026-grid-service {
        font-size: .84rem !important;
    }
}



/* ==========================================================================
   Version 4.6.0 — version stable : déduplication tags sans écran noir
   ========================================================================== */

/* Badges propres et limités : pas de doublons visibles */
.app2026-overview-tags-safe,
.app2026-overview-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .6rem !important;
}

.app2026-overview-tags-safe span,
.app2026-overview-tags span {
    min-height: 34px !important;
    padding: 0 .82rem !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.52) !important;
    border: 1px solid rgba(21,21,21,.10) !important;
    color: rgba(21,21,21,.68) !important;
    font-size: .78rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-shadow: none !important;
}

/* Sécurité visuelle douce : pas de 100vw agressif, pas de fixed, pas d'écran noir */
body.single-projets .app2026-single {
    max-width: 100% !important;
}

/* Empêche uniquement les débordements internes évidents, sans toucher aux wrappers globaux */
body.single-projets .app2026-gallery-section,
body.single-projets .app2026-related,
body.single-projets .app2026-grid,
body.single-projets .app2026-grid-home {
    max-width: 100% !important;
}


/* ==========================================================================
   Version 4.7.0 — suppression de la ligne de scroll visible sur la page projet
   ========================================================================== */

/*
1) La barre de défilement horizontale des vignettes de galerie reste
   fonctionnelle mais devient discrète : invisible par défaut, visible
   uniquement au survol / à l'interaction.
*/
.app2026-gallery-thumbs {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.app2026-gallery-thumbs::-webkit-scrollbar {
    height: 0;
}

.app2026-gallery-thumbs:hover,
.app2026-gallery-thumbs:focus-within {
    scrollbar-width: thin;
    scrollbar-color: rgba(24, 24, 24, .35) transparent;
}

.app2026-gallery-thumbs:hover::-webkit-scrollbar,
.app2026-gallery-thumbs:focus-within::-webkit-scrollbar {
    height: 6px;
}

.app2026-gallery-thumbs:hover::-webkit-scrollbar-thumb,
.app2026-gallery-thumbs:focus-within::-webkit-scrollbar-thumb {
    background: rgba(24, 24, 24, .3);
    border-radius: 999px;
}

.app2026-gallery-thumbs:hover::-webkit-scrollbar-track,
.app2026-gallery-thumbs:focus-within::-webkit-scrollbar-track {
    background: transparent;
}

/*
2) Sécurité anti double-scrollbar : aucun wrapper de la page projet ne doit
   devenir un conteneur de scroll vertical (cause de la "ligne de scroll"
   qui apparaît à l'intérieur de la page avec Elementor / Block Themes).
*/
body.single-projets .app2026-single,
body.single-projets .app2026-alignfull-template {
    overflow-y: visible !important;
}

body.single-projets .entry-content,
body.single-projets .wp-block-post-content,
body.single-projets .elementor-section-wrap,
body.single-projets .site-content {
    overflow: visible !important;
}



/* ==========================================================================
   Version 4.9.0 — Harmonisation intelligente des labels projets
   ========================================================================== */

.app2026-tags span,
.app2026-info-card strong,
.app2026-grid-service,
.app2026-grid-category {
    text-wrap: balance;
}

.app2026-tags span {
    white-space: normal !important;
}

.app2026-info-card strong {
    line-height: 1.18 !important;
}

.app2026-grid-service {
    max-width: 96% !important;
}



/* ==========================================================================
   Version 5.0.0 — Suppression doublon Prestation / Accompagnement
   ========================================================================== */

.app2026-info-grid .app2026-info-card strong {
    word-break: normal !important;
}



/* ==========================================================================
   Version 5.1.0 — Espacement interne cartes informations clés
   ========================================================================== */

.app2026-info-grid-balanced,
.app2026-info-grid {
    overflow: hidden;
}

.app2026-info-card {
    padding-left: clamp(2.1rem, 3vw, 3rem) !important;
    padding-right: clamp(2rem, 3vw, 3rem) !important;
    padding-top: clamp(1.9rem, 3vw, 2.7rem) !important;
    padding-bottom: clamp(1.9rem, 3vw, 2.7rem) !important;
}

.app2026-info-card em,
.app2026-info-card span,
.app2026-info-card strong {
    margin-left: 0 !important;
}

.app2026-info-card span {
    display: block !important;
    margin-top: clamp(1.6rem, 3vw, 2.4rem) !important;
    margin-bottom: .45rem !important;
}

.app2026-info-card strong {
    display: block !important;
    max-width: 100% !important;
    line-height: 1.16 !important;
}

/* Tablette */
@media (max-width: 1024px) {
    .app2026-info-card {
        padding-left: 1.6rem !important;
        padding-right: 1.6rem !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .app2026-info-card {
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
        padding-top: 1.4rem !important;
        padding-bottom: 1.4rem !important;
    }

    .app2026-info-card span {
        margin-top: 1.1rem !important;
    }
}



/* ==========================================================================
   Version 5.2.0 — Correction espacement section Processus d’intervention
   ========================================================================== */

.app2026-process {
    padding-left: clamp(1.25rem, 4vw, 4rem) !important;
    padding-right: clamp(1.25rem, 4vw, 4rem) !important;
}

.app2026-process .app2026-container,
.app2026-process-grid {
    width: min(100%, 1480px) !important;
    max-width: 1480px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.app2026-process-grid {
    display: grid !important;
    grid-template-columns: minmax(360px, .85fr) minmax(520px, 1.15fr) !important;
    gap: clamp(3rem, 6vw, 7rem) !important;
    align-items: center !important;
}

.app2026-process-intro {
    padding-left: clamp(1rem, 2.6vw, 2.5rem) !important;
    max-width: 620px !important;
}

.app2026-process-intro .app2026-section-kicker {
    margin-bottom: clamp(.85rem, 1.4vw, 1.2rem) !important;
}

.app2026-process-intro h2 {
    max-width: 560px !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
}

.app2026-process-intro p:not(.app2026-section-kicker) {
    max-width: 600px !important;
    line-height: 1.75 !important;
}

.app2026-process-list-wrap {
    padding: clamp(2rem, 3.6vw, 3.3rem) !important;
    background: rgba(249, 248, 245, .78) !important;
    border: 1px solid rgba(17,17,17,.12) !important;
}

.app2026-process-list {
    margin: 0 !important;
    padding: 0 !important;
}

.app2026-process-list li {
    padding-left: clamp(1rem, 2vw, 1.5rem) !important;
    padding-right: clamp(1rem, 2vw, 1.5rem) !important;
}

.app2026-process-list li p {
    padding-left: clamp(.9rem, 1.7vw, 1.35rem) !important;
    line-height: 1.45 !important;
}

/* Tablette */
@media (max-width: 1024px) {
    .app2026-process {
        padding-left: 1.35rem !important;
        padding-right: 1.35rem !important;
    }

    .app2026-process-grid {
        grid-template-columns: 1fr !important;
        gap: 2.4rem !important;
    }

    .app2026-process-intro {
        max-width: 760px !important;
        padding-left: 0 !important;
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .app2026-process-intro h2,
    .app2026-process-intro p:not(.app2026-section-kicker) {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .app2026-process-list-wrap {
        padding: 1.6rem !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .app2026-process {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .app2026-process-list-wrap {
        padding: 1rem !important;
    }

    .app2026-process-list li {
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }

    .app2026-process-list li p {
        padding-left: .65rem !important;
    }
}



/* ==========================================================================
   Version 5.3.0 — Suppression case vide Informations clés
   ========================================================================== */

/* La grille ne doit plus afficher un fond qui donne l'impression d'une case vide */
.app2026-info-grid,
.app2026-info-grid-balanced {
    background: transparent !important;
    border: 0 !important;
    gap: 0 !important;
}

/* Chaque carte porte sa propre bordure */
.app2026-info-card {
    background: #fff !important;
    border: 1px solid rgba(17,17,17,.14) !important;
    margin: -1px 0 0 -1px !important;
}

/* Layout desktop équilibré quand 7 cartes sont visibles */
@media (min-width: 1025px) {
    .app2026-info-grid-balanced.app2026-info-count-7 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .app2026-info-grid-balanced.app2026-info-count-7 .app2026-info-card:nth-child(5) {
        grid-column: 1 / span 1 !important;
    }

    .app2026-info-grid-balanced.app2026-info-count-7 .app2026-info-card:nth-child(6) {
        grid-column: 2 / span 2 !important;
    }

    .app2026-info-grid-balanced.app2026-info-count-7 .app2026-info-card:nth-child(7) {
        grid-column: 4 / span 1 !important;
    }

    .app2026-info-grid-balanced.app2026-info-count-6 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .app2026-info-grid-balanced.app2026-info-count-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }
}

/* Tablette : grille propre sans case fantôme */
@media (max-width: 1024px) {
    .app2026-info-grid-balanced {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Mobile : une colonne */
@media (max-width: 767px) {
    .app2026-info-grid-balanced {
        grid-template-columns: 1fr !important;
    }

    .app2026-info-card {
        margin-left: 0 !important;
        margin-top: -1px !important;
    }
}



/* ==========================================================================
   Version 5.4.0 — Informations clés en 6 cases uniformes
   ========================================================================== */

.app2026-info-grid,
.app2026-info-grid-balanced,
.app2026-info-grid-balanced.app2026-info-count-6 {
    background: transparent !important;
    border: 0 !important;
    gap: 0 !important;
}

@media (min-width: 1025px) {
    .app2026-info-grid,
    .app2026-info-grid-balanced,
    .app2026-info-grid-balanced.app2026-info-count-6 {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        grid-auto-rows: 1fr !important;
    }

    .app2026-info-card {
        min-height: 205px !important;
    }

    .app2026-info-grid-balanced.app2026-info-count-6 .app2026-info-card:nth-child(1),
    .app2026-info-grid-balanced.app2026-info-count-6 .app2026-info-card:nth-child(2),
    .app2026-info-grid-balanced.app2026-info-count-6 .app2026-info-card:nth-child(3),
    .app2026-info-grid-balanced.app2026-info-count-6 .app2026-info-card:nth-child(4),
    .app2026-info-grid-balanced.app2026-info-count-6 .app2026-info-card:nth-child(5),
    .app2026-info-grid-balanced.app2026-info-count-6 .app2026-info-card:nth-child(6) {
        grid-column: auto !important;
    }
}

.app2026-info-card {
    background: #fff !important;
    border: 1px solid rgba(17,17,17,.14) !important;
    margin: -1px 0 0 -1px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    padding-left: clamp(2.1rem, 3vw, 3rem) !important;
    padding-right: clamp(2rem, 3vw, 3rem) !important;
    padding-top: clamp(1.9rem, 3vw, 2.6rem) !important;
    padding-bottom: clamp(1.9rem, 3vw, 2.6rem) !important;
}

.app2026-info-card em {
    display: block !important;
    margin: 0 !important;
}

.app2026-info-card span {
    display: block !important;
    margin-top: auto !important;
    margin-bottom: .45rem !important;
}

.app2026-info-card strong {
    display: block !important;
    max-width: 100% !important;
    line-height: 1.16 !important;
}

/* Tablette : 2 colonnes x 3 lignes */
@media (max-width: 1024px) {
    .app2026-info-grid,
    .app2026-info-grid-balanced,
    .app2026-info-grid-balanced.app2026-info-count-6 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .app2026-info-card {
        min-height: 170px !important;
        padding-left: 1.6rem !important;
        padding-right: 1.6rem !important;
    }
}

/* Mobile : 1 colonne */
@media (max-width: 767px) {
    .app2026-info-grid,
    .app2026-info-grid-balanced,
    .app2026-info-grid-balanced.app2026-info-count-6 {
        grid-template-columns: 1fr !important;
    }

    .app2026-info-card {
        min-height: 145px !important;
        margin-left: 0 !important;
        margin-top: -1px !important;
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
        padding-top: 1.35rem !important;
        padding-bottom: 1.35rem !important;
    }
}



/* ==========================================================================
   Version 5.5.0 — Informations clés en 8 cases uniformes
   ========================================================================== */

.app2026-info-grid,
.app2026-info-grid-balanced,
.app2026-info-grid-balanced.app2026-info-count-8 {
    background: transparent !important;
    border: 0 !important;
    gap: 0 !important;
}

@media (min-width: 1025px) {
    .app2026-info-grid,
    .app2026-info-grid-balanced,
    .app2026-info-grid-balanced.app2026-info-count-8 {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        grid-auto-rows: 1fr !important;
    }

    .app2026-info-grid-balanced.app2026-info-count-8 .app2026-info-card:nth-child(1),
    .app2026-info-grid-balanced.app2026-info-count-8 .app2026-info-card:nth-child(2),
    .app2026-info-grid-balanced.app2026-info-count-8 .app2026-info-card:nth-child(3),
    .app2026-info-grid-balanced.app2026-info-count-8 .app2026-info-card:nth-child(4),
    .app2026-info-grid-balanced.app2026-info-count-8 .app2026-info-card:nth-child(5),
    .app2026-info-grid-balanced.app2026-info-count-8 .app2026-info-card:nth-child(6),
    .app2026-info-grid-balanced.app2026-info-count-8 .app2026-info-card:nth-child(7),
    .app2026-info-grid-balanced.app2026-info-count-8 .app2026-info-card:nth-child(8) {
        grid-column: auto !important;
    }

    .app2026-info-card {
        min-height: 205px !important;
    }
}

.app2026-info-card {
    background: #fff !important;
    border: 1px solid rgba(17,17,17,.14) !important;
    margin: -1px 0 0 -1px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    padding-left: clamp(2.1rem, 3vw, 3rem) !important;
    padding-right: clamp(2rem, 3vw, 3rem) !important;
    padding-top: clamp(1.9rem, 3vw, 2.6rem) !important;
    padding-bottom: clamp(1.9rem, 3vw, 2.6rem) !important;
}

.app2026-info-card em {
    display: block !important;
    margin: 0 !important;
}

.app2026-info-card span {
    display: block !important;
    margin-top: auto !important;
    margin-bottom: .45rem !important;
}

.app2026-info-card strong {
    display: block !important;
    max-width: 100% !important;
    line-height: 1.16 !important;
}

/* Tablette : 2 colonnes x 4 lignes */
@media (max-width: 1024px) {
    .app2026-info-grid,
    .app2026-info-grid-balanced,
    .app2026-info-grid-balanced.app2026-info-count-8 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .app2026-info-card {
        min-height: 170px !important;
        padding-left: 1.6rem !important;
        padding-right: 1.6rem !important;
    }
}

/* Mobile : 1 colonne */
@media (max-width: 767px) {
    .app2026-info-grid,
    .app2026-info-grid-balanced,
    .app2026-info-grid-balanced.app2026-info-count-8 {
        grid-template-columns: 1fr !important;
    }

    .app2026-info-card {
        min-height: 145px !important;
        margin-left: 0 !important;
        margin-top: -1px !important;
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
        padding-top: 1.35rem !important;
        padding-bottom: 1.35rem !important;
    }
}



/* ==========================================================================
   Version 5.6.0 — Espacement renforcé section Déroulement du projet
   ========================================================================== */

.app2026-process {
    padding-left: clamp(2rem, 5vw, 6rem) !important;
    padding-right: clamp(2rem, 5vw, 6rem) !important;
}

.app2026-process .app2026-container,
.app2026-process-grid {
    width: min(100%, 1460px) !important;
    max-width: 1460px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.app2026-process-grid {
    display: grid !important;
    grid-template-columns: minmax(420px, .92fr) minmax(560px, 1.08fr) !important;
    gap: clamp(4.5rem, 7vw, 8rem) !important;
    align-items: center !important;
}

/* Bloc texte gauche : vrai retrait, pas collé au bord */
.app2026-process-intro {
    padding-left: clamp(1.6rem, 3vw, 3.25rem) !important;
    padding-right: clamp(1rem, 2vw, 2rem) !important;
    max-width: 640px !important;
}

.app2026-process-intro .app2026-section-kicker {
    margin-bottom: clamp(1rem, 1.4vw, 1.25rem) !important;
}

.app2026-process-intro h2 {
    max-width: 620px !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
}

.app2026-process-intro p:not(.app2026-section-kicker) {
    max-width: 610px !important;
    line-height: 1.7 !important;
    margin-top: clamp(.95rem, 1.5vw, 1.25rem) !important;
}

/* Bloc étapes droite : plus d'air à gauche/droite */
.app2026-process-list-wrap {
    padding: clamp(2.7rem, 4.2vw, 4rem) !important;
    background: rgba(249,248,245,.78) !important;
    border: 1px solid rgba(17,17,17,.13) !important;
}

.app2026-process-list {
    margin: 0 !important;
    padding: 0 !important;
}

.app2026-process-list li {
    padding-left: clamp(1.6rem, 2.4vw, 2.2rem) !important;
    padding-right: clamp(1.6rem, 2.4vw, 2.2rem) !important;
    min-height: 98px !important;
}

.app2026-process-list li span {
    flex: 0 0 auto !important;
}

.app2026-process-list li p {
    padding-left: clamp(1.2rem, 2vw, 1.8rem) !important;
    line-height: 1.45 !important;
}

/* Tablette : centrage et respiration */
@media (max-width: 1024px) {
    .app2026-process {
        padding-left: 1.6rem !important;
        padding-right: 1.6rem !important;
    }

    .app2026-process-grid {
        grid-template-columns: 1fr !important;
        gap: 2.75rem !important;
    }

    .app2026-process-intro {
        padding-left: 0 !important;
        padding-right: 0 !important;
        text-align: center !important;
        max-width: 780px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .app2026-process-intro h2,
    .app2026-process-intro p:not(.app2026-section-kicker) {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .app2026-process-list-wrap {
        padding: 1.75rem !important;
    }

    .app2026-process-list li {
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
    }
}

/* Mobile : pas collé aux bords */
@media (max-width: 767px) {
    .app2026-process {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .app2026-process-list-wrap {
        padding: 1rem !important;
    }

    .app2026-process-list li {
        padding-left: .85rem !important;
        padding-right: .85rem !important;
        min-height: 84px !important;
    }

    .app2026-process-list li p {
        padding-left: .75rem !important;
    }
}
