/* =========================
   RESET & BASE
========================= */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

.page-title {
    font-size: clamp(1.8rem, 2.4vw, 2.6rem);
    font-weight: 800;
    line-height: 1.2;
    color: #0a2540;
    margin-bottom: 0.75rem;
    position: relative;
    display: inline-block;
}

.page-title::after {
    content: "";
    display: block;
    width: 70px;
    height: 3px;
    background: linear-gradient(90deg, #0d6efd, #5ea5ff);
    border-radius: 999px;
    margin-top: 0.8rem;
}

.page-subtitle {
    font-size: 1rem;
    color: #5f6f82;
    max-width: 760px;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.section-heading {
    margin-bottom: 1.5rem;
}

.section-heading .section-kicker {
    margin-bottom: 0.6rem;
}

.section-heading h2,
.section-heading h3,
.section-heading h4 {
    font-weight: 700;
    color: #0a2540;
    line-height: 1.25;
}

.publicites-carousel {
    border-radius: 1.25rem;
    overflow: hidden;
    background: #ffffff;
}

.publicite-slide {
    position: relative;
    min-height: 500px;
    isolation: isolate;
}

.publicite-slide img {
    width: 100%;
    height: 500px;
    object-fit: cover;
    display: block;
}

.publicite-slide-content {
    position: relative;
    z-index: 2;
    padding: 1.25rem 1.25rem 1.5rem;
    color: #0a2540;
    background: #ffffff;
    border-top: 1px solid rgba(13, 110, 253, 0.08);
}

.publicite-slide-content h3 {
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0.4rem 0 0.6rem;
}

.publicite-slide-content p {
    margin-bottom: 0.8rem;
    color: #5f6f82;
}

#publicitesCarousel .carousel-control-prev,
#publicitesCarousel .carousel-control-next {
    z-index: 1;
    position: absolute;
}

#publicitesCarousel .carousel-inner {
    position: relative;
    z-index: 2;
}

.publicite-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #0d6efd, #5ea5ff);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px rgba(13, 110, 253, 0.2);
}

.publicite-icon-small {
    width: 1.75rem;
    height: 1.75rem;
    font-size: 0.9rem;
}

.publicites-aside {
    background: linear-gradient(135deg, #f8fbff 0%, #eef5ff 100%);
    border: 1px solid rgba(13, 110, 253, 0.12);
    border-radius: 1.25rem;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
}

.publicites-aside-header {
    margin-bottom: 1rem;
}

.publicites-aside-header h4 {
    font-size: 1.15rem;
    font-weight: 700;
    color: #0a2540;
    margin-bottom: 0.35rem;
}

.publicites-aside-header p {
    color: #5f6f82;
    font-size: 0.95rem;
    margin-bottom: 0;
}

.publicites-list {
    overflow: hidden;
    padding-right: 0.25rem;
    max-height: 600px;
    position: relative;
}

.publicites-track {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    animation: publicitesScrollUp 18s linear infinite;
    will-change: transform;
}

.publicites-list:hover .publicites-track {
    animation-play-state: paused;
}

.publicites-list::-webkit-scrollbar {
    width: 6px;
}

.publicites-list::-webkit-scrollbar-thumb {
    background: rgba(13, 110, 253, 0.3);
    border-radius: 999px;
}

.publicite-item {
    background: #ffffff;
    border-radius: 0.9rem;
    padding: 0.9rem 1rem;
    box-shadow: 0 10px 22px rgba(13, 110, 253, 0.08);
}

.publicite-item h5 {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0a2540;
    margin-bottom: 0.35rem;
}

.publicite-item p {
    font-size: 0.9rem;
    color: #5f6f82;
    margin-bottom: 0;
}

@keyframes publicitesScrollUp {
    0% { transform: translateY(0); }
    100% { transform: translateY(-50%); }
}

.solution-promo-banner {
    position: relative;
    display: block;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin-top: 2rem;
    overflow: hidden;
    isolation: isolate;
    border: 1px solid rgba(155, 198, 255, .22);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    color: #fff;
    background:
        radial-gradient(ellipse at 83% 0%, rgba(48, 133, 255, .52), transparent 36%),
        linear-gradient(118deg, #092d52 0%, #104b83 55%, #126db1 100%);
    box-shadow: 0 22px 55px rgba(8, 48, 87, .2);
}

.solution-promo-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding-top: clamp(1.6rem, 4vw, 3rem);
    padding-bottom: clamp(1.6rem, 4vw, 3rem);
}

.solution-promo-copy {
    position: relative;
    z-index: 1;
    max-width: 740px;
}

.solution-promo-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .9rem;
    color: #b9dcff;
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.solution-promo-banner h2 {
    max-width: 680px;
    margin: 0 0 .75rem;
    color: #fff;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    font-weight: 750;
    letter-spacing: -.035em;
    line-height: 1.14;
}

.solution-promo-banner p {
    max-width: 620px;
    margin: 0 0 1.1rem;
    color: rgba(239, 247, 255, .84);
    font-size: 1rem;
    line-height: 1.65;
}

.solution-promo-duration {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: #d4eaff;
    font-size: .87rem;
    font-weight: 600;
}

.solution-promo-duration i {
    color: #80f0c1;
}

.solution-promo-button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    min-height: 3.5rem;
    padding: .9rem 1.4rem;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: .85rem;
    color: #103d68;
    background: #fff;
    box-shadow: 0 10px 28px rgba(3, 25, 47, .2);
    font-weight: 750;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.solution-promo-button:hover,
.solution-promo-button:focus-visible {
    transform: translateY(-2px);
    color: #092d52;
    background: #eaf5ff;
    box-shadow: 0 14px 32px rgba(3, 25, 47, .28);
}

.solution-promo-button i {
    font-size: 1.1rem;
    transition: transform .2s ease;
}

.solution-promo-button:hover i,
.solution-promo-button:focus-visible i {
    transform: translate(2px, -2px);
}

.solution-promo-decoration {
    position: absolute;
    z-index: -1;
    display: block;
    border: 1px solid rgba(207, 231, 255, .13);
    border-radius: 50%;
    pointer-events: none;
}

.solution-promo-decoration-one {
    top: -9rem;
    right: 9rem;
    width: 24rem;
    height: 24rem;
    box-shadow: 0 0 0 2.5rem rgba(207, 231, 255, .035), 0 0 0 5rem rgba(207, 231, 255, .025);
}

.solution-promo-decoration-two {
    right: 2rem;
    bottom: -14rem;
    width: 21rem;
    height: 21rem;
    background: rgba(45, 160, 214, .14);
    filter: blur(2px);
}

.project-support-banner {
    position: relative;
    width: 100%;
    margin-top: 2.5rem;
    overflow: hidden;
    isolation: isolate;
    border: 1px solid rgba(255, 219, 164, .28);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    color: #fff;
    background:
        radial-gradient(ellipse at 84% 0%, rgba(250, 179, 71, .3), transparent 34%),
        linear-gradient(118deg, #123d55 0%, #175b70 55%, #147d83 100%);
    box-shadow: 0 22px 55px rgba(13, 57, 70, .18);
}

.project-support-content {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding-top: clamp(1.6rem, 4vw, 3rem);
    padding-bottom: clamp(1.6rem, 4vw, 3rem);
}

.project-support-copy {
    max-width: 740px;
}

.project-support-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .9rem;
    color: #ffe0a8;
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.project-support-banner h2 {
    max-width: 680px;
    margin: 0 0 .75rem;
    color: #fff;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    font-weight: 750;
    letter-spacing: -.035em;
    line-height: 1.14;
}

.project-support-banner p {
    max-width: 620px;
    margin: 0;
    color: rgba(240, 251, 250, .86);
    font-size: 1rem;
    line-height: 1.65;
}

.project-support-button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    min-height: 3.5rem;
    padding: .9rem 1.4rem;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: .85rem;
    color: #164957;
    background: #fff;
    box-shadow: 0 10px 28px rgba(3, 35, 43, .2);
    font-weight: 750;
    text-align: center;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.project-support-button:hover,
.project-support-button:focus-visible {
    transform: translateY(-2px);
    color: #103b46;
    background: #fff7e8;
    box-shadow: 0 14px 32px rgba(3, 35, 43, .28);
}

.project-support-button i {
    font-size: 1.1rem;
    transition: transform .2s ease;
}

.project-support-button:hover i,
.project-support-button:focus-visible i {
    transform: translate(2px, -2px);
}

.project-support-decoration {
    position: absolute;
    z-index: -1;
    display: block;
    border: 1px solid rgba(255, 237, 207, .14);
    border-radius: 50%;
    pointer-events: none;
}

.project-support-decoration-one {
    top: -10rem;
    right: 10rem;
    width: 24rem;
    height: 24rem;
    box-shadow: 0 0 0 2.5rem rgba(255, 237, 207, .035), 0 0 0 5rem rgba(255, 237, 207, .025);
}

.project-support-decoration-two {
    right: 1rem;
    bottom: -14rem;
    width: 21rem;
    height: 21rem;
    background: rgba(42, 193, 165, .12);
    filter: blur(2px);
}

.public-form-page {
    --public-form-ink: #17324f;
    --public-form-muted: #64748b;
    --public-form-border: #e3eaf3;
    --public-form-accent: #155eef;
    --public-form-soft: #f4f8fd;
    max-width: 1040px;
    padding-top: clamp(2.5rem, 6vw, 5rem) !important;
    padding-bottom: clamp(3rem, 7vw, 5.5rem) !important;
}

.public-form-page .public-form-header {
    max-width: 760px;
    margin: 0 auto 2rem;
    text-align: center;
}

.public-form-page .public-form-header .section-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .55rem;
}

.public-form-page .public-form-header .section-title,
.public-form-page .public-form-header h1 {
    margin: 0 auto .75rem;
    color: var(--public-form-ink);
    font-size: clamp(1.8rem, 3.4vw, 2.6rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.14;
}

.public-form-page .public-form-header > p:last-child {
    max-width: 680px;
    margin: 0 auto;
    color: var(--public-form-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.public-form-page .public-form-panel,
.public-form-page .public-form-aside {
    border: 1px solid var(--public-form-border) !important;
    border-radius: 1.15rem !important;
    background: #fff;
    box-shadow: 0 18px 48px rgba(24, 54, 88, .08) !important;
}

.public-form-page .public-form-panel {
    overflow: hidden;
}

.public-form-page .public-form-panel > .card-body {
    padding: clamp(1.25rem, 4vw, 2.5rem) !important;
}

.public-form-page .public-form-panel > .card-footer {
    padding: 0 clamp(1.25rem, 4vw, 2.5rem) clamp(1.25rem, 4vw, 2.5rem) !important;
    border: 0 !important;
    background: #fff !important;
}

.public-form-page .public-form-section-heading {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    margin: 0 0 1.15rem;
    color: var(--public-form-ink);
}

.public-form-page .public-form-section-heading:not(:first-child) {
    margin-top: .25rem;
}

.public-form-page .public-form-section-icon {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 2.5rem;
    place-items: center;
    border-radius: .75rem;
    color: var(--public-form-accent);
    background: #edf4ff;
    font-size: 1.05rem;
}

.public-form-page .public-form-section-heading h2,
.public-form-page .public-form-section-heading h3 {
    margin: .05rem 0 .2rem;
    color: var(--public-form-ink);
    font-size: 1.05rem;
    font-weight: 750;
    letter-spacing: -.015em;
}

.public-form-page .public-form-section-heading p {
    margin: 0;
    color: var(--public-form-muted);
    font-size: .84rem;
    line-height: 1.5;
}

.public-form-page .form-label {
    margin-bottom: .45rem;
    color: #344563;
    font-size: .9rem;
    font-weight: 650;
}

.public-form-page .form-control,
.public-form-page .form-select {
    min-height: 3rem;
    border: 1px solid #d6e0ec;
    border-radius: .7rem;
    color: var(--public-form-ink);
    background-color: #fff;
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.public-form-page textarea.form-control {
    min-height: 7rem;
    padding-top: .75rem;
    line-height: 1.6;
    resize: vertical;
}

.public-form-page .form-control::placeholder {
    color: #9aa8b9;
}

.public-form-page .form-control:focus,
.public-form-page .form-select:focus {
    border-color: #84adff;
    outline: 0;
    box-shadow: 0 0 0 .22rem rgba(21, 94, 239, .13);
}

.public-form-page .form-control:disabled,
.public-form-page .form-select:disabled {
    color: #8290a3;
    background-color: #f2f5f9;
}

.public-form-page .form-text {
    margin-top: .4rem;
    color: var(--public-form-muted);
    font-size: .78rem;
    line-height: 1.5;
}

.public-form-page .public-form-divider {
    height: 1px;
    margin: 1.7rem 0;
    border: 0;
    background: var(--public-form-border);
    opacity: 1;
}

.public-form-page .public-form-notice {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin: 0 0 1.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid #cfe0ff;
    border-radius: .8rem;
    color: #24456f;
    background: linear-gradient(110deg, #edf4ff, #f8fbff);
    font-size: .9rem;
    line-height: 1.55;
}

.public-form-page .public-form-notice > i {
    flex: 0 0 auto;
    margin-top: .1rem;
    color: var(--public-form-accent);
    font-size: 1.1rem;
}

.public-form-page .public-form-notice p:last-child {
    margin-bottom: 0;
}

.public-form-page .public-form-alert {
    border-radius: .8rem;
    line-height: 1.55;
}

.public-form-page .public-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}

.public-form-page .public-form-actions .btn {
    min-height: 3rem;
    padding: .72rem 1.15rem;
    border-radius: .7rem;
    font-weight: 700;
}

.public-form-page .public-form-actions .btn-primary {
    border-color: #155eef;
    background: linear-gradient(135deg, #155eef, #2878f0);
    box-shadow: 0 8px 18px rgba(21, 94, 239, .18);
}

.public-form-page .public-form-actions .btn-primary:hover,
.public-form-page .public-form-actions .btn-primary:focus-visible {
    border-color: #1248c7;
    background: linear-gradient(135deg, #1248c7, #155eef);
    box-shadow: 0 10px 22px rgba(21, 94, 239, .24);
    transform: translateY(-1px);
}

.public-form-page .public-form-actions .btn:disabled {
    box-shadow: none;
    transform: none;
}

.public-form-page .public-form-aside {
    padding: clamp(1.25rem, 3vw, 2rem);
    background:
        radial-gradient(circle at 100% 0, rgba(21, 94, 239, .08), transparent 36%),
        #fff;
}

.public-form-page .public-form-aside h2,
.public-form-page .public-form-aside h3 {
    margin-bottom: .6rem;
    color: var(--public-form-ink);
    font-size: 1.05rem;
    font-weight: 750;
}

.public-form-page .public-form-aside p {
    color: var(--public-form-muted);
    font-size: .9rem;
    line-height: 1.6;
}

.public-form-page .public-form-aside .public-form-aside-item {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-top: 1rem;
    color: #43566e;
    font-size: .88rem;
}

.public-form-page .public-form-aside-item i {
    margin-top: .1rem;
    color: var(--public-form-accent);
}

.public-form-page .form-control[type="file"] {
    min-height: 3.1rem;
    padding: .4rem .55rem;
}

.public-form-page .form-control[type="file"]::file-selector-button {
    min-height: 2.15rem;
    margin: 0 .65rem 0 0;
    padding: .35rem .75rem;
    border: 0;
    border-radius: .5rem;
    color: #174b89;
    background: #eaf2ff;
    font-size: .82rem;
    font-weight: 650;
}

.public-form-page .form-control[type="file"]::file-selector-button:hover {
    background: #dceaff;
}

.public-form-page .form-check-input {
    border-color: #aebdce;
}

.public-form-page .form-check-input:checked {
    border-color: var(--public-form-accent);
    background-color: var(--public-form-accent);
}

.public-form-page .form-check-input:focus {
    border-color: #84adff;
    box-shadow: 0 0 0 .2rem rgba(21, 94, 239, .13);
}

.public-form-page .form-check-label {
    color: #43566e;
    line-height: 1.5;
}

@media (max-width: 575.98px) {
    .public-form-page {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .public-form-page .public-form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .public-form-page .public-form-actions .btn {
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    .solution-promo-banner {
        border-radius: 0;
    }

    .solution-promo-content {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.4rem;
    }

    .solution-promo-button {
        width: 100%;
    }

    .solution-promo-decoration-one {
        right: -12rem;
    }

    .project-support-content {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.4rem;
    }

    .project-support-button {
        width: 100%;
    }

    .project-support-decoration-one {
        right: -12rem;
    }
}

.title-accent {
    color: #0d6efd;
}

.title-underline {
    position: relative;
    display: inline-block;
}

.title-underline::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -0.25rem;
    width: 100%;
    height: 3px;
    background: #f7c948;
}

.actualites-cover {
    min-height: 560px;
    margin: 0 calc(50% - 50vw);
    overflow: hidden;
    position: relative;
    background: #102b3d;
}

.actualites-cover-media,
.actualites-cover-shade {
    position: absolute;
    inset: 0;
}

.actualites-cover-media {
    z-index: 0;
}

.actualites-cover-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.actualites-cover-shade {
    z-index: 1;
    background: linear-gradient(90deg, rgba(6, 26, 40, .88) 0%, rgba(6, 26, 40, .58) 43%, rgba(6, 26, 40, .12) 100%);
}

.actualites-cover-content {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 3rem));
    min-height: 560px;
    margin: 0 auto;
    padding: 2rem 0 4.5rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
}

.actualites-cover-label {
    margin-bottom: 1rem;
    color: #8fe1dc;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.2;
    text-transform: uppercase;
}

.actualites-cover-content h1 {
    max-width: 820px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 6.8rem);
    font-weight: 800;
    line-height: .96;
    letter-spacing: 0;
}

@media (max-width: 576px) {
    .actualites-cover {
        min-height: 460px;
    }

    .actualites-cover-image {
        object-position: 58% center;
    }

    .actualites-cover-shade {
        background: linear-gradient(90deg, rgba(6, 26, 40, .86), rgba(6, 26, 40, .3));
    }

    .actualites-cover-content {
        width: min(100% - 2rem, 1180px);
        min-height: 460px;
        padding-bottom: 3rem;
    }
}

.axes-cover {
    min-height: 560px;
    margin: 0 calc(50% - 50vw);
    overflow: hidden;
    position: relative;
    background: #102b3d;
}

.axes-cover-media,
.axes-cover-shade {
    position: absolute;
    inset: 0;
}

.axes-cover-media {
    z-index: 0;
}

.axes-cover-image {
    object-fit: cover;
    object-position: center;
    display: block;
    width: 100%;
    height: 100%;
}

.axes-cover-shade {
    z-index: 1;
    background: linear-gradient(90deg, rgba(6, 26, 40, .88) 0%, rgba(6, 26, 40, .58) 43%, rgba(6, 26, 40, .12) 100%);
}

.axes-cover-content {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 3rem));
    min-height: 560px;
    margin: 0 auto;
    padding: 2rem 0 4.5rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
}

.axes-cover-label {
    margin-bottom: 1rem;
    color: #8fe1dc;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.2;
    text-transform: uppercase;
}

.axes-cover-content h1 {
    max-width: 820px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 6.8rem);
    font-weight: 800;
    line-height: .96;
    letter-spacing: 0;
}

@media (max-width: 576px) {
    .axes-cover {
        min-height: 460px;
    }

    .axes-cover-image {
        object-position: 58% center;
    }

    .axes-cover-shade {
        background: linear-gradient(90deg, rgba(6, 26, 40, .86), rgba(6, 26, 40, .3));
    }

    .axes-cover-content {
        width: min(100% - 2rem, 1180px);
        min-height: 460px;
        padding-bottom: 3rem;
    }
}

.projets-cover {
    min-height: 560px;
    margin: 0 calc(50% - 50vw);
    overflow: hidden;
    position: relative;
    background: #102b3d;
}

.projets-cover-media,
.projets-cover-shade {
    position: absolute;
    inset: 0;
}

.projets-cover-media {
    z-index: 0;
}

.projets-cover-image {
    object-fit: cover;
    object-position: center;
    display: block;
    width: 100%;
    height: 100%;
}

.projets-cover-shade {
    z-index: 1;
    background: linear-gradient(90deg, rgba(6, 26, 40, .88) 0%, rgba(6, 26, 40, .58) 43%, rgba(6, 26, 40, .12) 100%);
}

.projets-cover-content {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 3rem));
    min-height: 560px;
    margin: 0 auto;
    padding: 2rem 0 4.5rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
}

.projets-cover-label {
    margin-bottom: 1rem;
    color: #8fe1dc;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.2;
    text-transform: uppercase;
}

.projets-cover-content h1 {
    max-width: 820px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 6.8rem);
    font-weight: 800;
    line-height: .96;
    letter-spacing: 0;
}

.formations-cover {
    min-height: 560px;
    margin: 0 calc(50% - 50vw);
    overflow: hidden;
    position: relative;
    background: #102b3d;
}

.formations-cover-media,
.formations-cover-shade {
    position: absolute;
    inset: 0;
}

.formations-cover-media {
    z-index: 0;
}

.formations-cover-image {
    object-fit: cover;
    object-position: center;
    display: block;
    width: 100%;
    height: 100%;
}

.formations-cover-shade {
    z-index: 1;
    background: linear-gradient(90deg, rgba(6, 26, 40, .88) 0%, rgba(6, 26, 40, .58) 43%, rgba(6, 26, 40, .12) 100%);
}

.formations-cover-content {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 3rem));
    min-height: 560px;
    margin: 0 auto;
    padding: 2rem 0 4.5rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
}

.formations-cover-label {
    margin-bottom: 1rem;
    color: #8fe1dc;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.2;
    text-transform: uppercase;
}

.formations-cover-content h1 {
    max-width: 820px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 6.8rem);
    font-weight: 800;
    line-height: .96;
    letter-spacing: 0;
}

@media (max-width: 576px) {
    .formations-cover {
        min-height: 460px;
    }

    .formations-cover-image {
        object-position: 58% center;
    }

    .formations-cover-shade {
        background: linear-gradient(90deg, rgba(6, 26, 40, .86), rgba(6, 26, 40, .3));
    }

    .formations-cover-content {
        width: min(100% - 2rem, 1180px);
        min-height: 460px;
        padding-bottom: 3rem;
    }
}

@media (max-width: 576px) {
    .projets-cover {
        min-height: 460px;
    }

    .projets-cover-image {
        object-position: 58% center;
    }

    .projets-cover-shade {
        background: linear-gradient(90deg, rgba(6, 26, 40, .86), rgba(6, 26, 40, .3));
    }

    .projets-cover-content {
        width: min(100% - 2rem, 1180px);
        min-height: 460px;
        padding-bottom: 3rem;
    }
}

.axe-detail-hero .page-title,
.axe-detail-hero .page-subtitle,
.axe-detail-hero .badge {
    text-align: left;
}

.axe-header {
    overflow: hidden;
}

.axe-header-float {
    float: left;
    width: 140px;
    height: 140px;
    object-fit: cover;
    border-radius: 0.75rem;
    box-shadow: 0 18px 40px rgba(10, 37, 64, 0.12);
    margin: 0 1.25rem 1rem 0;
    shape-outside: circle();
    clip-path: circle();
}

/* Make sure the heading and paragraph flow beside the image */
.axe-header .page-title {
    margin-top: 0.15rem;
}

.axe-header .page-subtitle {
    clear: both;
    text-align: justify;
    text-justify: inter-word;
}

/* Axe hero modern layout */
:root{
    --accent: #0d6efd;
    --muted: #6c757d;
    --card-radius: 0.75rem;
}

.detail-axe-hero {
    position: relative;
    overflow: hidden;
    border-radius: calc(var(--card-radius) * 1.1);
    background: linear-gradient(180deg, #ffffff 0%, #eef4ff 100%);
    border: 1px solid rgba(13, 110, 253, 0.12);
        box-shadow: 0 30px 80px rgba(13, 110, 253, 0.1);
}

    .detail-axe-back {
        display: inline-flex;
        align-items: center;
        color: #5f6f82;
        font-weight: 700;
        text-decoration: none;
    }

    .detail-axe-back:hover {
        color: #0d6efd;
    }

.detail-axe-hero::before {
    content: '';
    position: absolute;
    top: -30px;
    right: -70px;
    width: 260px;
    height: 260px;
    background: radial-gradient(circle at center, rgba(13, 110, 253, 0.14), transparent 60%);
    pointer-events: none;
}

.detail-axe-hero::after {
    content: '';
    position: absolute;
    bottom: -50px;
    left: -50px;
    width: 220px;
    height: 220px;
    background: radial-gradient(circle at center, rgba(91, 143, 255, 0.14), transparent 60%);
    pointer-events: none;
}

.detail-axe-hero-body {
    position: relative;
    z-index: 1;
}

.detail-axe-hero-badge {
    text-transform: uppercase;
    letter-spacing: .14em;
    background: rgba(13, 110, 253, 0.14);
    color: #0d6efd;
    font-weight: 700;
}

.detail-axe-hero-title {
    font-size: clamp(2.4rem, 4.5vw, 4rem);
    font-weight: 800;
    line-height: 1.05;
    margin-bottom: 1.5rem;
    color: #0a2540;
}

.detail-axe-hero-intro {
    color: #5f6f82;
    font-size: 1.05rem;
    line-height: 1.8;
    max-width: 680px;
}

.detail-axe-hero-card {
    background: #ffffff;
    border-radius: 1.5rem;
    box-shadow: 0 18px 40px rgba(13, 110, 253, 0.08);
}

.detail-axe-hero-card span,
.detail-axe-hero-card strong {
    display: block;
}

.detail-axe-hero-card strong {
    margin-top: 0.75rem;
    font-size: 1.95rem;
    line-height: 1;
    color: #0d6efd;
}

.detail-axe-hero-figure {
    position: relative;
    min-height: 420px;
    border-radius: 1.75rem;
    overflow: hidden;
}

.detail-axe-hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}

.detail-axe-hero-image:hover {
    transform: scale(1.03);
}

.detail-axe-hero-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(12px);
    padding: 1.5rem;
    border-top-left-radius: 1.75rem;
    border-top-right-radius: 1.75rem;
}

.detail-axe-section {
    background: #f8fbff;
    border-radius: calc(var(--card-radius) * 1.1);
    padding: 2.5rem;
}

.detail-axe-section + .detail-axe-section {
    margin-top: 1.5rem;
}

.detail-axe-mission-list {
    list-style: none;
    padding: 0;
    margin: 0;
    color: #5f6f82;
}

.detail-axe-mission-list li {
    margin-bottom: 1rem;
    padding-left: 1.4rem;
    position: relative;
}

.detail-axe-mission-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.9rem;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #0d6efd;
}

.detail-axe-actions-grid,
.detail-axe-metrics-grid {
    display: grid;
    gap: 1.5rem;
}

.detail-axe-actions-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.detail-axe-metrics-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.detail-axe-project-card {
    overflow: hidden;
    border-radius: 1.5rem;
}

.detail-axe-project-image {
    height: 220px;
    object-fit: cover;
}

.detail-axe-cta {
    background: linear-gradient(135deg, #0d6efd 0%, #1a81ff 100%);
    color: #ffffff;
    border-radius: 1.75rem;
    padding: 2.5rem;
}

.detail-axe-cta .section-kicker,
.detail-axe-cta .section-title,
.detail-axe-cta p {
    color: #ffffff;
}

.detail-axe-cta .btn-light {
    color: #0d6efd;
}

.detail-axe-cta .btn-outline-light {
    border-color: rgba(255, 255, 255, 0.75);
}

.about-membership-banner {
    margin-inline: calc(50% - 50vw);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(2rem, 6vw, 6rem);
    padding: clamp(2rem, 5vw, 4.5rem) clamp(1.5rem, 9vw, 10rem);
    border-inline-start: 7px solid #f2b544;
    background: linear-gradient(112deg, #123d42 0%, #174c4a 68%, #23695e 100%);
    color: #ffffff;
}

.about-membership-banner::after {
    position: absolute;
    z-index: -1;
    inset: 0 0 0 auto;
    width: min(40vw, 520px);
    background: repeating-linear-gradient(135deg, transparent 0 22px, rgba(255, 255, 255, 0.055) 22px 23px);
    content: "";
    pointer-events: none;
}

.about-membership-copy {
    max-width: 760px;
}

.about-membership-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    margin-bottom: 0.9rem;
    color: #f2c766;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.about-membership-kicker::before {
    width: 2rem;
    height: 2px;
    background: currentColor;
    content: "";
}

.about-membership-copy h2 {
    max-width: 720px;
    margin: 0 0 0.85rem;
    color: #ffffff;
    font-size: clamp(1.8rem, 3.2vw, 3rem);
    font-weight: 800;
    line-height: 1.15;
}

.about-membership-copy p {
    max-width: 640px;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.65;
}

.about-membership-action {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
}

.about-membership-emblem {
    display: grid;
    width: 64px;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.32);
    color: #f2c766;
    font-size: 1.8rem;
}

.about-membership-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 52px;
    padding: 0.85rem 1.2rem;
    border: 0;
    border-radius: 4px;
    background: #f2c766;
    color: #18383a;
    font-weight: 800;
    transition: background-color 160ms ease, transform 160ms ease;
}

.about-membership-button:hover,
.about-membership-button:focus-visible {
    background: #ffda83;
    color: #18383a;
    transform: translateY(-2px);
}

.about-membership-button:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

@media (max-width: 767.98px) {
    .about-membership-banner {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.75rem;
        padding-inline: 1.5rem;
    }

    .about-membership-action {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 1rem;
    }

    .about-membership-emblem {
        width: 52px;
    }
}

@media (max-width: 1200px) {
    .detail-axe-actions-grid,
    .detail-axe-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .detail-axe-hero {
        padding: 1.75rem;
    }

    .detail-axe-actions-grid,
    .detail-axe-metrics-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .detail-axe-hero-title {
        font-size: clamp(2rem, 6vw, 2.8rem);
    }

    .detail-axe-hero-overlay {
        padding: 1.25rem;
    }
}

.detail-axe-hero-metrics {
    text-align: center;
    padding: 1rem 1.2rem;
    border-radius: 1rem;
    background: rgba(13, 110, 253, 0.05);
        min-width: 190px;
}

    .detail-axe-hero-metrics-row {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .detail-axe-hero-metrics-row .detail-axe-hero-metrics {
        flex: 1 1 120px;
        min-width: 0;
    }

.detail-axe-hero-metrics span {
    display: block;
}

.detail-axe-hero-metrics .fs-3 {
    color: #0d6efd;
}

.detail-axe-mission,
.detail-axe-actions,
.detail-axe-metrics,
.detail-axe-cta {
    background: #f8fbff;
}

.detail-axe-mission,
.detail-axe-cta {
    border-radius: var(--card-radius);
}

.detail-axe-mission {
    border: 1px solid rgba(13, 110, 253, 0.08);
}

.detail-axe-quote {
    border: 1px solid rgba(13, 110, 253, 0.12);
    background: #ffffff;
}

.detail-axe-actions-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.detail-axe-action-card {
    background: #ffffff;
    border-radius: 1.25rem;
    padding: 2rem;
    box-shadow: 0 20px 35px rgba(13, 110, 253, 0.08);
    transition: transform .25s ease, box-shadow .25s ease;
}

.detail-axe-action-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 28px 45px rgba(13, 110, 253, 0.12);
}

.detail-axe-action-icon {
    width: 3.5rem;
    height: 3.5rem;
    display: grid;
    place-items: center;
    border-radius: 1rem;
    background: rgba(13, 110, 253, 0.1);
    color: #0d6efd;
    font-size: 1.5rem;
}

.detail-axe-action-title {
    font-size: 1.15rem;
    font-weight: 700;
}

.detail-axe-action-text {
    color: #5f6f82;
    line-height: 1.8;
}

.detail-axe-metrics-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.detail-axe-metric-card {
    background: #ffffff;
    border-radius: 1.25rem;
    padding: 2rem;
    box-shadow: 0 20px 35px rgba(13, 110, 253, 0.08);
    text-align: center;
}

.detail-axe-metric-icon {
    width: 3.5rem;
    height: 3.5rem;
    display: grid;
    place-items: center;
    margin: 0 auto 1rem;
    border-radius: 1rem;
    background: rgba(255, 193, 7, 0.12);
    color: #ffb700;
    font-size: 1.4rem;
}

.detail-axe-metric-title {
    color: #6c757d;
    font-size: 0.95rem;
    margin-bottom: 0.75rem;
}

.detail-axe-metric-value {
    font-size: 2rem;
    font-weight: 700;
    color: #0d6efd;
}

.detail-axe-cta {
    background: linear-gradient(135deg, #0d6efd 0%, #1a81ff 100%);
    border-radius: 1.5rem;
    color: #ffffff;
}

.detail-axe-cta .section-title {
    color: #ffffff;
}

.detail-axe-cta p {
    color: rgba(255, 255, 255, 0.85);
}

.detail-axe-cta .btn-light {
    color: #0d6efd;
}

.detail-axe-cta .btn-outline-light {
    border-color: rgba(255, 255, 255, 0.85);
}

@media (max-width: 1200px) {
    .detail-axe-hero-grid,
    .detail-axe-actions-grid,
    .detail-axe-metrics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .detail-axe-hero-body {
        display: block;
    }

    .detail-axe-hero-grid {
        grid-template-columns: 1fr;
    }

    .detail-axe-hero-figure {
        width: 100%;
        margin: 0 0 1.5rem 0;
        float: none;
        shape-outside: none;
        clip-path: none;
    }

    .detail-axe-actions-grid,
    .detail-axe-metrics-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .detail-axe-hero-title {
        font-size: clamp(2rem, 5vw, 2.8rem);
    }

    .detail-axe-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .detail-axe-hero-metrics {
        min-width: auto;
        width: 100%;
        margin-left: 0;
    }
}

@media (max-width: 767.98px){
    .axe-hero{ border-radius: 0.5rem; }
    .axe-hero-decor{ width: 60px; }
}


/* Inline floating image that allows text to wrap around it using CSS Shapes */
/* Legacy float rules removed to avoid conflict with the new hero layout */

@media (max-width: 768px) {
    .axe-header-float {
        float: none;
        display: block;
        width: 100%;
        height: auto;
        margin: 0 0 1rem 0;
        shape-outside: none;
        clip-path: none;
    }
    .axe-header .page-title {
        margin-top: 0.5rem;
    }
}

html{
    scroll-behavior:smooth;
    scroll-padding-top: 120px;
}

body{
    font-family:"Inter", "Segoe UI", Roboto, Arial, sans-serif;
    background:#fff;
    color:#223148;
    line-height:1.6;
    padding-top:95px;
}

img{
    max-width:100%;
}

.section-surface{
    background:linear-gradient(180deg, #f8fbff 0%, #f5f7fb 100%);
}

.section-kicker{
    display:inline-flex;
    align-items:center;
    gap:0.45rem;
    font-size:0.82rem;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:#0d6efd;
    margin-bottom:0.85rem;
}

.section-title{
    font-size:clamp(1.7rem, 2.1vw, 2.35rem);
    font-weight:700;
    line-height:1.2;
    color:#0a2540;
    margin-bottom:0.75rem;
}

.card-hover{
    transition:transform .25s ease, box-shadow .25s ease;
}

.card-hover:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 40px rgba(10, 37, 64, .12) !important;
}

.formation-card .card-img-top,
.projet-card .card-img-top {
    max-height: 260px;
    object-fit: cover;
}

.formation-card {
    overflow: hidden;
    border: 0;
    box-shadow: 0 14px 36px rgba(10, 37, 64, .08);
    position: relative;
}

.formation-card-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    background: #fff;
    padding: 0;
}

.formation-card-media {
    position: relative;
    overflow: hidden;
    background: #fff;
    width: 100%;
    aspect-ratio: 1200 / 800;
    min-height: 220px;
    max-height: 260px;
}

.formation-badges-overlay {
    position: static;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
    z-index: auto;
    margin-top: 0;
}

.formation-badges-overlay .badge {
    backdrop-filter: none;
    box-shadow: none;
    border: 1px solid rgba(13, 110, 253, 0.1);
}

.formation-card .card-body {
    padding: 1.5rem 1.25rem 1.25rem;
}

.formation-card .card-img-top {
    width: 100%;
    height: auto;
    aspect-ratio: 1200 / 800;
    object-fit: contain;
    object-position: center;
    border-radius: 0;
    box-shadow: none;
    flex-shrink: 0;
    display: block;
    background: #fff;
    padding: 0;
}

.formation-card-media {
    width: 100%;
    overflow: hidden;
    background: #fff;
    aspect-ratio: 1200 / 800;
    min-height: 220px;
    max-height: 260px;
}

.formation-card-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    background: #fff;
    padding: 0;
}

.formation-media-row {
    display:flex;
    align-items:flex-start;
    gap:0.9rem;
    margin-bottom:0.9rem;
}

.formation-meta-pill-group {
    display:flex;
    flex-direction:column;
    gap:0.45rem;
    align-items:flex-start;
}

.formation-card .badge {
    font-size: 0.72rem;
    padding: 0.42rem 0.6rem;
}

.formation-card h5,
.formation-card p,
.formation-card .mt-auto {
    overflow: hidden;
}

.projet-img,
.formation-detail-img {
    max-height: 420px;
    object-fit: cover;
    width: 100%;
}

.projet-card .card-img-top {
    max-height: 240px;
    object-fit: cover;
}

.projet-img,
.formation-detail-img {
    max-height: 420px;
    object-fit: cover;
    width: 100%;
}

.hero-modern{
    position:relative;
    min-height:72vh;
    overflow:hidden;
    display:flex;
    align-items:center;
    background:linear-gradient(135deg, #06182b 0%, #0a2540 45%, #153a5f 100%);
    isolation:isolate;
}

.hero-modern::before,
.hero-modern::after{
    content:"";
    position:absolute;
    border-radius:50%;
    filter:blur(20px);
    opacity:.35;
    pointer-events:none;
    z-index:0;
}

.hero-modern::before{
    width:24rem;
    height:24rem;
    background:#4f8bff;
    top:-8rem;
    right:-6rem;
}

.hero-modern::after{
    width:18rem;
    height:18rem;
    background:#ffc000;
    bottom:-7rem;
    left:-4rem;
}

.hero-background-image{
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
    transform:none;
    /* Pleine luminosité pour laisser l'image claire
    filter:none;*/
}

.hero-overlay{
    position:absolute;
    inset:0;
    /* Overlay rendu transparent pour afficher l'image à 100% */
    background: transparent;
}

/* Positionnement du bouton hero en bas à droite */
.hero-modern .hero-cta{
    position:fixed;
    right:0;
    bottom:1.5rem;
    z-index:9999;
}

@media (max-width: 576px) {
    .hero-modern .hero-cta{
        right:0.5rem;
        bottom:1rem;
    }
}

.hero-modern .container{
    position:relative;
    z-index:2;
    padding-top:6.5rem;
    padding-bottom:5.5rem;
    max-width:1200px;
}

.hero-title{
    font-family:'Space Grotesk', 'Manrope', 'Inter', 'Segoe UI', sans-serif;
    font-size:clamp(2.55rem, 3.6vw, 4.2rem);
    font-weight:700;
    letter-spacing:-0.02em;
    margin-bottom:1.25rem;
    color:#ffffff;
    line-height:1.03;
    text-shadow:0 8px 30px rgba(0,0,0,.3);
    max-width:780px;
}

.hero-modern h1,
.hero-title{
    color:#ffffff;
}

.hero-kicker{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.5rem;
    padding:0.7rem 1.05rem;
    border-radius:999px;
    font-size:0.88rem;
    font-weight:700;
    letter-spacing:0.18em;
    text-transform:uppercase;
    background:rgba(255,255,255,0.14);
    border:1px solid rgba(255,255,255,0.22);
    color:rgba(255,255,255,0.97);
    backdrop-filter:blur(8px);
    box-shadow:0 10px 28px rgba(0,0,0,.16);
    margin-bottom:1rem;
}

.hero-lead{
    font-size:1.24rem;
    color:#ffd86b;
    max-width:700px;
    line-height:1.72;
    background:rgba(255,255,255,0.12);
    padding:1rem 1.15rem;
    border-radius:0.95rem;
    display:inline-block;
    border:1px solid rgba(255,255,255,0.16);
    backdrop-filter:blur(10px);
    box-shadow:0 12px 30px rgba(0,0,0,.16);
}

.hero-btn-row{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    margin-bottom:1.75rem;
    align-items:center;
}

.hero-btn-row .btn{
    transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.hero-btn-row .btn:hover,
.hero-btn-row .btn:focus{
    transform:translateY(-2px);
}

.hero-features{
    list-style:none;
    padding:0;
    margin:1.25rem 0 0;
    display:flex;
    flex-wrap:wrap;
    gap:0.9rem;
}

.hero-features li{
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    padding:0.82rem 1rem;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.18);
    border-radius:0.9rem;
    color:#f8f9fb;
    font-weight:600;
    backdrop-filter:blur(10px);
    box-shadow:0 10px 25px rgba(0,0,0,.12);
}

.hero-features li:hover{
    transform:translateY(-2px);
    background:rgba(255,255,255,.16);
}

.hero-features li i{
    color:#4f8bff;
    font-size:1rem;
}

@media (max-width: 767px) {
    .hero-modern .container{
        padding-top:4.25rem;
        padding-bottom:4.25rem;
    }

    .formation-card-img {
        height: 180px;
    }

    .formation-badges-overlay {
        bottom: 8px;
        left: 8px;
        right: 8px;
    }

    .formation-badges-overlay .badge {
        font-size: 0.65rem;
    }

    .hero-title{
        max-width:100%;
    }

    .hero-lead{
        font-size:1.08rem;
    }

    .hero-topbar{
        justify-content:center;
    }

    .hero-cta-group{
        justify-content:center;
        width:100%;
    }

    .hero-btn-row{
        justify-content:center;
    }

    .hero-features{
        justify-content:center;
    }
}

.btn-primary{
    background:#4f8bff;
    border-color:#4f8bff;
}

.btn-primary:hover,
.btn-primary:focus{
    background:#3b72e6;
    border-color:#3b72e6;
}

.btn-outline-light{
    color:#fff;
    border-color:rgba(255,255,255,.8);
}

.btn-outline-light:hover,
.btn-outline-light:focus{
    color:#0a2540;
    background:rgba(255,255,255,.95);
    border-color:rgba(255,255,255,.95);
}

.stats-section{
    margin-top:-2rem;
    position:relative;
    z-index:3;
}

.stat-card{
    background:#fff;
    border-radius:1.1rem;
    padding:1.5rem 1rem;
    box-shadow:0 12px 30px rgba(10, 37, 64, .08);
    border:1px solid #eef3f8;
}

.stat-number{
    font-size:2rem;
    font-weight:800;
    color:#0d6efd;
    margin-bottom:.3rem;
}

.feature-pill{
    display:flex;
    align-items:center;
    padding:.8rem 1rem;
    border:1px solid #e7edf5;
    border-radius:999px;
    background:#f8fbff;
    color:#0a2540;
    font-weight:600;
}

.icon-box{
    width:3.1rem;
    height:3.1rem;
    border-radius:999px;
    display:grid;
    place-items:center;
    margin:0 auto;
    background:linear-gradient(135deg, #0d6efd, #4ea3ff);
    color:#fff;
    font-size:1.3rem;
}

.benefit-item{
    display:flex;
    gap:.85rem;
    align-items:flex-start;
    padding:.9rem 0;
}

.benefit-item i{
    font-size:1.2rem;
    color:#0d6efd;
    margin-top:.2rem;
}

.impact-card{
    background:#fff;
    border-radius:1rem;
    box-shadow:0 12px 28px rgba(10, 37, 64, .07);
}

.testimonial-card{
    border-radius:1.2rem;
}

.partner-marquee{
    overflow:hidden;
    position:relative;
    mask-image:linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
    -webkit-mask-image:linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
}

.partner-track{
    display:flex;
    align-items:center;
    gap:1rem;
    width:max-content;
    animation:partner-scroll 20s linear infinite;
}

.partner-card{
    background:#fff;
    border:1px solid #edf2f7;
    border-radius:1rem;
    box-shadow:0 10px 24px rgba(10,37,64,.05);
    min-width:180px;
    height:110px;
}

.partner-card img{
    max-height:80px;
    width:auto;
    object-fit:contain;
    display:block;
}

@keyframes partner-scroll{
    from {
        transform: translateX(-50%);
    }
    to {
        transform: translateX(0);
    }
}

.news-carousel{
    position:relative;
    padding:0 4rem;
}

.news-carousel .carousel-control-prev,
.news-carousel .carousel-control-next{
    width:3rem;
    height:3rem;
    top:50%;
    transform:translateY(-50%);
    background:#fff;
    border-radius:50%;
    opacity:1;
    box-shadow:0 8px 24px rgba(10,37,64,.12);
}

.news-carousel .carousel-control-prev{ left:0; }
.news-carousel .carousel-control-next{ right:0; }

.news-carousel .carousel-control-prev:hover,
.news-carousel .carousel-control-next:hover{
    background:#f3f7fc;
    box-shadow:0 10px 28px rgba(10,37,64,.18);
}

.news-carousel .carousel-control-prev-icon,
.news-carousel .carousel-control-next-icon{
    filter:brightness(0) saturate(100%) invert(20%) sepia(30%) saturate(1000%) hue-rotate(180deg) brightness(95%) contrast(90%);
}

.news-card-img{
    height:220px;
    object-fit:cover;
}

.news-list-card{
    overflow:hidden;
    border:0;
    box-shadow:0 14px 36px rgba(10, 37, 64, .08);
    transition:transform .25s ease, box-shadow .25s ease;
}

.news-list-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 40px rgba(10, 37, 64, .12) !important;
}

.news-list-img{
    width:100%;
    height:220px;
    object-fit:cover;
    display:block;
}

@media (max-width: 767px){
    .news-carousel{
        padding:0 3.5rem;
    }

    .news-carousel .carousel-control-prev,
    .news-carousel .carousel-control-next{
        width:2.5rem;
        height:2.5rem;
    }
}

.gallery-item{
    display:block;
    overflow:hidden;
    border-radius:1rem;
    box-shadow:0 10px 22px rgba(10,37,64,.08);
}

.gallery-item img{
    width:100%;
    height:220px;
    object-fit:cover;
    transition:transform .3s ease;
}

.gallery-item:hover img{
    transform:scale(1.05);
}

.contact-card{
    background:#fff;
    border-radius:1.15rem;
    border:1px solid #edf2f7;
    box-shadow:0 12px 28px rgba(10,37,64,.06);
}

.social-link{
    display:grid;
    place-items:center;
    width:2.8rem;
    height:2.8rem;
    border-radius:999px;
    background:#0d6efd;
    color:#fff;
    text-decoration:none;
    transition:transform .2s ease;
}

.social-link:hover{
    color:#fff;
    transform:translateY(-2px);
}

.accordion-button:not(.collapsed){
    background:#f4f8ff;
    color:#0a2540;
}

.accordion-button:focus{ box-shadow:none; }

@media (max-width: 992px) {
    .hero-modern{ min-height:auto; }
    .hero-modern .container{ padding-top:5rem; padding-bottom:4rem; }
    .stats-section{ margin-top:0; }
}

@media (max-width: 768px) {
    .hero-modern h1{ font-size:2.25rem; }
    .hero-lead{ font-size:1rem; }
    .gallery-item img{ height:180px; }
}

section[id] {
    scroll-margin-top: 120px;
    position: relative;
}

section[id]::before {
    content: "";
    display: block;
    height: 120px;
    margin-top: -120px;
    visibility: hidden;
}

/* =========================
   NAVBAR
========================= */
#mainNavbar{
    background:rgba(255,255,255,0.98);
    backdrop-filter:blur(16px);
    transition:all .3s ease;
    border-bottom:1px solid rgba(0,0,0,.07);
}

#mainNavbar.scrolled{
    padding-top:6px !important;
    padding-bottom:6px !important;
    box-shadow:0 14px 35px rgba(0,0,0,.14);
    background:rgba(255,255,255,1);
}

.navbar-brand img{
    transition:.3s ease;
}

.navbar-brand:hover img{
    transform:scale(1.08);
}

.navbar-nav .nav-link{
    padding:12px 16px !important;
    border-radius:12px;
}

.navbar-nav .nav-link.active,
.navbar-nav .nav-link:hover{
    color:#0082f2 !important;
    background:rgba(0,130,242,.08);
}

.navbar-toggler{
    border:1px solid rgba(0,0,0,.1);
}

.navbar-brand:hover img{
    transform:scale(1.05);
}

.navbar-brand span{
    font-size:13px;
    line-height:1.2;
}

.nav-link{
    position:relative;
    font-weight:500;
    color:#222 !important;
    padding:10px 14px !important;
    transition:.3s ease;
    border-radius:8px;
}

.nav-link:hover,
.nav-link.active{
    color:#ffc000 !important;
    background:rgba(255,192,0,.08);
}

.nav-link::after{
    content:"";
    position:absolute;
    left:14px;
    bottom:6px;
    width:0%;
    height:2px;
    background:#ffc000;
    transition:.3s ease;
}

.nav-link:hover::after,
.nav-link.active::after{
    width:calc(100% - 28px);
}

.navbar-toggler{
    border:none;
    box-shadow:none !important;
}

.navbar-socials{
    margin-left:.25rem;
}

.navbar-social-link{
    display:grid;
    place-items:center;
    width:2.2rem;
    height:2.2rem;
    border-radius:999px;
    background:#0a2540;
    color:#fff;
    text-decoration:none;
    transition:.2s ease;
}

.navbar-social-link:hover{
    color:#fff;
    background:#0082ff;
    transform:translateY(-2px);
}

.btn-isf-cta{
    background:#ffc000;
    color:#000;
    border:none;
    transition:.3s ease;
}

.btn-isf-cta:hover{
    background:#e6ac00;
    color:#000;
}

/* =========================
   TITRES
========================= */
h1,h2,h3,h4,h5{
    color:#0a2a43;
}

.titre2{
    position:relative;
    display:inline-block;
    padding-bottom:10px;
}

.titre2::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
    width:80px;
    height:3px;
    background:linear-gradient(90deg,#0082f2,#ffc000);
    border-radius:10px;
}

/* =========================
   HERO SECTION
========================= */
.hero-section{
    position:relative;
    min-height:100vh;
    height:100vh;
    overflow:hidden;
}

.hero-section .carousel-inner,
.hero-section .carousel-item {
    height:100%;
}

.hero-section .carousel-item {
    position:relative;
}

.hero-section .container {
    position:relative;
    z-index:3;
}

.hero-background{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    background-size:cover;
    background-position:center center;
    z-index:1;
}

/*.hero-overlay{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    background:linear-gradient(180deg, rgba(5,10,23,0.34) 0%, rgba(5,10,23,0.18) 40%, rgba(5,10,23,0.54) 100%);
    z-index:2;
}*/

.hero-content{
    position:relative;
    z-index:4;
    min-height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:120px 0 80px;
}

.hero-copy{
    max-width:760px;
    margin:auto;
    padding:1.25rem 1.5rem;
    border-radius:1.25rem;
    background:rgba(10, 18, 32, 0.28);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    box-shadow:0 10px 30px rgba(0,0,0,0.08);
    font-family:"Inter", "Segoe UI", Roboto, Arial, sans-serif;
}

.hero-section .carousel-item .hero-copy,
.hero-section .carousel-item .hero-copy p,
.hero-section .carousel-item .hero-copy .hero-text{
    font-family:"Inter", "Segoe UI", Roboto, Arial, sans-serif;
}

.hero-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#0082ff;
    color:#ffffff;
    border:1px solid rgba(0, 132, 255, 0.566);
    padding:0.65rem 1rem;
    border-radius:999px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    font-size:.82rem;
    margin-bottom:1.5rem;
}

.hero-section h1,
.hero-section h2 {
    font-family:'Space Grotesk', 'Manrope', 'Inter', 'Segoe UI', sans-serif;
    font-size:clamp(2.3rem, 3.3vw, 3.8rem);
    font-weight:800;
    color:#ffffff;
    line-height:1.02;
    margin-bottom:1.25rem;
    letter-spacing:-0.02em;
}

.hero-section h1 {
    max-width:680px;
    margin-left:auto;
    margin-right:auto;
}

.hero-text {
    max-width:680px;
    margin:auto;
    font-family:"Inter", "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size:1.2rem !important;
    font-weight:500 !important;
    color:#ffffff;
    margin-bottom:2rem;
    line-height:1.7 !important;
    letter-spacing:0.01em;
}

.btn-get-started{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0.95rem 2rem;
    border-radius:999px;
    border:1px solid rgba(255,255,255,0.85);
    background:rgba(255,255,255,0.12);
    color:#ffffff;
    text-transform:uppercase;
    letter-spacing:0.08em;
    font-weight:700;
    transition:background .25s ease, transform .25s ease, border-color .25s ease;
}

.btn-get-started:hover,
.btn-get-started:focus{
    background:rgba(255,255,255,0.22);
    border-color:rgba(255,255,255,1);
    transform:translateY(-1px);
}

.hero-btn-row{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:1rem;
}

@media (max-width: 992px) {
    .hero-content{
        padding:80px 0 60px;
        justify-content:center;
        text-align:center;
    }

    .hero-section h1,
    .hero-section h2 {
        font-size:2.8rem;
    }

    .hero-text{
        font-size:1rem;
    }
}

@media (max-width: 992px) {
    .hero-section{
        min-height:calc(80vh - 95px);
    }

    .hero-section h1{
        font-size:2.8rem;
    }

    .hero-text{
        font-size:1rem;
    }
}

/* =========================
   BOUTONS
========================= */
.btn-primary{
    background:#0082f2;
    border:none;
    transition:.3s ease;
}

.btn-primary:hover{
    background:#0066c2;
}

.btn-outline-light{
    transition:.3s ease;
}

.btn-outline-light:hover{
    background:#ffc000;
    color:#0a2a43;
    border-color:#ffc000;
}

/* =====================================================
   HERO CAROUSEL
===================================================== */
#heroCarousel,
#heroCarousel .carousel-inner,
#heroCarousel .carousel-item {
    height: 100%;
}

#heroCarousel .carousel-item {
    position: relative;
}

#heroCarousel .carousel-indicators {
    bottom: 25px;
    z-index: 4;
}

#heroCarousel .carousel-control-prev,
#heroCarousel .carousel-control-next {
    width: 55px;
    height: 55px;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
    opacity: 1;
    z-index: 4;
    background: #0d6efd;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s ease, background .25s ease;
}

#heroCarousel .carousel-control-prev:hover,
#heroCarousel .carousel-control-next:hover {
    background: #0b5ed7;
    transform: translateY(-50%) scale(1.05);
}

#heroCarousel .carousel-control-prev-icon,
#heroCarousel .carousel-control-next-icon {
    filter: brightness(0) invert(1);
    width: 20px;
    height: 20px;
    background-size: 100% 100%;
}

#isfCarousel .carousel-control-prev,
#isfCarousel .carousel-control-next{
    width:80px;
    opacity:1;
    z-index:10;
}

#isfCarousel .carousel-control-prev{
    left:0;
}

#isfCarousel .carousel-control-next{
    right:0;
}

#isfCarousel .custom-carousel-btn{
    width:55px;
    height:55px;
    background:rgba(0,130,242,.9);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.3s ease;
}

#isfCarousel .custom-carousel-btn:hover{
    background:#0082f2;
    transform:scale(1.08);
}

#isfCarousel .carousel-control-prev-icon,
#isfCarousel .carousel-control-next-icon{
    width:22px;
    height:22px;
    filter:brightness(0) invert(1);
}

/* =========================
   PRESENTATION
========================= */
.presentation{
    max-width:1100px;
    margin:auto;
    background:#fff;
    padding:40px;
    border-radius:12px;
    box-shadow:0 10px 30px rgba(0,0,0,.05);
}

/* =========================
   CARDS
========================= */
.card{
    border-radius:12px;
    transition:.3s ease;
    overflow:hidden;
}

.card:hover{
    transform:translateY(-5px);
    box-shadow:0 15px 30px rgba(0,0,0,.1);
}

/* =========================
   A PROPOS
========================= */
.a_propos .card img{
    object-fit:cover;
}

/* Ajustements pour la section "À propos" */
.a_propos p{
    font-size:1.125rem;
}
.a_propos img{
    border-radius:0 !important;
}

/* =========================
   AXES
========================= */
.axes .card img{
    margin-bottom:10px;
}

/* =========================
   FEATURE CARDS
========================= */
.feature-card{
    background:linear-gradient(135deg, rgba(0,130,242,.08), rgba(255,192,0,.08));
    border:1px solid rgba(0,0,0,.04);
    transition:transform .3s ease, box-shadow .3s ease;
}

.feature-card:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 35px rgba(0,0,0,.1);
}

.feature-icon{
    font-size:2.5rem;
    color:#0082f2;
}

.action-grid .card{
    min-height:240px;
}

.action-card{
    position:relative;
    overflow:hidden;
}

.action-card .icon-circle{
    width:64px;
    height:64px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:18px;
    background:rgba(0,130,242,.12);
    color:#0082f2;
    font-size:1.8rem;
}

.action-card h5{
    margin-top:1rem;
}

.action-card a{
    color:#0082f2;
}

.action-card a:hover{
    text-decoration:underline;
}

/* =========================
   FORMATIONS
========================= */
.formation-card{
    overflow:hidden;
    transition:transform .3s ease, box-shadow .3s ease;
    position: relative;
}

.formation-card:hover{
    transform:translateY(-6px);
    box-shadow:0 25px 45px rgba(0,0,0,.12);
}

.formation-card-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}

.formation-card img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

    .detail-axe-section-card {
        overflow: hidden;
        border-radius: 1rem;
    }

    .detail-axe-section-card .card-img-top {
        height: 210px;
        object-fit: cover;
    }

.formation-card .badge{
    background:rgba(255,192,0,.15);
    color:#000;
    font-weight:600;
}

.atouts-banner{
    background:linear-gradient(180deg, #fff9e8 0%, #fffdf7 100%);
}

.atouts-banner-inner{
    background:rgba(255,255,255,0.96);
    border:1px solid rgba(255,193,0,0.18);
}

.atout-card{
    transition:transform .3s ease, box-shadow .3s ease;
}

.atout-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 34px rgba(0,0,0,.08);
}

.atout-card .feature-icon{
    font-size:2.4rem;
    color:#ffb700;
}

.atouts-banner .feature-icon{
    color:#ffb700;
}

/* =========================
   SECTION ANIMATION
========================= */
[data-animate]{
    opacity:0;
    transform:translateY(25px);
    transition:opacity .8s ease, transform .8s ease;
}

[data-animate].visible{
    opacity:1;
    transform:translateY(0);
}

/* =====================================================
   ACTUALITÉS
===================================================== */
.actualites,
#actuCarousel,
#actuCarousel .carousel-inner{
    overflow:visible;
}

.actualites .actu-card img{
    height:220px;
    object-fit:cover;
    border-radius:12px 12px 0 0;
}

#actuCarousel{
    position:relative;
}

/* Flèches */
#actuCarousel .carousel-control-prev,
#actuCarousel .carousel-control-next{
    width:60px;
    opacity:1;
    z-index:20;
}

#actuCarousel .carousel-control-prev{
    left:-70px;
}

#actuCarousel .carousel-control-next{
    right:-70px;
}

/* Boutons jaunes */
#actuCarousel .custom-carousel-btn{
    width:55px;
    height:55px;
    background:rgba(0,130,242,.9);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.3s ease;
    box-shadow:0 6px 20px rgba(0,0,0,.15);
}

#actuCarousel .custom-carousel-btn:hover{
    background:#0082f2;
    transform:scale(1.08);
}

#actuCarousel .carousel-control-prev-icon,
#actuCarousel .carousel-control-next-icon{
    width:22px;
    height:22px;
    filter:brightness(0);
}

#actuCarousel .custom-carousel-btn:hover .carousel-control-prev-icon,
#actuCarousel .custom-carousel-btn:hover .carousel-control-next-icon{
    filter:brightness(0) invert(1);
}

/* =========================
   PROJETS
========================= */
.projet-img{
    width:100%;
    height:50vh;
    max-height:50vh;
    object-fit:cover;
    display:block;
}

/* =========================
   ACTIVITÉS
========================= */
#id_activites{
    background:#0a2a43;
    color:#fff;
    padding:60px 0;
}

#id_activites h2,
#id_activites h4{
    color:#fff;
}

#id_activites img{
    min-height:400px;
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:0 !important;
}

#id_activites .row,
#id_activites .col-lg-6,
#id_activites .bg-dark{
    border-radius:0 !important;
}

.btn-outline-primary{
    color:#0082f2;
    border-color:#0082f2;
    transition:.3s ease;
}

.btn-outline-primary:hover{
    background:#0082f2;
    color:#fff;
}

.card,.feature-card,.formation-card{
    border-radius:18px;
}

/* =========================
   NEWS
========================= */
.news{
    font-size:1.2rem;
    font-weight:500;
    color:#555;
}

/* =========================
   TABLE FORMATIONS
========================= */
.table{
    background:#fff;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 5px 20px rgba(0,0,0,.05);
}

.table th{
    vertical-align:middle;
}

.table td{
    vertical-align:middle;
}

/* =========================
   CONTACT
========================= */
#id_contact .card{
    border-radius:15px;
}

/* =========================
   FOOTER
========================= */
.site-footer{
    background:#0a2a43;
    color:#e4ebff;
    padding:4rem 0 2rem;
}

.site-footer .footer-title{
    color:#fff;
    margin-bottom:1.4rem;
    font-size:1.1rem;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.site-footer .footer-text,
.site-footer .footer-contact li,
.site-footer .footer-links a{
    color:rgba(228,235,255,.82);
}

.site-footer .footer-links a{
    text-decoration:none;
    transition:.2s ease;
}

.site-footer .footer-links a:hover{
    color:#fff;
}

.site-footer .footer-contact i{
    font-size:1rem;
    margin-right:.6rem;
    color:#ffc000;
}

.site-footer .footer-bottom{
    border-top:1px solid rgba(255,255,255,.08);
    margin-top:2rem;
    padding-top:1.5rem;
    color:rgba(228,235,255,.68);
}

.site-footer .social-list{
    display:flex;
    gap:1rem;
    list-style:none;
    padding:0;
    margin:0;
}

.site-footer .social-list a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:rgba(255,255,255,.1);
    color:#fff;
    transition:.2s ease;
}

.site-footer .social-list a:hover{
    background:#ffc000;
    color:#0a2a43;
}

#id_contact input,
#id_contact textarea{
    border-radius:8px;
    border:1px solid #ddd;
}

#id_contact input:focus,
#id_contact textarea:focus{
    border-color:#0082f2;
    box-shadow:0 0 5px rgba(0,130,242,.3);
}

/* =========================
   FOOTER
========================= */
.site-footer{
    background:#0a2a43;
    color:#fff;
}

.footer-title{
    color:#ffc000;
    font-weight:600;
    margin-bottom:1rem;
}

.footer-text{
    color:rgba(255,255,255,.8);
    font-size:.95rem;
}

.footer-links a,
.footer-contact{
    color:rgba(255,255,255,.85);
    text-decoration:none;
}

.footer-links li{
    margin-bottom:.5rem;
}

.footer-links a:hover{
    color:#ffc000;
}

.footer-bottom{
    border-top:1px solid rgba(255,255,255,.15);
    color:rgba(255,255,255,.7);
    font-size:.9rem;
}

/* =========================
   SECTIONS
========================= */
section{
    position:relative;
}

.container{
    position:relative;
}

/* =========================
   RESPONSIVE TABLETTE
========================= */
@media(max-width:992px){

    .navbar-collapse{
        margin-top:15px;
        background:#fff;
        padding:15px;
        border-radius:15px;
        box-shadow:0 10px 30px rgba(0,0,0,.08);
    }

    .nav-link{
        padding:12px !important;
    }

    #actuCarousel .carousel-control-prev{
        left:-20px;
    }

    #actuCarousel .carousel-control-next{
        right:-20px;
    }

    .hero-caption h1{
        font-size:2.5rem;
    }
}

/* =========================
   RESPONSIVE MOBILE
========================= */
@media(max-width:768px){

    .hero-img{
        height:70vh;
    }

    .hero-caption{
        bottom:15%;
    }

    .hero-caption h1{
        font-size:2rem;
    }

    .hero-caption p{
        font-size:1rem;
    }

    .presentation{
        padding:25px;
    }

    #actuCarousel .custom-carousel-btn{
        width:45px;
        height:45px;
    }

    #actuCarousel .carousel-control-prev{
        left:0;
    }

    #actuCarousel .carousel-control-next{
        right:0;
    }

    #id_activites img{
        min-height:250px;
    }
}

/* =========================
   PETITS MOBILES
========================= */
@media(max-width:576px){

    .hero-caption h1{
        font-size:1.7rem;
    }

    .hero-caption p{
        font-size:.95rem;
    }

    .hero-caption .btn{
        width:100%;
        margin-bottom:10px;
    }

    .presentation{
        padding:20px;
    }
}

/* =========================
   DETAIL AXE EDITORIAL
========================= */
.detail-axe-page {
    background: #ffffff;
    color: #182b3d;
    overflow: hidden;
}

.detail-axe-hero {
    min-height: 680px;
    margin: 0 calc(50% - 50vw);
    overflow: hidden;
    position: relative;
    border-radius: 0;
    background: #102b3d;
    border: 0;
    box-shadow: none;
}

.detail-axe-hero-media,
.detail-axe-hero-shade {
    position: absolute;
    inset: 0;
}

.detail-axe-hero-media {
    z-index: 0;
}

.detail-axe-hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.detail-axe-hero-shade {
    z-index: 1;
    background: linear-gradient(90deg, rgba(6, 26, 40, .88) 0%, rgba(6, 26, 40, .58) 43%, rgba(6, 26, 40, .12) 100%);
}

.detail-axe-hero-content {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 3rem));
    min-height: 680px;
    margin: 0 auto;
    padding: 2rem 0 5rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
}

.detail-axe-back {
    position: absolute;
    top: 2rem;
    left: 0;
    display: inline-flex;
    align-items: center;
    color: rgba(255, 255, 255, .82);
    font-size: .9rem;
    font-weight: 700;
    text-decoration: none;
}

.detail-axe-back:hover {
    color: #ffffff;
}

.detail-axe-hero-label,
.detail-axe-editorial-label {
    color: #0b8290;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .18em;
    line-height: 1.2;
    text-transform: uppercase;
}

.detail-axe-hero-label {
    color: #8fe1dc;
    margin-bottom: 1rem;
}

.detail-axe-hero-title {
    max-width: 820px;
    margin: 0 0 1.25rem;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 6.8rem);
    font-weight: 800;
    letter-spacing: 0;
    line-height: .96;
}

.detail-axe-hero-intro {
    max-width: 650px;
    margin: 0 0 2rem;
    color: rgba(255, 255, 255, .86);
    font-size: 1.08rem;
    line-height: 1.75;
}

.detail-axe-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.detail-axe-text-button,
.detail-axe-read-more {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    color: #0b8290;
    font-size: .88rem;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.detail-axe-text-button {
    color: #ffffff;
    border-bottom: 1px solid rgba(255, 255, 255, .65);
    padding-bottom: .45rem;
}

.detail-axe-text-button:hover,
.detail-axe-read-more:hover {
    color: #f7c948;
}

.detail-axe-text-button-light {
    color: rgba(255, 255, 255, .72);
    border-bottom-color: rgba(255, 255, 255, .3);
}

.detail-axe-introduction {
    padding: 1.5rem 1.5rem 0;
    background: #ffffff;
}

.detail-axe-introduction-inner {
    width: min(760px, 100%);
    margin: 0 auto;
}

.detail-axe-introduction-title {
    margin: .8rem 0 2rem;
    color: #132d40;
    font-size: clamp(2.3rem, 4vw, 4rem);
    font-weight: 800;
    line-height: 1.05;
}

.detail-axe-description {
    color: #536574;
    font-size: 1.05rem;
    line-height: 1.9;
    text-align: justify;
    text-justify: inter-word;
}

.detail-axe-description p {
    margin-bottom: 1.4rem;
}

.detail-axe-description ul,
.detail-axe-description ol {
    padding-left: 1.4rem;
}

.detail-axe-facts {
    display: flex;
    gap: 2.5rem;
    margin-top: 3rem;
    padding-top: 1.25rem;
    border-top: 1px solid #d9e2e5;
}

.detail-axe-facts div {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.detail-axe-facts strong {
    color: #132d40;
    font-size: 1.35rem;
}

.detail-axe-facts span {
    color: #74838d;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.detail-axe-editorial-section {
    width: min(1420px, calc(100% - 3rem));
    margin: 0 auto;
    padding: 0 0 8rem;
}

.detail-axe-sections {
    width: min(760px, calc(100% - 3rem));
}

.detail-axe-sections .detail-axe-editorial-grid {
    grid-template-columns: 1fr;
    row-gap: 0;
}

.detail-axe-sections .detail-axe-section-heading {
    align-items: flex-end;
}

.detail-axe-sections .detail-axe-editorial-item {
    padding-top: 1.25rem;
    border-top: 0;
}

.detail-axe-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2.75rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid #cfdadd;
}

.detail-axe-section-heading h2 {
    margin: .7rem 0 0;
    color: #132d40;
    font-size: clamp(2rem, 3.5vw, 3.7rem);
    font-weight: 800;
    line-height: 1;
}

.detail-axe-editorial-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 1.5rem;
    row-gap: 1.5rem;
}

.detail-axe-editorial-item {
    min-width: 0;
    padding-top: .9rem;
    border-top: 1px solid #9aaeb4;
}

.detail-axe-item-number {
    display: block;
    margin-bottom: 1rem;
    color: #0b8290;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.detail-axe-editorial-image {
    width: 100%;
    height: 280px;
    margin-bottom: 1.4rem;
    object-fit: cover;
    display: block;
    border-radius: 2px;
}

.detail-axe-editorial-body h3 {
    margin: 0 0 .8rem;
    color: #132d40;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;
}

.detail-axe-section-card .detail-axe-item-number {
    margin-bottom: .7rem;
}

.detail-axe-section-card .detail-axe-editorial-image {
    height: 340px;
    margin-top: 1.35rem;
}

.detail-axe-item-excerpt {
    color: #63747d;
    font-size: .95rem;
    line-height: 1.7;
    text-align: justify;
    text-justify: inter-word;
}

.detail-axe-item-excerpt p {
    margin-bottom: .75rem;
}

.detail-axe-projects {
    padding-bottom: 7rem;
}

.detail-axe-projects-heading {
    align-items: flex-end;
}

.detail-axe-projects-count {
    color: #74838d;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.detail-axe-project-card {
    border-radius: 0;
    box-shadow: none;
}

.detail-axe-project-card .detail-axe-editorial-image {
    height: 330px;
}

.detail-axe-read-more {
    margin-top: .8rem;
    background-color: #0082FF;
    border-color: #0082FF;
    color: #ffffff;
}

.detail-axe-read-more:hover,
.detail-axe-read-more:focus {
    background-color: #FFC000;
    border-color: #FFC000;
    color: #ffffff;
}

@media (max-width: 991.98px) {
    .detail-axe-hero,
    .detail-axe-hero-content {
        min-height: 590px;
    }

    .detail-axe-editorial-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .detail-axe-introduction {
        padding: 1rem 1.5rem 0;
    }
}

@media (max-width: 575.98px) {
    .detail-axe-hero,
    .detail-axe-hero-content {
        min-height: 560px;
    }

    .detail-axe-hero-content {
        width: min(100% - 2rem, 1180px);
        padding-bottom: 3.25rem;
    }

    .detail-axe-back {
        top: 1.35rem;
    }

    .detail-axe-hero-title {
        font-size: clamp(2.8rem, 15vw, 4.5rem);
    }

    .detail-axe-hero-intro {
        font-size: .98rem;
    }

    .detail-axe-introduction {
        padding: 1rem 1rem 0;
    }

    .detail-axe-facts {
        gap: 1.25rem;
        justify-content: space-between;
    }

    .detail-axe-editorial-section {
        width: calc(100% - 2rem);
        padding-bottom: 5rem;
    }

    .detail-axe-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .75rem;
    }

    .detail-axe-editorial-grid {
        grid-template-columns: 1fr;
        row-gap: 3.5rem;
    }

    .detail-axe-editorial-image,
    .detail-axe-project-card .detail-axe-editorial-image {
        height: 230px;
    }
}