: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;
}


/* Héros identique à la page RGPD, avec bg IA */
main {
    background: url(./images/ia-bg.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    height: max-content;
    width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #ffffff;
}

/* Responsive pour le texte - Mobile First (copie RGPD) */
@media (max-width: 480px) {
    main .col-12 {
        flex-direction: column;
        padding: 0 15px;
    }
    
    main .col-5 {
        display: none;
    }
    
    main .col-7 {
        width: 100%;
        text-align: center;
        padding: 0 10px;
    }
    
    
    
    
}

@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%;
        text-align: center;
        padding: 0 15px;
    }
    
    
    
    
}

@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;
    }
    
    
}

@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-weight: 400;
    height: fit-content;
    color: #0046AD;

    overflow-y: hidden;
    font-size: 55px;
 
}

main p {
    color: #000;
    margin-bottom: 1rem !important;
    font-size: 17px;
    margin-bottom: 16px !important;
}
.padding-top-custom {
    padding:0  !important;
    margin: auto;
    margin-top: 7rem !important;
    margin-bottom: 160px !important;
}
/* ===== Cartes identiques IA ===== */
.cards-container { display: flex; justify-content: start; align-items: start; margin-top: 0px !important; margin-right: 10% !important; flex-wrap: wrap; height: max-content; align-items: flex-start; max-width: 1200px; }


.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: #0062ff;
    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;
    height: 4rem;
}

.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 cartes (copie IA) */
@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: 280px; }
}

@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 {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: flex-start;
        justify-content: center;
        height: auto;
        gap: 15px;
        margin-top: 30px;
        padding: 0 15px;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    
    .card {
        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;
        margin: 0 !important;
        box-sizing: border-box;
    }
    
    .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: 0; color: #ffffff;height: 60px !important; }
    .card-description-2 {
        margin-bottom: 0;
    }
        .card-title { font-size: 17px !important; margin-bottom: 8px; }

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

@media (max-width: 480px) {
    .cards-container { 
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        padding: 0 10px; 
        gap: 10px; 
        margin-left: auto !important;
        margin-right: auto !important;
        justify-content: center;
        max-width: 100% !important;
        width: 100% !important;
    }
    .card { 
        width: calc(50% - 5px) !important; 
        max-width: none !important; 
        flex: 0 0 calc(50% - 5px) !important;
        padding: 15px; 
        min-height: 220px; 
        margin: 0 !important;
        box-sizing: border-box;
    }
    .card-icon img { width: 35px; height: 35px; }
    .card-title { font-size: 17px !important; margin-bottom: 8px; }
    .card-description { font-size: 17px !important; margin-bottom: 15px;height: 40px !important; }
    .card-cta { margin-top: 10px; }
}

/* Typo fluide */
main h1 { font-size: 55px; line-height: 1.15; }
main p { font-size: 17px !important; padding-top: 50px !important; padding-bottom: 50px; }
.card-text { font-size: 17px !important; }
.card-title { font-size: 17px !important;; }
.card-description { font-size: 17px !important; }
.cta-link { font-size: 14px !important; }


/* ===== Section obligations (copie RGPD) ===== */
.section-obligations {
    background: #97E4D3;
    position: relative;
    overflow: visible;
    
}

.rgpd-foreground { position: absolute; left: 20%; bottom: -12%; transform: translateX(-5%); z-index: 5; pointer-events: none; }
.rgpd-foreground-img { width: 600px; height: auto; }

.dpo-foreground { position: absolute; left: 30% !important; bottom: 0px !important; transform: translateX(-10%); z-index: 2; pointer-events: none; }
.dpo-foreground-img { max-width: 300px; height: auto; }

@media (max-width: 1600px) { .rgpd-foreground-img { width: 700px; } .dpo-foreground { left: 30% !important; bottom: 0% !important; } .dpo-foreground-img { width: 520px; } }
@media (max-width: 1299.98px) { .rgpd-foreground { left: 10%; bottom: -10%; 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; } .obligations-content { padding: 45px 40px 40px 40px !important; } }

.obligations-content { padding: 15rem 5rem;  padding-right: 0 !important; margin-left: 14rem !important; margin-right: 0 !important;display: flex; flex-direction: column;  justify-content: center;}
.section-obligations h2 { 
    color: #000;
    font-weight: 300;
    font-size: 20px;
    margin-bottom: 0;
    overflow-y: hidden;
 }
.section-obligations p { color: #80CAF3; font-weight: 300; font-size: 32px; }
.obligations-content .col-10 { float: right; }

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


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

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

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

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

@media (min-width: 768px) { .obligations-content { padding: 40px 32px;  } .obligations-list li {  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: 60px 40px; 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; } }
@media (max-width: 1440px) { .obligations-content { padding-left: 2rem !important;padding-right: 2rem !important; } }
@media (min-width: 992px) and (max-width: 1100px) {
    .btn-devis {
        position: absolute;
        margin-left: 1rem !important;
    }
}
.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: transparent;
    border-radius: 999px;                 /* pill */
    text-decoration: none;
    font-weight: 600 !important;
    font-size: 17px !important;
    transition: background .2s ease, color .2s ease, box-shadow .2s ease;
    white-space: nowrap;
}

.btn-devis:hover {
    background: #1E63F0;
    color: #ffffff !important;
}


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

.img-hov1 {
    display: none;
}

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

/* ===== Section obligations - mobile first ===== */
.section-obligations .d-flex { flex-direction: row; }
.section-obligations .bg-obligations { min-height: 260px; width: 100%; }
.section-obligations .btn-devis { float: none; }
.obligations-list { margin-bottom: 2rem; }

@media (max-width: 576px) {
}
@media (min-width: 576px) {
}

@media (min-width: 768px) {
}

@media (min-width: 992px) {
    .section-obligations .d-flex { flex-direction: row; }
    .section-obligations .bg-obligations { flex: 0 0 40%; }
    .section-obligations .obligations-content { flex: 0 0 60%; padding: 160px 40px; padding-left: 6rem; }
    .obligations-list { margin-bottom: 6rem; }
    .section-obligations .btn-devis { float: right; }
}

@media (min-width: 1200px) {
    .section-obligations .obligations-content { padding-left: 5rem; }
    .obligations-list { margin-bottom: 9rem; }
    main h1 { margin-bottom: 40px; }
}

.section-impact-ia {
    background: #F4F4F4;
    
    position: relative;
    overflow: visible;
    
}

.section-impact-ia .col-xl-7 { padding: 160px 12px 160px 12px; }



.section-impact-ia h2 { color: #000; font-weight: 300; font-size: 20px; overflow-y: hidden; margin-bottom: .5rem; }

.section-impact-ia p{
    color: #0033FF;
    font-weight: 400;
    font-size: 30px;
    line-height: 1.2;
    overflow-y: hidden;
    padding-right: 0;
    margin-bottom: 0;

}
.section-impact-ia-p {
    padding-bottom: 50px;
    padding-top: 50px;
    margin-bottom: .5rem !important;
}

/* Colonne droite avec image de fond */
.ia-bg-side {
    background: url(./images/ia-bg-3.png) no-repeat  center;
    background-size: contain;
    min-height: 480px;
    max-height: 700px;
    z-index: 100;
}

/* Foreground IA (comme RGPD) */
.ia-foreground { position: absolute; right: -1%; top: -180px; transform: translateX(0); z-index: 1; pointer-events: none; }
.ia-foreground-img { width: 650px; height: auto; opacity: 1; }

@media (max-width: 991.98px) {
    .section-impact-ia .d-flex { flex-direction: column; gap: 24px; } 
    .ia-bg-side { display: none; }
    .ia-foreground { display: none; }
}
@media (max-width: 1200px) {
    .section-impact-ia .col-xl-7 {
        padding: 5rem !important;
    }
    .ia-foreground { display: none; }
}
br {
    font-size: 16px;
}

/* ===== Liste domaines d'application (2 colonnes avec puces bleues) ===== */
.domains-title { color: #000 !important; font-weight: 600 !important; font-size: 20px !important; padding: 0; }
.domains-list { 
    list-style: none; 
    padding: 0; 
    margin: 0; 
    display: grid; 
    grid-template-columns: 1fr; 
    gap: 12px 16px; 

}
.domains-list li { position: relative; padding-left: 16px; color: #000; line-height: 20px !important; font-size: 17px !important; overflow-y: hidden; font-weight: 100 !important;}
.domains-list li::before { content: ""; position: absolute; left: 0; top: .4rem;  width: 8px; height: 8px; background: #0033FF; border-radius: 50%; }
.domains-list strong { color: #000; font-weight: 600; }

@media (max-width: 768px) {
    .domains-list { grid-template-columns: 1fr; gap: 10px 0; }
}

@media (min-width: 992px) {
    .section-impact-ia .d-flex { flex-direction: row; }
    .domains-list { grid-template-columns: 1fr 1fr; gap: 12px 48px; }
    .ia-bg-side { display: block; }
}


@media (max-width: 650px) {
    main h1 {
        text-align: start;
        font-size: 42px;
    }

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

@media (max-width: 576px) {
    .section-impact-ia .col-xl-7 {
        padding: 50px 16px !important;
    }
    .section-impact-ia-p {
        font-size: 28px !important;
        line-height: 1.1;
    }

    .obligations-list-1 {
        margin-bottom: 0 !important;
    }
}

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