@import url('https://fonts.googleapis.com/css2?family=Red+Hat+Text:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');
:root {

    /* Colors: */
    --unnamed-color-ffffff: #FFFFFF;
    --unnamed-color-f4f4f4: #F4F4F4;
    --unnamed-color-80caf3: #80CAF3;
    --unnamed-color-0046ad: #0046AD;
    --unnamed-color-240078: #240078; 
    --unnamed-color-51d2b6: #51D2B6;
    --unnamed-color-7000ff: #7000FF;
    --unnamed-color-000000: #000000;
    
    /* Font/text values */
    --unnamed-font-family-red-hat-text: Red Hat Text;
    --unnamed-font-style-normal: normal;
    --unnamed-font-weight-600: 600px;
    --unnamed-font-weight-normal: normal;
    --unnamed-font-size-17: 17px;
    --unnamed-font-size-20: 20px;
    --unnamed-font-size-34: 34px;
    --unnamed-font-size-40: 40px;
    --unnamed-character-spacing-0: 0px;
    --unnamed-line-spacing-25: 25px;
    --unnamed-line-spacing-26: 26px;
    --unnamed-line-spacing-43: 43px;
    --unnamed-line-spacing-48: 48px;
    }
    
    /* Character Styles */
    .-p-red-hat-text-—-16pt {
    font-family: var(--unnamed-font-family-red-hat-text);
    font-style: var(--unnamed-font-style-normal);
    font-weight: var(--unnamed-font-weight-normal);
    font-size: var(--unnamed-font-size-17);
    line-height: var(--unnamed-line-spacing-25);
    letter-spacing: var(--unnamed-character-spacing-0);
    color: var(--unnamed-color-000000);
    }
    .-h1-red-hat-text-—-40pt {
    font-family: var(--unnamed-font-family-red-hat-text);
    font-style: var(--unnamed-font-style-normal);
    font-weight: var(--unnamed-font-weight-normal);
    font-size: var(--unnamed-font-size-40);
    line-height: var(--unnamed-line-spacing-48);
    letter-spacing: var(--unnamed-character-spacing-0);
    color: var(--unnamed-color-80caf3);
    }
    .-h2-red-hat-text-—-34pt {
    font-family: var(--unnamed-font-family-red-hat-text);
    font-style: var(--unnamed-font-style-normal);
    font-weight: var(--unnamed-font-weight-normal);
    font-size: var(--unnamed-font-size-34);
    line-height: var(--unnamed-line-spacing-43);
    letter-spacing: var(--unnamed-character-spacing-0);
    color: var(--unnamed-color-0046ad);
    }
    .-h3-red-hat-text-—-20pt {
    font-family: var(--unnamed-font-family-red-hat-text);
    font-style: var(--unnamed-font-style-normal);
    font-weight: var(--unnamed-font-weight-600);
    font-size: var(--unnamed-font-size-20);
    line-height: var(--unnamed-line-spacing-26);
    letter-spacing: var(--unnamed-character-spacing-0);
    color: var(--unnamed-color-000000);
    }
*{
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    font-family: 'Red Hat Text', sans-serif;
    overflow-x: hidden;
}


main {
 

    background: url(./images/PTI-fond_Header_5.png);
    background-size: cover;
    background-position:  top center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    height: max-content;
    width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #ffffff;
    padding-bottom: 10rem;
}

/* Responsive pour le texte - Mobile First */
@media (max-width: 480px) {
    main .col-12 {
        flex-direction: column;
        padding: 0 15px;
    }
    
    main .col-5 {
        display: none;
    }
    
    main .col-7 {
        width: 100%;
        padding: 0 10px;
    }
    
    main h1 {
        font-size: 32px;
        line-height: 1.2;
        margin-bottom: 20px;
    }
    
    
}

@media (min-width: 481px) and (max-width: 768px) {
    main .col-12 {
        flex-direction: column;
        padding: 0 20px;
    }
    
    main .col-5 {
        display: none;
    }
    
    main .col-7 {
        width: 100%;
        padding: 0 15px;
    }
    
    main h1 {
        font-size: 36px;
        line-height: 1.2;
        margin-bottom: 25px;
    }
    
   
}

@media (min-width: 769px) and (max-width: 1024px) {
    main .col-12 {
        flex-direction: row;
        padding: 0 30px;
    }
    
    main .col-5 {
        width: 40%;
        display: block;
    }
    
    main .col-7 {
        width: 60%;
        text-align: left;
    }
    
    main h1 {
        font-size: 42px;
        line-height: 1.2;
        margin-bottom: 30px;
    }
    
   
}

@media (min-width: 1025px) {
    main .col-12 {
        flex-direction: row;
        padding: 0 50px;
    }
    
    main .col-5 {
        width: 40%;
        display: block;
    }
    
    main .col-7 {
        width: 60%;
        text-align: left;
    }
    
    main h1 {
        font-size: 55px;
        line-height: 1.2;
        margin-bottom: 40px;
    }
    
    main p {
        font-size: 17px;
        line-height: 1.6;
        padding: 0;
        margin: 0;
    }
}

main h1 {
    font-weight: 400;
    height: fit-content;
    color: #76d0d8;
    margin-top: 50px;
    overflow-y: hidden;
}

main p {
    padding: 50px 0px ;
}

/* Styles pour les cartes */
.cards-container {
    display: flex;
    justify-content: center;
    align-items: center;

    flex-wrap: wrap;
    height: max-content;
    align-items: flex-start;
    ;
    margin-left: auto;
    margin-right: auto;

}



.card {
    margin: 20px;
    background-color: #200973;
    padding: 20px 20px;
    padding-right: 0px !important;
    width: 200px;
    height: 150px;
    border-radius: 4px;
    overflow: visible;
    border-top: solid 8px #76cfb7;
    transition: all 0.4s ease;
    position: relative;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-self: flex-start;
    padding-bottom: 0 !important;
}

.card:hover {
    height: 250px;
    transform: none;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

.card:hover .img-hov {
    display: block;
}

.img-hov1 {
    display: none;
}

.card:hover .img-hov {
    display: none;
}
.card:hover .img-hov1 {
    display: block;
}


.card-icon {
    margin-bottom: 10px;

    display: flex;
    justify-content: start;
    
}

.card-icon img {
    width: 40px;
    height: 40px;
}

.card-content {
    overflow-y: hidden;
    flex: 1;
    background: none;
    display: flex;
    flex-direction: column;
    justify-content: start;
    height: 100px !important;
}

.card-text {
    overflow-y: hidden;
    color: #ffffff;
    font-family: 'Red Hat Text', sans-serif;
    font-size: 17px !important;
    font-weight: 500;
    line-height: 1.4;
    height: fit-content; 
    
}

.card-description {
    font-size: 17px !important;
    font-weight: 400;
    line-height: 20px;

    overflow-y: hidden;
    color: #76cfb7;
    height: 110px !important;
}

.card-title {
    line-height: 1.3;
    z-index: 1000;
    position: relative;
    margin-bottom: 0 !important;
    font-weight: normal;
    overflow-y: hidden;
    font-size: 17px !important;
}

.card-expanded-content {
    
    z-index: 1;
    position: relative;
    overflow-y: hidden;
    display: none;
    opacity: 0;
    transition: all 0.3s ease;
    margin-top: 0;
    padding: 0;
    border: none;
    justify-content: space-between;
    flex-direction: column;
    
}

/* Spécifique à la carte DPOManager: ajoute un espace pour éviter le chevauchement du titre */

.dpomanager-content {
    margin-top: -8px;
    padding-top: .5rem;
}


.card:hover .card-expanded-content {
    opacity: 1;
    display: flex;
    transform: translateY(0);
    display: flex;

}


.card:hover .dpomanager-content {
    opacity: 1;
    display: flex;
    background: none;
    height: 80%;
}

.card-cta {
    overflow-y: hidden;
    margin-top: 15px;
}

.cta-link {
    color: #ffffff;
    font-size: 10px !important;
    margin-bottom: 16px !important;
    font-weight: 700;
    display: flex;
    text-decoration: none;
    align-items: center;
    gap: 5px;
    text-align: left;
    justify-content: flex-start;
    position: relative; /* Needed for ::after to position absolutely */
    overflow: hidden;   /* Hide animated underline overflow */
    transition: color 0.3s ease;
}

.cta-link:hover {
    color: #FFFFFF;
}

.cta-link::after {
    content: '';
    position: absolute;
    bottom: 0; /* align underline with text base */
    left: 0;
    width: 0;
    height: 2px;
    background: #ffffff;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.cta-link:hover::after, 
.cta-link:focus::after {
    width: 75%;
}

.card-1 {
    margin-left: 0 !important;
}


@media (max-width: 1300px) {
    .card-1 {
        margin-left: 20px !important;
    }
}

@media (max-width: 768px) {
    .card-1 {
        margin-left: 20px !important;
    }
}

.arrow {
    font-size: 14px;
    transition: transform 0.3s ease;
}

.cta-link:hover .arrow {
    transform: translateX(3px);
}

/* Responsive Design */
@media (max-width: 1024px) and (min-width: 769px) {
    .cards-container {
        flex-wrap: wrap;
        justify-content: center;
        gap: 15px;
        height: auto;
        max-width: 800px;
        margin: 50px auto 0;
    }
    
    .card {
        width: calc(33.333% - 10px);
        max-width: 220px;
        margin-bottom: 20px;
        flex-shrink: 0;
    }
    
    .card:hover {
        height: 250px;
    }
}

@media (max-width: 900px) and (min-width: 769px) {
    .cards-container {
        max-width: 600px;
    }
    
    .card {
        width: calc(50% - 10px);
        max-width: 250px;
    }
}

@media (max-width: 768px) {
    .cards-container {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: flex-start;
        justify-content: flex-start;
        height: auto;
        gap: 15px;
        margin-top: 30px;
        padding: 0 15px;
    }
    
    .card {
        margin: 0 !important;
        width: calc(50% - 7.5px) !important;
        max-width: none !important;
        flex: 0 0 calc(50% - 7.5px) !important;
        height: auto;
        min-height: 250px;
        padding: 20px;
        padding-bottom: 0 !important;
    }
    
    .card.col-2 {
        width: calc(50% - 7.5px) !important;
        flex: 0 0 calc(50% - 7.5px) !important;
        max-width: none !important;
        min-height: 120px;
    }
    
    .card:hover {
        height: auto;
        min-height: 250px;
    }
    
    .card-expanded-content {
        display: flex !important;
        opacity: 1 !important;
        position: static;
        height: auto;
        margin-top: 15px;
        flex-direction: column;
        justify-content: space-between;
    }
    
    .card-content {
        height: auto;
        display: flex;
        flex-direction: column;
    }
    
    .card-description {
        font-size: 17px !important;        margin-bottom: 20px;
        color: #ffffff;
        height: 60px !important;
    }

    .dpomanager-content .card-description {
        margin-bottom: 10px;

    }
    
    
    .card-cta {
        margin-top: 15px;
    }
    
    .card-title {
        font-size: 17px !important;
        margin-bottom: 10px;
    }
}

@media (max-width: 657px) {
    .dpomanager-content {
        padding-top: 0px !important;
        margin-top: 0px !important;
    }
}

@media (max-width: 480px) {
    .cards-container {
        padding: 0 10px;
        gap: 10px;
        flex-direction: row !important;
        flex-wrap: wrap !important;
    }
    
    .card {
        width: calc(50% - 5px) !important;
        max-width: none !important;
        flex: 0 0 calc(50% - 5px) !important;
        padding: 15px;
        min-height: 120px;
        margin: 0 !important;
    }
    
    .card.col-2 {
        width: calc(50% - 5px) !important;
        flex: 0 0 calc(50% - 5px) !important;
        max-width: none !important;
    }
    
    .card-icon img {
        width: 35px;
        height: 35px;
    }
    
    .card-title {
        font-size: 16px;
        margin-bottom: 8px;
    }
    
    .card-description {
        font-size: 13px;
        margin-bottom: 15px;
        height: 40px !important;
    }

    .dpomanager-content {
        padding-top: 0px !important;
        margin-top: 0px !important;
    }

    .dpomanager-content .card-description {
        margin-bottom: 10px;

    }

    
    .card-cta {
        margin-top: 10px;
    }
}
.section-obligations {
    background: #0046AD;
    border-top: 1px solid #0046AD;
}

/* Image en premier plan (overlay), positionnée comme sur la maquette */
.section-obligations {
    position: relative;
    overflow: visible; /* permet aux éléments décoratifs de dépasser si besoin */
}

.rgpd-foreground {
    position: absolute;
    left: 20%;
    bottom: -10%; /* ajuste verticalement pour correspondre au repère ~690 sur la capture */
     /* léger décalage vers la droite comme sur l’exemple */
    z-index: 5; /* au-dessus du fond et du visuel de gauche */
    pointer-events: none; /* déco uniquement */
}

.rgpd-foreground-img {
    width: 100%; height: 100% !important; max-width: 720px;; /* taille de base desktop proche de la capture */
    height: auto;
}

.dpo-foreground {
    position: absolute;
    right: 5% !important;
    bottom: 0px !important;
    transform: translateX(-10%);
    z-index: 2;
    pointer-events: none;
}
.dpo-foreground-img {
    max-width: 600px;
    height: auto;
}
.dpo-manager-foreground-img {
    max-width: 250px;
    height: auto;
}
@media (max-width: 1600px) {
    .rgpd-foreground { left: 20%; bottom: -5%; transform: translateX(-10%); }
    .rgpd-foreground-img { width: 650px; }
    .dpo-foreground { right: 0% !important; bottom: 0% !important;}
    .dpo-foreground-img { max-width: 450px !important; }
}

@media (min-width: 1600px) {
    .rgpd-foreground-img { width: 700px; }
   
}

@media (max-width: 1400px) {
    
    .dpo-foreground { right: 0% !important; bottom: 0% !important;}
    .dpo-foreground-img { width: 400px !important; }
}
@media (max-width: 1299.98px) {
    .rgpd-foreground { left: 20%; bottom: -7%; transform: translateX(-10%); }
    .rgpd-foreground-img { width: 600px; }

}

@media (max-width: 991.98px) {

    .rgpd-foreground { display: none;  }
    .rgpd-foreground-img { width: 500px; }
}

@media (max-width: 767.98px) {
    .rgpd-foreground { left: 50%; top: 380px; transform: translateX(-50%); }
    .rgpd-foreground-img { width: 320px; }
}
@media (max-width: 767.98px) {
    .rgpd-foreground { left: 50%; top: 380px; transform: translateX(-50%); }
    .rgpd-foreground-img { width: 320px; }
}


.obligations-content {
    max-width: 1200px; padding: 160px 5rem;  padding-right: 0 !important; margin: 0; margin-left: 14rem !important; margin-right: 0 !important ;
    display: flex; flex-direction: column; justify-content: center;
}
@media (min-width: 768px) {  .obligations-list li { font-size: 15px; padding-left: 22px; } }
@media (max-width: 768px) { .bg-obligations {display: none;} .obligations-content { margin:0px  !important; padding: 7rem !important; margin-left: 0px !important;  } }
@media (min-width: 992px) { .section-obligations .col-12.d-flex { flex-direction: row; } .bg-obligations { flex: 0 0 40%; } .obligations-content { flex: 0 0 60%;  padding-left: 6rem; }  }
@media (min-width: 1200px) { .obligations-content { padding-left: 5rem; } }
@media (max-width: 2200px) { .obligations-content { padding-right: 7rem !important; margin-left: 5rem !important; } }
@media (max-width: 768px) { .bg-obligations {display: none;} .obligations-content { margin:0px  !important; padding: 5rem !important; margin-left: 0px !important;  } }
@media (max-width: 576px) { .obligations-content { padding: 50px 16px 50px 16px !important; } }

.section-obligations h2{
    color: #fff;
    font-weight: 400;
    font-size: 18px;
    margin-bottom: .7rem;
    overflow-y: hidden;
}

.section-obligations p{
    color: #80CAF3;
    font-weight: normal;
    font-size: 30px;
    line-height: 1.2;
    padding-top: 50px ; padding-bottom: 50px; margin-bottom: .5rem;
    overflow-y: hidden;
}

.obligations-content .col-10 {
    float: right;
}



.bg-obligations {width: 100%; height: 100% !important; max-width: 720px; background: url(./images/hand-gesture.png); background-size: cover; background-position: center; background-repeat: no-repeat;  }


.obligations-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-weight: 100 !important;
}

.obligations-list li {
    font-size: 17px;
    line-height: 20px;
    color: #ffffff;
    position: relative;
    padding-left: 25px;
    font-weight: 100 !important;
    overflow-y: hidden;
}

.obligations-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .4rem;
    width: 8px;
    height: 8px;
    background-color: #80CAF3;
    border-radius: 50%;
}

.obligations-list strong {
    color: #fff;
    font-weight: 600;
}



/* Responsive pour les listes */
@media (max-width: 768px) {
    .obligations-list li {
        margin-bottom: 20px;
        padding-left: 20px;
    }
    
    .obligations-list li::before {
        width: 6px;
        height: 6px;
        top: .4rem;
    }
}

.pharma-promo-fg { position: absolute; right: 0%; top: 50%; 
    transform: translateY(-50%); z-index: 2; pointer-events: none; }
.pharma-promo-fg-img { max-width: 400px; height: auto; opacity: 1; }


.axes-container{
    flex-wrap: wrap;               /* wrap par défaut (mobile-first) */
    justify-content: center;
}

.forfaits-content h2{
    color: #0046AD;
    font-weight: 400;
    overflow-y: hidden;
    margin-bottom: .5rem;

}

.forfaits-content p{
    color: #76cfb7;
    font-weight: 400;
    line-height: 1.2;
    overflow-y: hidden;
    font-size: 30px;
    margin-bottom: 8px !important;
    padding-top: 50px ; padding-bottom: 50px; 
}
/* ===== Typographie fluide (RGPD) ===== */
/* Héros */
main h1 {
    margin-top: 7rem;
    font-size: 55px;
    
    color: #51D3B7;
}

main p {
    font-size: 17px;
    font-weight: 300;
}


/* Section obligations */
.section-obligations h2,
.forfaits-content h2 {
    font-size: 20px;
}

.section-forfaits .col-xl-7 {
    padding: 160px 12px 160px 12px !important;
}
.section-dpo {

    padding-top: 160px !important;
    padding-bottom: 160px !important;
    background: #F4F4F4;
    position: relative; /* positionnement de l'illustration */
    overflow: visible;
}
@media (max-width: 1400px) {
    .section-forfaits .col-xl-7 {
        padding: 5rem !important;
    }
    .dpo-wrapper {
        padding: 5rem !important;
    }
    .section-dpo {
        padding: 0 !important;
    }
     .dpo-wrapper {
        padding-left: 80px;
     }
}
@media (max-width: 576px) {
    .section-forfaits .col-xl-7 {
        padding: 50px 16px !important;
    }
    .section-dpo {
        padding: 50px 16px !important;
    }
    .dpo-wrapper {
        padding: 0 !important;
    }
}

.section-forfaits span {
    font-size: 20px;
    color: #76cfb7;
    font-weight: 100 !important;
    font-size: 20px;
}









.cta-link {
    font-size: 14px !important;
}
.section-forfaits {
    position: relative;
}
/* Section forfaits */

.section-forfaits h3 {
    overflow-y: hidden;
    font-size: 34px;
    font-weight: 400;
}

.section-forfaits h4 {
    overflow-y: hidden;
    font-size: 20px;
}

/* Garde le numéro et le titre sur une seule ligne quand possible */
.section-forfaits .col-lg-4 h3,
.section-forfaits .col-lg-4 h4 {
    display: inline-block;
    vertical-align: baseline;
    margin: 0;
}

/* Masque les <br> éventuels dans cette section seulement */
.section-forfaits .col-lg-4 br { display: none; }

/* Colonnes: largeur fluide et centrage */
.section-forfaits .axes-container > .col-lg-4 {
    flex: 1 1 320px;               /* minimum 320px, s’empile en dessous */
    max-width: 420px;
}

/* Tablette et +: 3 colonnes gardent l’espace sans débord */
@media (min-width: 992px) {
    .axes-container { flex-wrap: nowrap; justify-content: space-between; }
    .section-forfaits .axes-container > .col-lg-4 { flex: 0 0 calc(33.333% - 16px); max-width: none; }
}

/* Très petit mobile: réduis les paddings et l’offset des puces */
@media (max-width: 360px) {
    .section-forfaits .axes-container > .col-lg-4 { padding-left: 8px !important; padding-right: 8px !important; }
    .section-forfaits .col-lg-4 ul li { padding-left: 16px; }
}



.texte1Vert {
    font-size: clamp(16px, 1.6vw, 18px);
}

.padding10Forfaits li {
    font-size: clamp(14px, 1.4vw, 16px);
}

.textDescForfaits {
    font-size: clamp(14px, 1.5vw, 16px);
}

.demanderDevis {
    font-size: clamp(14px, 1.6vw, 18px);
}

/* ===== Forfaits: style du bloc (1. Titre + liste) ===== */
.section-forfaits .col-lg-4 h3,
.section-forfaits .col-lg-4 h4 {
    display: inline-block;           /* sur une même ligne */
    vertical-align: baseline;
    margin: 0;                        /* annule marges par défaut */
}

.section-forfaits .col-lg-4 h3 {      /* "1." vert/turquoise */
    color: #51D2B6;
    font-weight: 400;
    font-size: 34px;
    margin-right: 8px;
}

.section-forfaits .col-lg-4 h4 {      /* Titre gris soutenu */
    color: #6b7280;                    /* gris du texte */
    font-weight: 400;
    font-size: 20px;
}

.section-forfaits .col-lg-4 ul {       /* Liste stylée comme la maquette */
    list-style: none;
    padding-left: 0;
    margin-top: 10px;
}

.section-forfaits .col-lg-4 ul li {
    position: relative;
    padding-left: 22px;               /* espace pour la puce */
    color: #6b7280;
    line-height: 20px !important;
    font-size: 17px;
    font-weight: 100;
    overflow-y: hidden;
}

.section-forfaits .col-lg-4 ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .4rem;                        /* centre verticalement */
    width: 8px;
    height: 8px;
    background: #0046AD;               /* bleu de la puce */
    border-radius: 50%;
}

.sub-text-forfaits {
    color: #6b7280 !important;    
    font-size: 17px !important;
    font-weight: 300;
}

/* ===== Bouton Demandez un devis ===== */
.btn-devis {
    float: right;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 5px 18px;
    margin-top: 1rem;
    border: 2px solid #1E63F0;           /* bleu outline */
    color: #1E63F0 !important;
    background: #ffffff;
    border-radius: 999px;                 /* pill */
    text-decoration: none;
    font-weight: 600;
    font-size: 20px;
    transition: background .2s ease, color .2s ease, box-shadow .2s ease;
    white-space: nowrap;
}

.btn-devis i, .btn-devis span { font-size: 17px; font-weight: 600;   color: #1E63F0 !important;
}
.btn-devis:hover {
    background: #1E63F0;
    color: #ffffff;
    
}
.btn-devis-2 {
    background: none ;
    font-weight: 600 !important;
}
.btn-devis-2:hover {
    background: #1E63F0 !important;
    font-weight: 600 !important;
}

.btn-devis:hover i, .btn-devis:hover span {
    color: #fff !important;
    font-weight: 600 !important;
}




/* Responsive: sur mobile, bouton en dessous et centré */
@media (max-width: 768px) {
    .forfaits-footer { flex-direction: column; align-items: flex-start; }
    .btn-devis { align-self: center; }
}



.section-dpo-manager {
    padding: 160px 0 !important;
    position: relative; /* positionnement de l'illustration */
    overflow: visible;
}

/* Illustration DPOManager (même logique que .dpo-foreground) */
.dpo-manager-foreground {
    position: absolute;
    right: 0%; transform: translateY(75%);
    z-index: 2;
    pointer-events: none;
}
/* on réutilise .dpo-foreground-img pour la taille */
/* ===== DPO: mise en page + puces bleues ===== */
.dpo-wrapper { gap: 24px; padding-left: 12px; }
.dpo-left { padding-right: 24px; }

@media (min-width: 1600px) {
    .dpo-manager-foreground { right: 0%; transform: translateY(65%); }
}

@media (max-width: 1199.98px) {
    .section-dpo-manager { padding: 5rem !important; }
    .dpo-manager-foreground {  display: none; }
    .section-dpo-manager .col-12.d-flex { flex-wrap: wrap; }
    .section-dpo-manager .col-6 { width: 100% !important; }
    .dpo-manager-left { margin-top: 0px !important; margin-bottom: 0 !important; }
}

@media (max-width: 991.98px) {
    .section-dpo-manager .col-12.d-flex { flex-wrap: wrap; }
    .section-dpo-manager .col-6 { width: 100% !important; }
    
}

/* ≥1400px: conserver la disposition côte à côte */
@media (min-width: 1400px) {
    .section-dpo-manager .col-12.d-flex { flex-wrap: nowrap; }
    .section-dpo-manager .col-6 { width: 50% !important; }
}

/* .dpo-manager-left {
    margin-top: 7rem !important;
    margin-bottom: 7rem !important;
} */

@media (max-width: 1199.98px) {
    .dpo-manager-foreground {  display: none; }
    .section-dpo-manager .col-12.d-flex { flex-wrap: wrap; }
    .section-dpo-manager .col-6 { width: 100% !important; }
    .section-formations { padding: 5rem 5rem !important; }
    .dpo-manager-left { margin-top: 0px !important; margin-bottom: 0px !important; }
    
}
@media (max-width: 576px) {
    .section-dpo-manager  { 
        padding: 50px 16px !important;
     }

     .section-dpo .col-6 {
        width: 100% !important;
        padding: 0%;
     }

    
}
br {
    font-size: 16px;
}
.section-dpo h2,
.dpo-manager-left h2{
    color: #0046AD;
    font-weight: 400;
    overflow-y: hidden;
    font-size: 20px;
    margin-bottom: .5rem;
}
.section-dpo-p {
    padding-top: 50px;
    padding-bottom: 50px;
}

.section-dpo p,
.dpo-manager-left p{
    color: #51D2B6;
    font-weight: 400;
    font-size: 30px;
    line-height: 1.2;
    overflow-y: hidden;
    margin-bottom: .5rem;
}

.dpo-manager-left-p {
    padding-bottom: 50px;
    padding-top: 50px;
}

.section-dpo span,

.dpo-manager-foot-left span{
    color: #6b7280;
    font-weight: 400;
    

}

.dpo-manager-foot-left span {
    padding-right: 0;
}



/* ===== DPO options (3 cartes) ===== */
.dpo-options-title {
    color: #6b7280;
    font-weight: 400;
    overflow-y: hidden;
    font-size: 20px;
    margin-bottom:40px !important;
}

.dpocarousel {
    position: relative;
    z-index: 1000;
}

.dpo-manager-options-title {
    color: #6b7280;
    font-weight: 600;
    overflow-y: hidden;
    font-size: 20px;


}

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

.dpo-card {
    background: #240078;               /* fond violet foncé */
    border-top: 10px solid #50CFB5;    /* barre turquoise en haut */
    color: #ffffff;
    padding: 18px 20px;
    padding-bottom: 30px;
    border-radius: 0px !important;
    width: 97%;
}
.dpo-card-header {
    text-transform: uppercase;
    font-weight: 600;
    color: #50CFB5;
    text-align: center;
    letter-spacing: 1px;
    font-size: 20px;
    margin-top: 15px;
    margin-bottom: 30px;
}
.dpo-card-body p {
    margin: 6px 0;
    text-align: center;
}
.dpo-card-sub {
    font-size: 20px !important;                /* bleu clair pour sous-titres */
    font-weight: 500;
    margin-bottom: 0 !important;
}
.dpo-card-text {
    font-size: 1rem !important;                /* bleu clair pour sous-titres */
    margin-top: 0px !important;
    font-weight: 300 !important;
    line-height: 29px !important;
    color: #ffffff !important;
}
.dpo-card-foot {
    font-size: 1rem !important;                /* bleu clair pour sous-titres */
    margin-top: 0px !important;
    font-weight: 300 !important;
    color: #ffffff !important;
}
.dpo-card-foot span { font-weight: 400; }

/* Responsive: 2 colonnes sur tablette (entre 769px et 1199px) */
@media (min-width: 769px) and (max-width: 1199.98px) {
    .dpo-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Desk médian 992–1600: grille 3 colonnes avec tailles fluides */
@media (min-width: 992px) and (max-width: 1600px) {
    .dpo-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
    .dpo-card { padding: 18px 18px 28px; }
    .dpo-card-header { font-size: clamp(18px, 1.2vw, 20px); margin-top: 10px; margin-bottom: 24px; }
    .dpo-card-sub { font-size: clamp(16px, 1.2vw, 20px) !important; }
    .dpo-card-text, .dpo-card-foot { font-size: clamp(14px, 1.05vw, 16px) !important; line-height: 1.6 !important; }
    .dpo-right-subtext { font-size: clamp(14px, 1.05vw, 16px) !important; }
}
@media (max-width: 768px) {
    .dpo-options { 
        grid-template-columns: 1fr !important;
        justify-items: center;
        gap: 20px;
    }
    
    .dpo-card {
        width: 100% !important;
        max-width: 100%;
    }
}

@media (max-width: 640px) {
    .dpo-options { 
        grid-template-columns: 1fr !important;
        justify-items: center;
        gap: 15px;
    }
    
    .dpo-card {
        width: 100% !important;
        max-width: 100%;
    }
}

.dpo-list {
    list-style: none;
    padding-left: 0;

}

.dpo-list strong {
    font-weight: 600 !important;
}

.dpo-list li {
    position: relative;
    padding-left: 22px;               /* laisse la place à la puce */
    color: #6b7280;
    font-size: 17px;
    font-weight: 100;
    line-height: 20px !important;
    overflow: hidden;
}

.dpo-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.4em;
    width: 8px;
    height: 8px;
    background: #0046AD;              /* bleu de la capture */
    border-radius: 50%;
}

/* Responsive */
@media (max-width: 768px) {
    .dpo-wrapper { flex-direction: column; }
    .dpo-left { padding-right: 0; }
    .dpo-right { padding-left: 0; }
    .dpo-foreground { display: none; }
}

@media (min-width: 768px) {
    .dpo-manager-foot-left  {
        padding-right: 4rem !important;
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .dpo-foreground { display: none; right: -10% !important; bottom:0% !important; transform: translateX(-8%); }
    .dpo-foreground-img { width: 300px; }
}

/* À partir de 1300px: les cartes passent dessous (2 colonnes) */
@media (min-width: 769px) and (max-width: 1299.98px) {
    .dpo-foreground-img { width: 400px !important; }
    .dpo-foreground { right: 10% !important; bottom:0% !important; transform: translateX(-8%); }
    .dpo-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Responsive: layout section DPO gauche/droite */
@media (max-width: 991.98px) {
    .section-dpo .col-6 { width: 100% !important; }
    .section-dpo .d-flex { flex-wrap: wrap; }
    .dpo-foreground {display: none;}
}

/* Responsive: cartes DPO - équilibrer les hauteurs et marges */
.dpo-card { display: flex; flex-direction: column; justify-content: flex-start; }
.dpo-card-body { flex: 1 1 auto; }


.dpo-right span{
    font-weight: 600;
    font-size: 1.01em;
}

.dpo-right-subtext{
    font-weight: 100 !important;
    font-size: 17px !important;
    color: #6b7280 !important;
    margin-top: 50px !important;
    line-height: 1.5 !important;
    margin-bottom: 0 !important;
}

.section-formations {
    background: #DCF6F0;
    padding: 160px 0;
    padding-right: 0;
}

.section-references {
    padding: 160px 0 !important;
}

/* Foreground décor pour la section références */
.section-references { position: relative; overflow: visible; }
.references-foreground { position: absolute; right: -17%; top: 10%; width: 55%; height: 100%; pointer-events: none; z-index: 0; }
.references-foreground-img { width: 100%; height: auto; object-fit: contain; object-position: right center; filter: saturate(0.95); }

@media (max-width: 1199.98px) {
    .section-references {
        padding: 5rem !important;
    }
    .dpo-manager-left {
        padding-right: 0 !important;
    }
    /* Disparaît à 1200px et moins et le contenu prend toute la largeur */
    .references-foreground { display: none; }
    .section-references .col-12.d-flex { flex-wrap: wrap; }
    .section-references .col-6 { width: 100% !important; }
    .section-references .col-12.d-flex > .col-6:last-child { display: none; }
}
@media (max-width: 992px) {
    /* masque le décor et fait passer le contenu à 100% */
    .references-foreground { display: none; }
    .section-references { padding: 6rem 3rem; }
    .section-references .col-12.d-flex { flex-wrap: wrap; }
    .section-references .col-6 { width: 100% !important; }
    .section-references .dpo-manager-left .col-10 { width: 100% !important; }
}
@media (max-width: 576px) {
    .section-references { padding: 50px 16px !important; }
    .section-formations { padding: 50px 16px !important; }
    .dpo-manager-left { margin-top: 0px !important; ; }
}

/* Card Références */
.references-card {
    background: #240078; /* violet foncé */
    color: #ffffff;
    border-top: 10px solid #50CFB5; /* liseré turquoise */
    border-radius: 0;
    padding: 20px 24px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    max-width: 680px;
}
.references-intro { font-weight: 400 !important; color: #50CFB5; margin: 0 0 10px 0; font-size: 18px !important; }
.references-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 50px; }
.references-list { list-style: none; padding: 0; margin: 0; }
.references-list li { position: relative; padding-left: 16px; font-weight: 100; font-size: 17px; }
.references-list li::before {
    content: '';
    position: absolute; left: 0; top: 0.5em; width: 8px; height: 8px; background: #50CFB5; border-radius: 50%;
}

@media (max-width: 576px) {
    .references-card { max-width: 100%; padding: 16px; }
    .references-grid { grid-template-columns: 1fr; gap: 10px; }
}

/* Mobile: empiler les deux listes DPO en une colonne */
@media (max-width: 576px) {
    .section-dpo .d-flex .d-flex.justify-content-between { flex-direction: column; gap: 12px; }
    .section-dpo .d-flex .d-flex.justify-content-between .dpo-list { width: 100% !important; }
}

/* CTA section formations */
.formations-right { display: flex; flex-direction: column; min-height: 100%; }
.formations-right .dpo-list { flex: 1 1 auto; }
.formations-cta { margin-top: 16px; margin-bottom: 0; }
.formations-right .formations-cta { margin-top: auto; }
.formations-cta .btn-devis { float: right; }

@media (max-width: 768px) {
    .formations-cta { text-align: center; }
    .formations-cta .btn-devis { float: none; }
}

/* Foreground décor pour la section formations */
.section-formations { position: relative; overflow: hidden; }
.formations-foreground { position: absolute; left: 0; bottom: 0px; transform: translateY(0); width: 50%; height: 100%; pointer-events: none; z-index: 0; display: flex; align-items: flex-end; }
.formations-foreground-img { width: 55%; height: auto; object-fit: cover; object-position: left bottom; filter: brightness(1.05) saturate(0.95); }

@media (max-width: 1199.98px) {
    .formations-foreground { width: 60%; }
}
@media (max-width: 992px) {
    .formations-cta .btn-devis { float: left; z-index: 1000 !important; }
    .formations-foreground { width: 100%; height: 260px; top: 0; left: 0; }
    .formations-foreground-img { object-position: center top; }
    
}

/* Responsive renforcé section Formations: pleine largeur sans décor ≤1200px */
@media (max-width: 1199.98px) {
    .formations-foreground { display: none; }
    
    .section-formations .col-5.formations-bg { display: none; }
    .section-formations .col-7 { width: 100% !important; }
    .section-formations .col-10.d-flex { flex-wrap: wrap; padding-left: 0 !important; padding-right: 0 !important; }
    .section-formations .col-10.d-flex > .col-6 { width: 100% !important; }
}
@media (max-width: 576px) {
    .section-formations { padding: 4rem 1.5rem; }
    .forfaits-content p{
        
        font-size: 28px;
        line-height: 1.1;
    }

    main h1 {
        text-align: start;
        font-size: 42px;
    }

    main p {
        text-align: start;
        margin: 0;
        width: 100% !important;
    }

    .section-obligations p {
        font-size: 28px !important;
        line-height: 1.1;
    }

    .section-dpo p {
        font-size: 28px ;
        line-height: 1.1;
    }

    .dpolistdown {
        margin-top: 0px !important;
    }

    .dpolistup {
        margin-bottom: 0px !important;
    }

    .dpo-card-text {
        font-size: 17px !important;
    }

    .dpo-manager-left p {
        font-size: 28px;
        line-height: 1.1;
    }

    .formation-list {
        margin-top: -50px !important;
    }
}