:root{
    --ct-text:#1f2937;
    --ct-muted:rgba(31,41,55,.70);

    --ct-primary:#3f6f67;
    --ct-primary-2:#2f5751;

    --ct-border:rgba(20,30,40,.10);
    --ct-border-soft:rgba(20,30,40,.08);

    --ct-shadow:0 12px 34px rgba(15,23,42,.10);
    --ct-shadow-soft:0 10px 28px rgba(15,23,42,.08);

    --ct-glass:rgba(255,255,255,.55);
    --ct-glass-2:rgba(255,255,255,.62);
    --ct-glass-3:rgba(255,255,255,.72);

    --ct-radius-lg:26px;
    --ct-radius-md:22px;
    --ct-radius-sm:18px;
}

/* ===== Base + fond global FIXE (évite les traits au scroll) ===== */
html,body{
    height:100%
}

body{
    margin:0;
    font-family:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    color:var(--ct-text);
    background:#f6f8fb;
    overflow-x:hidden;
}

/* gradients FIXES (ne se répètent pas par section) */
body::after{
    content:"";
    position:fixed;
    inset:0;
    z-index:-2;
    pointer-events:none;
    background:
        radial-gradient(1200px 700px at 10% 10%, rgba(63,111,103,.12), transparent 55%),
        radial-gradient(900px 500px at 90% 20%, rgba(90,164,154,.12), transparent 55%),
        radial-gradient(900px 600px at 50% 100%, rgba(148,163,184,.18), transparent 60%),
        linear-gradient(180deg,#f6f8fb 0%,#eef3f7 60%,#f6f8fb 100%);
}

/* grain subtil */
body::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-1;
    pointer-events:none;
    opacity:.06;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
    mix-blend-mode:multiply;
}
/* IMPORTANT: le header doit être au-dessus du hero */
.ct-header,
.ct-header__inner,
.ct-nav {
    position: relative;
    z-index: 4000;
    overflow: visible; /* sinon le dropdown peut être "coupé" */
}

/* Wrapper */
.ct-loginMenu{
    position: relative;
    display: inline-block;
    z-index: 5000; /* au-dessus du reste */
}

/* Bouton */
.ct-loginMenu__btn{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor:pointer;
}

/* Chevron : rotation selon état */
.ct-loginMenu__chev{
    transition: transform .16s ease;
    transform: rotate(0deg);
    opacity: .9;
}

.ct-loginMenu[data-open="1"] .ct-loginMenu__chev{
    transform: rotate(180deg);
}

/* Panel dropdown */
.ct-loginMenu__panel{
    position: absolute;
    right: 0;
    top: calc(100% + 10px);
    width: 320px;
    max-width: min(360px, 92vw);

    border-radius: 16px;
    border: 1px solid rgba(20,30,40,.10);
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 18px 50px rgba(0,0,0,.14);

    padding: 10px;
    z-index: 99999;

    /* fermé par défaut */
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}

.ct-loginMenu[data-open="1"] .ct-loginMenu__panel{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
    transition: opacity .16s ease, transform .16s ease, visibility 0s;
}

/* Item */
.ct-loginMenu__item{
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 10px;
    border-radius: 12px;
    text-decoration: none;
    color: rgba(31,41,55,.92);
}

.ct-loginMenu__item:hover{
    background: rgba(63,111,103,.10);
}

.ct-loginMenu__icon{
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(255,255,255,.65);
    border: 1px solid rgba(20,30,40,.08);
}

.ct-loginMenu__txt strong{
    display: block;
    font-weight: 950;
    font-size: 14px;
    line-height: 1.1;
}

.ct-loginMenu__txt em{
    display: block;
    font-style: normal;
    margin-top: 2px;
    color: rgba(31,41,55,.60);
    font-weight: 650;
    font-size: 12.5px;
}

.ct-loginMenu__sep{
    height: 1px;
    margin: 8px 6px;
    background: rgba(20,30,40,.08);
}

/* ===== Container ===== */
.ct-container{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px;
}

/* ===== Header ===== */
.ct-header{
    z-index:50;
    padding:14px 0;
    background:transparent;
}

.ct-header__inner{
    max-width:1120px;
    margin:0 auto;
    padding:12px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;

    background:rgba(255,255,255,.72);
    border:1px solid var(--ct-border);
    border-radius:16px;
    box-shadow:var(--ct-shadow);

    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

/* Brand */
.ct-brand{
    display:inline-flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    color:var(--ct-text);
}

.ct-brand__mark{
    width:34px;
    height:34px;
    border-radius:10px;
    display:grid;
    place-items:center;
    color:#fff;
    background:linear-gradient(135deg,var(--ct-primary),#5aa49a);
    box-shadow:0 10px 20px rgba(63,111,103,.22);
}

.ct-brand__name{
    font-weight:800;
    letter-spacing:.2px;
    font-size:18px;
}

/* Nav */
.ct-nav{
    display:flex;
    align-items:center;
    gap:16px;
}

.ct-nav__link{
    text-decoration:none;
    color:rgba(31,41,55,.72);
    font-weight:700;
    font-size:14.5px;
    padding:8px 10px;
    border-radius:10px;
    transition:background .15s ease,color .15s ease;
}
.ct-nav__link:hover{
    background:rgba(63,111,103,.10);
    color:var(--ct-text);
}

/* Burger */
.ct-burger{
    display:none!important
}
@media (max-width:860px){
    .ct-nav{
        display:none!important
    }
    .ct-burger{
        display:inline-flex!important;
        align-items:center;
        justify-content:center;
    }
}
.ct-burger span{
    display:block;
    width:18px;
    height:2px;
    background:var(--ct-text);
    margin:4px auto;
    border-radius:2px;
}

/* ===== Buttons ===== */
.ct-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    font-weight:800;
    font-size:14px;
    padding:10px 14px;
    border-radius:12px;
    border:1px solid transparent;
    transition:transform .12s ease,box-shadow .12s ease,background .12s ease;
}

.ct-btn--lg{
    padding:12px 18px;
    border-radius:14px;
    font-size:14.5px;
}

.ct-btn--primary{
    color:#fff;
    background:var(--ct-primary);
    box-shadow:0 12px 22px rgba(63,111,103,.22);
}
.ct-btn--primary:hover{
    background:var(--ct-primary-2);
    transform:translateY(-1px);
    box-shadow:0 14px 26px rgba(63,111,103,.22);
}

.ct-btn--ghost{
    background:rgba(255,255,255,.55);
    border:1px solid rgba(20,30,40,.10);
    color:rgba(31,41,55,.80);
    box-shadow:none;
}
.ct-btn--ghost:hover{
    background:rgba(255,255,255,.70);
    transform:translateY(-1px);
}

/* ===== HERO ===== */
.ct-hero{
    padding:38px 0 18px
}

.ct-hero__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    align-items:center;
    gap:34px;
}

.ct-hero__content{
    max-width:560px
}

.ct-hero__title{
    margin:0 0 14px;
    font-size:clamp(36px,4.2vw,56px);
    line-height:1.06;
    letter-spacing:-.9px;
    font-weight:900;
    color:var(--ct-text);
}

.ct-hero__title--muted{
    color:rgba(31,41,55,.55);
    font-weight:850;
}

.ct-hero__lead{
    margin:0 0 22px;
    max-width:520px;
    font-size:18.5px;
    line-height:1.65;
    color:rgba(31,41,55,.68);
}
.ct-hero__lead strong{
    color:var(--ct-text);
    font-weight:850
}

.ct-hero__actions{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
}

.ct-hero__trust{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:9px 11px;
    border-radius:12px;
    border:1px solid var(--ct-border);
    background:var(--ct-glass-2);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.ct-hero__trustIcon{
    width:32px;
    height:32px;
    border-radius:11px;
    display:grid;
    place-items:center;
    color:var(--ct-primary);
    background:rgba(63,111,103,.10);
}

.ct-hero__trustText{
    font-size:14px;
    color:rgba(31,41,55,.70);
}
.ct-hero__trustText strong{
    font-weight:900;
    letter-spacing:.2px;
    color:var(--ct-text);
}

.ct-hero__media{
    position:relative;
    overflow:hidden;
}

.ct-hero__img{
    display:block;
    width:100%;
    height:auto;
    transform:translateY(2px) scale(1.02);
    opacity:.98;
}

@media (max-width:980px){
    .ct-hero__inner{
        grid-template-columns:1fr
    }
    .ct-hero__media{
        order:2
    }
    .ct-hero__lead{
        max-width:100%
    }
}

/* ===== Proof (cards) ===== */
.ct-proof{
    padding:34px 0 70px
}

.ct-proof__inner{
    max-width:1120px;
    margin:0 auto;
    padding:34px 26px 28px;
    border-radius:var(--ct-radius-lg);
    border:1px solid var(--ct-border-soft);
    background:var(--ct-glass);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.ct-proof__head{
    padding:6px 6px 18px
}

.ct-proof__title{
    margin:0 0 10px;
    font-size:clamp(26px,2.4vw,36px);
    line-height:1.15;
    letter-spacing:-.4px;
    font-weight:900;
}
.ct-proof__title span{
    color:var(--ct-primary)
}

.ct-proof__sub{
    margin:0;
    max-width:760px;
    font-size:16.5px;
    line-height:1.6;
    color:rgba(31,41,55,.70);
    font-weight:600;
}

.ct-proof__grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    padding:14px 6px 20px;
}

.ct-card{
    border-radius:var(--ct-radius-sm);
    border:1px solid rgba(20,30,40,.10);
    background:var(--ct-glass-2);
    padding:16px 16px 14px;
    transition:transform .12s ease,background .12s ease,border-color .12s ease;
}
.ct-card:hover{
    transform:translateY(-2px);
    background:var(--ct-glass-3);
    border-color:rgba(63,111,103,.22);
}

.ct-card__icon{
    width:42px;
    height:42px;
    border-radius:14px;
    display:grid;
    place-items:center;
    color:var(--ct-primary);
    background:rgba(63,111,103,.10);
    margin-bottom:12px;
}

.ct-card__title{
    margin:0 0 8px;
    font-size:15.5px;
    font-weight:900;
    letter-spacing:-.2px;
}

.ct-card__text{
    margin:0;
    font-size:13.8px;
    line-height:1.55;
    color:rgba(31,41,55,.70);
    font-weight:600;
}

.ct-proof__cta{
    display:flex;
    justify-content:center;
    padding:10px 6px 6px
}

@media (max-width:1020px){
    .ct-proof__grid{
        grid-template-columns:repeat(2,1fr)
    }
}
@media (max-width:560px){
    .ct-proof__inner{
        padding:28px 18px 22px
    }
    .ct-proof__grid{
        grid-template-columns:1fr
    }
}

/* ===== Social proof ===== */
.ct-social{
    padding:10px 0 70px
}

.ct-social__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px;
}

.ct-social__top{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin:28px 0 16px;
}

.ct-social__title{
    margin:0;
    font-size:clamp(20px,2.1vw,28px);
    font-weight:900;
    letter-spacing:-.3px;
}

.ct-social__logos{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    justify-content:flex-end;
}

.ct-logoPill{
    padding:8px 12px;
    border-radius:999px;
    border:1px solid rgba(20,30,40,.10);
    background:rgba(255,255,255,.55);
    color:rgba(31,41,55,.70);
    font-weight:800;
    font-size:12.5px;
    letter-spacing:.2px;
}

.ct-social__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    align-items:stretch;
}

.ct-testimonial{
    border-radius:var(--ct-radius-md);
    border:1px solid var(--ct-border-soft);
    background:var(--ct-glass);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:14px;
}

.ct-testimonial__head{
    display:flex;
    gap:12px;
    align-items:center
}

.ct-avatar{
    width:52px;
    height:52px;
    border-radius:18px;
    display:grid;
    place-items:center;
    background:rgba(63,111,103,.12);
    color:var(--ct-primary);
    font-weight:900;
}

.ct-testimonial__name{
    font-weight:900
}
.ct-testimonial__role{
    font-weight:700;
    color:rgba(31,41,55,.65);
    font-size:13.5px
}

.ct-testimonial__quote{
    margin:0;
    font-size:16px;
    line-height:1.6;
    color:rgba(31,41,55,.72);
    font-weight:650;
}

.ct-stars{
    color:rgba(63,111,103,.85);
    letter-spacing:2px;
    font-size:14px
}

/* visual (image) */
.ct-social__visual{
    border-radius:var(--ct-radius-lg);
    border:1px solid rgba(20,30,40,.06);
    background:rgba(255,255,255,.38);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    overflow:hidden;
    display:grid;
    place-items:center;
    padding:18px;
}

.ct-social__img{
    width:100%;
    height:100%;
    max-width:560px;
    max-height:260px;
    object-fit:contain;              /* recommandé pour PNG/illustration */
    display:block;

    opacity:.96;
    mix-blend-mode:multiply;
    filter:saturate(.95) contrast(.98);
    border-radius:22px;
    background:rgba(255,255,255,.18);
}

.ct-social__img--noRadius{
    border-radius:0;
    mix-blend-mode:normal;
    background:transparent;
}

@media (max-width:900px){
    .ct-social__top{
        align-items:flex-start;
        flex-direction:column
    }
    .ct-social__grid{
        grid-template-columns:1fr
    }
    .ct-social__img{
        max-height:320px
    }
}

/* ===== Steps (home) ===== */
.ct-steps{
    padding:20px 0 80px
}

.ct-steps__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px;
}

.ct-steps__head{
    text-align:center;
    margin:10px 0 18px
}

.ct-steps__title{
    margin:0 0 8px;
    font-size:clamp(28px,3vw,44px);
    font-weight:950;
    letter-spacing:-.6px;
}

.ct-steps__sub{
    margin:0;
    color:rgba(31,41,55,.65);
    font-weight:700;
    font-size:16px;
}

.ct-steps__grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin-top:18px;
}

.ct-step{
    border-radius:20px;
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.52);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:16px 16px 14px;
    transition:transform .12s ease,border-color .12s ease,background .12s ease;
}
.ct-step:hover{
    transform:translateY(-2px);
    border-color:rgba(63,111,103,.20);
    background:rgba(255,255,255,.62);
}

.ct-step__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:12px;
}

.ct-step__num{
    width:34px;
    height:34px;
    border-radius:12px;
    display:grid;
    place-items:center;
    font-weight:900;
    color:var(--ct-primary);
    background:rgba(63,111,103,.10);
    border:1px solid rgba(63,111,103,.14);
}

.ct-step__icon{
    width:38px;
    height:38px;
    border-radius:14px;
    display:grid;
    place-items:center;
    color:rgba(31,41,55,.78);
    background:rgba(148,163,184,.16);
    border:1px solid rgba(20,30,40,.06);
}

.ct-step__title{
    margin:0 0 6px;
    font-size:15.5px;
    font-weight:950;
    letter-spacing:-.2px;
}

.ct-step__text{
    margin:0;
    font-size:13.8px;
    line-height:1.55;
    color:rgba(31,41,55,.68);
    font-weight:650;
}

.ct-steps__cta{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    margin-top:18px;
}

@media (max-width:1020px){
    .ct-steps__grid{
        grid-template-columns:repeat(2,1fr)
    }
}
@media (max-width:560px){
    .ct-steps__grid{
        grid-template-columns:1fr
    }
    .ct-steps__head{
        text-align:left
    }
}

/* ===== Footer ===== */
.ct-footer{
    margin-top:30px;
    padding:28px 0 18px;
    border-top:1px solid rgba(20,30,40,.08);
    background:rgba(255,255,255,.28);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.ct-footer__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px;
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
}

.ct-brand--footer .ct-brand__mark{
    box-shadow:none
}

.ct-footer__tagline{
    margin:10px 0 0;
    color:rgba(31,41,55,.68);
    font-weight:650;
    max-width:420px;
}

.ct-footer__nav{
    display:flex;
    flex-wrap:wrap;
    gap:12px 16px;
    justify-content:flex-end;
}
.ct-footer__nav a{
    color:rgba(31,41,55,.72);
    text-decoration:none;
    font-weight:800;
    font-size:14px;
}
.ct-footer__nav a:hover{
    color:var(--ct-text)
}

.ct-footer__bottom{
    max-width:1120px;
    margin:18px auto 0;
    padding:12px 18px 0;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
    color:rgba(31,41,55,.62);
    font-weight:650;
    font-size:13px;
}
.ct-footer__bottom a{
    color:rgba(31,41,55,.62);
    text-decoration:none
}
.ct-footer__bottom a:hover{
    color:var(--ct-text)
}
.ct-footer__sep{
    opacity:.55
}

@media (max-width:860px){
    .ct-footer__inner{
        flex-direction:column
    }
    .ct-footer__nav{
        justify-content:flex-start
    }
}

/* ===== Pricing ===== */
.ct-pricingHero{
    padding:36px 0 10px
}
.ct-pricingHero__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px
}

.ct-pricingHero__head{
    border-radius:var(--ct-radius-lg);
    border:1px solid var(--ct-border-soft);
    background:var(--ct-glass);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:26px 26px 22px;
}

.ct-pricingHero__title{
    margin:0 0 10px;
    font-size:clamp(30px,3.2vw,46px);
    line-height:1.12;
    letter-spacing:-.6px;
    font-weight:950;
}
.ct-pricingHero__title span{
    color:rgba(31,41,55,.62);
    font-weight:900
}

.ct-pricingHero__sub{
    margin:0 0 16px;
    max-width:820px;
    color:rgba(31,41,55,.70);
    font-weight:650;
    line-height:1.65;
}

.ct-pricingHero__actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin:12px 0 10px
}
.ct-pricingHero__note{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:10px
}

.ct-pricingHero__badge{
    padding:8px 12px;
    border-radius:999px;
    border:1px solid rgba(20,30,40,.08);
    background:rgba(255,255,255,.55);
    color:rgba(31,41,55,.68);
    font-weight:800;
    font-size:13px;
}

.ct-pricing{
    padding:18px 0 80px
}
.ct-pricing__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px
}

.ct-plans{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-top:18px;
}

.ct-plan{
    border-radius:var(--ct-radius-md);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.52);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:14px;
    position:relative;
    overflow:hidden;
}

.ct-plan__name{
    font-weight:950;
    letter-spacing:-.2px;
    font-size:16px
}

.ct-plan__price{
    margin-top:8px;
    display:flex;
    align-items:baseline;
    gap:8px
}
.ct-plan__amount{
    font-weight:950;
    font-size:28px;
    letter-spacing:-.4px
}
.ct-plan__period{
    color:rgba(31,41,55,.60);
    font-weight:800;
    font-size:13px
}

.ct-plan__desc{
    margin:8px 0 0;
    color:rgba(31,41,55,.68);
    font-weight:650;
    line-height:1.6;
    font-size:13.8px;
}

.ct-plan__list{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap:9px;
    color:rgba(31,41,55,.70);
    font-weight:700;
    font-size:13.5px;
}
.ct-plan__list li{
    padding-left:18px;
    position:relative
}
.ct-plan__list li::before{
    content:"✓";
    position:absolute;
    left:0;
    top:0;
    color:rgba(63,111,103,.90);
    font-weight:900;
}

.ct-plan__cta{
    margin-top:auto
}

.ct-plan--featured{
    border-color:rgba(63,111,103,.22);
    background:rgba(255,255,255,.58);
}

.ct-plan__ribbon{
    position:absolute;
    top:14px;
    right:14px;
    padding:7px 10px;
    border-radius:999px;
    background:rgba(63,111,103,.14);
    border:1px solid rgba(63,111,103,.22);
    color:rgba(31,41,55,.82);
    font-weight:900;
    font-size:12px;
}

.ct-compare{
    margin-top:20px;
    border-radius:var(--ct-radius-md);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.50);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:18px;
}

.ct-compare__title{
    margin:0 0 12px;
    font-weight:950;
    letter-spacing:-.3px;
    font-size:18px
}

.ct-compare__tableWrap{
    overflow:auto;
    border-radius:16px;
    border:1px solid rgba(20,30,40,.08);
    background:rgba(255,255,255,.60);
}

.ct-compare__table{
    width:100%;
    border-collapse:collapse;
    min-width:680px;
}

.ct-compare__table th,
.ct-compare__table td{
    padding:12px;
    border-bottom:1px solid rgba(20,30,40,.06);
    text-align:left;
    font-weight:750;
    color:rgba(31,41,55,.78);
    font-size:13.5px;
}
.ct-compare__table th{
    background:rgba(148,163,184,.12);
    color:rgba(31,41,55,.82);
    font-weight:900;
}
.ct-compare__table tr:last-child td{
    border-bottom:none
}

.ct-compare__note{
    margin:10px 2px 0;
    color:rgba(31,41,55,.58);
    font-weight:650;
    font-size:13px;
}

.ct-pricing__cta{
    margin-top:18px
}

.ct-pricing__ctaCard{
    border-radius:var(--ct-radius-md);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.55);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:18px;
    text-align:center;
}
.ct-pricing__ctaCard h3{
    margin:0 0 6px;
    font-weight:950;
    letter-spacing:-.3px
}
.ct-pricing__ctaCard p{
    margin:0 0 12px;
    color:rgba(31,41,55,.68);
    font-weight:650
}

@media (max-width:1020px){
    .ct-plans{
        grid-template-columns:1fr
    }
    .ct-compare__table{
        min-width:0
    }
}

/* ===== FAQ ===== */
.ct-faqHero{
    padding:36px 0 12px
}
.ct-faqHero__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px
}

.ct-faqHero__card{
    border-radius:var(--ct-radius-lg);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.50);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:26px 26px 22px;
}

.ct-faqHero__title{
    margin:0 0 8px;
    font-size:clamp(30px,3.2vw,44px);
    font-weight:950;
    letter-spacing:-.6px;
}

.ct-faqHero__sub{
    margin:0 0 14px;
    max-width:820px;
    color:rgba(31,41,55,.70);
    font-weight:650;
    line-height:1.65;
}

.ct-faqHero__search{
    margin-top:10px;
    display:grid;
    gap:8px
}

.ct-faqSearch{
    width:100%;
    max-width:520px;
    padding:12px 14px;
    border-radius:14px;
    border:1px solid rgba(20,30,40,.10);
    background:rgba(255,255,255,.70);
    outline:none;
    font-weight:750;
    color:rgba(31,41,55,.82);
}
.ct-faqSearch:focus{
    border-color:rgba(63,111,103,.28);
    box-shadow:0 0 0 4px rgba(63,111,103,.10);
}

.ct-faqHero__hint{
    color:rgba(31,41,55,.55);
    font-weight:650;
    font-size:13px
}

.ct-faq{
    padding:14px 0 80px
}
.ct-faq__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px
}

.ct-faq__grid{
    display:grid;
    grid-template-columns:.95fr 1.05fr;
    gap:16px;
    align-items:start;
}

.ct-faq__left{
    border-radius:var(--ct-radius-md);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.48);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:18px;
}

.ct-faq__kicker{
    margin:0 0 8px;
    font-size:16px;
    font-weight:950;
    letter-spacing:-.2px;
    color:rgba(31,41,55,.86)
}
.ct-faq__lead{
    margin:0 0 14px;
    color:rgba(31,41,55,.70);
    font-weight:650;
    line-height:1.65
}
.ct-faq__lead strong{
    color:rgba(31,41,55,.86);
    font-weight:900
}

.ct-faq__meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:12px 0 14px
}
.ct-faq__metaItem{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-radius:999px;
    border:1px solid rgba(20,30,40,.08);
    background:rgba(255,255,255,.55);
    color:rgba(31,41,55,.68);
    font-weight:850;
    font-size:13px;
}
.ct-faq__metaItem span{
    color:rgba(63,111,103,.95);
    font-weight:950
}

.ct-faq__cta{
    display:flex;
    flex-wrap:wrap;
    gap:10px
}

.ct-faq__right{
    display:grid;
    gap:12px
}

.ct-acc{
    border-radius:var(--ct-radius-sm);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.52);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    overflow:hidden;
}

.ct-acc__btn{
    width:100%;
    text-align:left;
    border:0;
    background:transparent;
    padding:14px;
    cursor:pointer;
    font-weight:950;
    letter-spacing:-.15px;
    color:rgba(31,41,55,.86);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.ct-acc__btn:hover{
    background:rgba(255,255,255,.45)
}

.ct-acc__panel{
    padding:0 14px 14px;
    color:rgba(31,41,55,.70);
    font-weight:650;
    line-height:1.65;
}
.ct-acc__panel p{
    margin:10px 0 0
}

.ct-acc__chev{
    width:10px;
    height:10px;
    border-right:2px solid rgba(31,41,55,.55);
    border-bottom:2px solid rgba(31,41,55,.55);
    transform:rotate(45deg);
    transition:transform .14s ease;
    flex:0 0 auto;
}
.ct-acc__btn[aria-expanded="true"] .ct-acc__chev{
    transform:rotate(-135deg)
}

@media (max-width:980px){
    .ct-faq__grid{
        grid-template-columns:1fr
    }
}

/* ===== Fonctionnement ===== */
.ct-howHero{
    padding:36px 0 12px
}
.ct-howHero__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px
}

.ct-howHero__card{
    border-radius:var(--ct-radius-lg);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.50);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:26px 26px 22px;
}

.ct-howHero__title{
    margin:0 0 8px;
    font-size:clamp(30px,3.2vw,44px);
    font-weight:950;
    letter-spacing:-.6px;
}

.ct-howHero__sub{
    margin:0 0 14px;
    max-width:860px;
    color:rgba(31,41,55,.70);
    font-weight:650;
    line-height:1.65;
}

.ct-howHero__actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin:10px 0 10px
}
.ct-howHero__badges{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:10px
}

.ct-howBadge{
    padding:8px 12px;
    border-radius:999px;
    border:1px solid rgba(20,30,40,.08);
    background:rgba(255,255,255,.55);
    color:rgba(31,41,55,.68);
    font-weight:850;
    font-size:13px;
}

.ct-how{
    padding:14px 0 80px
}
.ct-how__inner{
    max-width:1120px;
    margin:0 auto;
    padding:0 18px
}

.ct-howSteps{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
    margin-top:16px;
}

.ct-howStep{
    border-radius:20px;
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.52);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:16px;
}

.ct-howStep__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
}

.ct-howStep__num{
    width:34px;
    height:34px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:rgba(63,111,103,.12);
    color:rgba(63,111,103,.95);
    font-weight:950;
}

.ct-howStep__pill{
    padding:7px 10px;
    border-radius:999px;
    border:1px solid rgba(20,30,40,.08);
    background:rgba(255,255,255,.55);
    color:rgba(31,41,55,.68);
    font-weight:850;
    font-size:12.5px;
}

.ct-howStep__title{
    margin:0 0 8px;
    font-weight:950;
    letter-spacing:-.2px;
    font-size:15.5px
}

.ct-howStep__text{
    margin:0;
    color:rgba(31,41,55,.70);
    font-weight:650;
    line-height:1.6;
    font-size:13.6px;
}

.ct-howExplain{
    margin-top:14px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}

.ct-howCard{
    border-radius:var(--ct-radius-md);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.48);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:18px;
}

.ct-howCard__title{
    margin:0 0 8px;
    font-weight:950;
    letter-spacing:-.2px
}
.ct-howCard__text{
    margin:0;
    color:rgba(31,41,55,.70);
    font-weight:650;
    line-height:1.65
}

.ct-howCTA{
    margin-top:16px
}

.ct-howCTA__card{
    border-radius:var(--ct-radius-md);
    border:1px solid var(--ct-border-soft);
    background:rgba(255,255,255,.55);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:18px;
    text-align:center;
}
.ct-howCTA__card h3{
    margin:0 0 6px;
    font-weight:950;
    letter-spacing:-.3px
}
.ct-howCTA__card p{
    margin:0 0 12px;
    color:rgba(31,41,55,.68);
    font-weight:650
}

@media (max-width:1020px){
    .ct-howSteps{
        grid-template-columns:1fr 1fr
    }
    .ct-howExplain{
        grid-template-columns:1fr
    }
}
@media (max-width:560px){
    .ct-howSteps{
        grid-template-columns:1fr
    }
}

/* ===== Pricing sections head ===== */
.ct-pricing__sectionHead{
    margin: 8px 0 10px;
}
.ct-pricing__sectionHead--spaced{
    margin-top: 26px;
}
.ct-pricing__sectionTitle{
    margin: 0 0 6px;
    font-weight: 950;
    letter-spacing: -0.35px;
    font-size: clamp(20px, 2.2vw, 28px);
}
.ct-pricing__sectionSub{
    margin: 0;
    color: rgba(31,41,55,.70);
    font-weight: 650;
    line-height: 1.65;
    max-width: 860px;
}
.ct-pricing__fineprint{
    margin: 10px 2px 0;
    color: rgba(31,41,55,.58);
    font-weight: 650;
    font-size: 13px;
}

/* plan footnote */
.ct-plan__footnote{
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.55);
    color: rgba(31,41,55,.70);
    font-weight: 750;
    font-size: 13px;
}

/* ===== Certificates cards ===== */
.ct-certGrid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 14px;
}
.ct-cert{
    border-radius: var(--ct-radius-md);
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.52);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 18px;
    display:flex;
    flex-direction:column;
    gap: 12px;
}
.ct-cert--featured{
    border-color: rgba(63,111,103,.22);
    background: rgba(255,255,255,.58);
}
.ct-cert__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap: 12px;
}
.ct-cert__name{
    font-weight: 950;
    letter-spacing: -0.2px;
    font-size: 16px;
}
.ct-cert__kicker{
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.55);
    color: rgba(31,41,55,.70);
    font-weight: 850;
    font-size: 12.5px;
}
.ct-cert__list{
    list-style:none;
    padding:0;
    margin:0;
    display:grid;
    gap: 9px;
    color: rgba(31,41,55,.70);
    font-weight: 700;
    font-size: 13.5px;
}
.ct-cert__list li{
    padding-left: 18px;
    position: relative;
}
.ct-cert__list li::before{
    content:"✓";
    position:absolute;
    left:0;
    top:0;
    color: rgba(63,111,103,.90);
    font-weight: 900;
}
.ct-cert__priceLine{
    margin-top: auto;
    display:flex;
    align-items: baseline;
    justify-content:space-between;
    gap: 12px;
    padding-top: 10px;
    border-top: 1px solid rgba(20,30,40,.06);
}
.ct-cert__price{
    font-weight: 950;
    letter-spacing: -0.3px;
    font-size: 22px;
}
.ct-cert__muted{
    color: rgba(31,41,55,.60);
    font-weight: 750;
    font-size: 13px;
}

/* ===== Calculator ===== */
.ct-calc{
    padding: 18px 0 18px;
}
.ct-calc__inner{
    border-radius: var(--ct-radius-lg);
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 18px;
    margin-top: 18px;
}
.ct-calc__head{
    margin-bottom: 10px;
}
.ct-calc__title{
    margin: 0 0 6px;
    font-weight: 950;
    letter-spacing: -0.35px;
    font-size: clamp(20px, 2.2vw, 28px);
}
.ct-calc__sub{
    margin: 0;
    color: rgba(31,41,55,.70);
    font-weight: 650;
    line-height: 1.65;
    max-width: 860px;
}
.ct-calc__grid{
    margin-top: 12px;
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: stretch;
}
.ct-calc__panel{
    border-radius: var(--ct-radius-md);
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.48);
    padding: 16px;
}
.ct-calc__label{
    display:block;
    font-weight: 900;
    color: rgba(31,41,55,.82);
    margin-bottom: 8px;
}
.ct-calc__row{
    display:flex;
    align-items:center;
    gap: 10px;
}
.ct-calc__input{
    width: 100%;
    padding: 12px 12px;
    border-radius: 14px;
    border: 1px solid rgba(20,30,40,.10);
    background: rgba(255,255,255,.70);
    outline: none;
    font-weight: 850;
    color: rgba(31,41,55,.82);
}
.ct-calc__input:focus{
    border-color: rgba(63,111,103,.28);
    box-shadow: 0 0 0 4px rgba(63,111,103,.10);
}
.ct-calc__suffix{
    font-weight: 900;
    color: rgba(31,41,55,.65);
    white-space: nowrap;
}
.ct-calc__range{
    margin-top: 12px;
}
.ct-calc__range input[type="range"]{
    width: 100%;
}
.ct-calc__rangeMeta{
    display:flex;
    justify-content:space-between;
    color: rgba(31,41,55,.55);
    font-weight: 650;
    font-size: 12.5px;
    margin-top: 6px;
}
.ct-calc__choices{
    margin-top: 12px;
    display:grid;
    gap: 10px;
}
.ct-choice{
    display:flex;
    gap: 10px;
    align-items:center;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.55);
    cursor:pointer;
}
.ct-choice input{
    accent-color: var(--ct-primary);
}
.ct-choice span{
    display:flex;
    flex-direction:column;
    gap: 2px;
}
.ct-choice strong{
    font-weight: 950;
}
.ct-choice em{
    font-style: normal;
    color: rgba(31,41,55,.62);
    font-weight: 700;
    font-size: 12.8px;
}
.ct-calc__hint{
    margin: 12px 0 0;
    color: rgba(31,41,55,.58);
    font-weight: 650;
    font-size: 13px;
    line-height: 1.55;
}
.ct-calc__result{
    display:flex;
}
.ct-calc__card{
    width:100%;
    border-radius: var(--ct-radius-md);
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.50);
    padding: 16px;
    display:flex;
    flex-direction:column;
    gap: 12px;
}
.ct-calc__big{
    font-weight: 950;
    letter-spacing: -0.6px;
    font-size: clamp(32px, 4vw, 46px);
}
.ct-calc__small{
    color: rgba(31,41,55,.70);
    font-weight: 750;
}
.ct-calc__bullets{
    display:grid;
    gap: 8px;
    padding: 10px 0 4px;
    border-top: 1px solid rgba(20,30,40,.06);
}
.ct-calc__bullet{
    display:flex;
    align-items:center;
    gap: 10px;
    color: rgba(31,41,55,.72);
    font-weight: 700;
    font-size: 13.5px;
}
.ct-calc__bullet span{
    width: 22px;
    height: 22px;
    border-radius: 9px;
    display:grid;
    place-items:center;
    background: rgba(63,111,103,.12);
    color: rgba(63,111,103,.95);
    font-weight: 950;
}
.ct-calc__cta{
    display:flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: auto;
}
.ct-calc__fine{
    margin: 6px 0 0;
    color: rgba(31,41,55,.55);
    font-weight: 650;
    font-size: 12.8px;
    line-height: 1.55;
}

@media (max-width: 980px){
    .ct-certGrid{
        grid-template-columns: 1fr;
    }
    .ct-calc__grid{
        grid-template-columns: 1fr;
    }
}

.ct-pricing__compliance{
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.55);
    color: rgba(31,41,55,.70);
    font-weight: 650;
    line-height: 1.6;
}
.ct-pricing__compliance strong{
    color: rgba(31,41,55,.86);
    font-weight: 950;
}
.ct-footer__taglineSmall{
    font-size: 13px;
    color: rgba(31,41,55,.58);
    font-weight: 650;
}

.ct-header .ct-btn--ghost{
    padding: 9px 12px;
    border-radius: 12px;
    font-weight: 900;
}

/* ===== Verify mini (home) - CLEAN (FIX HEIGHT) ===== */
.ct-verifyMiniSection{
    padding: 8px 0 26px;
}

.ct-verifyMiniSection__inner{
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 18px;
}

/* ===== Wrapper : equal height (robuste) ===== */
.ct-verifyMiniSection__grid{
    display: flex;
    gap: 18px;
    align-items: stretch; /* même hauteur */
}

.ct-verifyMiniSection__grid > *{
    flex: 1 1 0;
    min-width: 0;
    align-self: stretch; /* force la même hauteur même si contenu "absolu" */
}

/* Mobile */
@media (max-width: 900px){
    .ct-verifyMiniSection__grid{
        flex-direction: column;
    }
}

/* ============ Left card (form) ============ */
.ct-verifyMini{
    /* annule les anciens max-width/margins */
    max-width: none;
    margin: 0;

    /* IMPORTANT : ne pas mettre height:100% */
    height: auto;

    border-radius: 22px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.50);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 18px 18px 16px;

    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ct-verifyMini__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap: 12px;
}

.ct-verifyMini__kicker{
    font-weight: 950;
    letter-spacing: -0.2px;
    font-size: 16px;
    color: rgba(31,41,55,.86);
}

.ct-verifyMini__sub{
    margin-top: 4px;
    color: rgba(31,41,55,.66);
    font-weight: 650;
    line-height: 1.5;
    font-size: 13.5px;
    max-width: 560px;
}

.ct-verifyMini__badge{
    padding: 8px 10px;
    border-radius: 999px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.62);
    color: rgba(31,41,55,.70);
    font-weight: 850;
    font-size: 12.5px;
    white-space: nowrap;
}

.ct-verifyMini__row{
    display:flex;
    gap: 12px;
    align-items: stretch;
}

.ct-verifyMini__input{
    flex: 1 1 auto;
    min-width: 0;
    height: 48px;
    padding: 0 14px;
    border-radius: 14px;
    border: 1px solid rgba(20,30,40,.12);
    background: rgba(255,255,255,.70);
    outline: none;
    font-weight: 750;
    color: rgba(31,41,55,.82);
}

.ct-verifyMini__input:focus{
    border-color: rgba(63,111,103,.28);
    box-shadow: 0 0 0 4px rgba(63,111,103,.10);
}

.ct-verifyMini__btn{
    height: 48px;
    padding: 0 16px;
    border-radius: 14px;
    white-space: nowrap;
}

.ct-verifyMini__hint{
    color: rgba(31,41,55,.58);
    font-weight: 650;
    font-size: 13px;
}

.ct-code{
    padding: 3px 8px;
    border-radius: 10px;
    border: 1px solid rgba(20,30,40,.10);
    background: rgba(255,255,255,.60);
    font-weight: 850;
    color: rgba(31,41,55,.78);
}

.ct-verifyMini__chips{
    display:flex;
    flex-wrap:wrap;
    gap: 8px;
}

.ct-chip{
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.55);
    color: rgba(31,41,55,.68);
    font-weight: 850;
    font-size: 12.5px;
}

.ct-verifyMini__what{
    border-top: 1px solid rgba(20,30,40,.06);
    padding-top: 10px;
}

.ct-verifyMini__whatTitle{
    font-weight: 950;
    letter-spacing: -0.15px;
    font-size: 13.5px;
    color: rgba(31,41,55,.82);
    margin-bottom: 6px;
}

.ct-verifyMini__list{
    margin: 0;
    padding-left: 18px;
    display:grid;
    gap: 6px;
    color: rgba(31,41,55,.66);
    font-weight: 650;
    font-size: 13.2px;
    line-height: 1.5;
}

/* ============ Right card (visual) ============ */
.ct-verifyVisual{
    /* IMPORTANT : ne pas mettre height:100% */
    height: auto;

    position: relative;
    overflow: hidden;

    border-radius: 22px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.38);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    /* évite qu’elle soit trop petite si contenu absolu + pills seulement */
    min-height: 260px;
}

.ct-verifyVisual__bg{
    position: absolute;
    inset: 0;
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
    filter: saturate(.95) contrast(.98);
    opacity: .28;
    transform: scale(1.03);
}

.ct-verifyVisual::before{
    content:"";
    position:absolute;
    inset:-20%;
    background:
        radial-gradient(520px 260px at 30% 35%, rgba(63,111,103,.18), transparent 60%),
        radial-gradient(520px 260px at 85% 70%, rgba(148,163,184,.22), transparent 60%),
        linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.18));
    filter: blur(18px);
    opacity: .95;
    pointer-events: none;
}

.ct-verifyVisual__pills{
    position: relative;
    z-index: 3;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    padding: 14px 14px 6px;
}

.ct-pill{
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(20,30,40,.10);
    background: rgba(255,255,255,.60);
    color: rgba(31,41,55,.72);
    font-weight: 850;
    font-size: 12.5px;
}

.ct-verifyVisual__net{
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    opacity: .95;
}

/* Stat bottom-right */
.ct-verifyVisual__stat{
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 4;

    padding: 10px 12px;
    border-radius: 16px;
    border: 1px solid rgba(20,30,40,.10);
    background: rgba(255,255,255,.62);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    display: grid;
    gap: 2px;
    text-align: right;
}

.ct-verifyVisual__statNum{
    font-weight: 950;
    font-size: 20px;
    letter-spacing: -0.4px;
    color: rgba(31,41,55,.86);
    line-height: 1;
}

.ct-verifyVisual__statLbl{
    font-weight: 850;
    font-size: 12.5px;
    color: rgba(31,41,55,.62);
}

/* Mobile */
@media (max-width: 900px){
    .ct-verifyVisual{
        min-height: 210px;
    }
}

@media (max-width: 720px){
    .ct-verifyMini__row{
        flex-direction: column;
        align-items: stretch;
    }
    .ct-verifyMini__btn{
        width: 100%;
    }
}

.ct-brand img {
    display:block;
    height: clamp(34px, 4vw, 65px);   /* monte automatiquement sans exploser */
    width: auto;
    max-width: min(360px, 46vw);
    object-fit: contain;
    object-position: left center;
}

.ct-stakeholders {
    padding: 64px 0;
}
.ct-stakeholders__inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 16px;
}

.ct-stakeholders__head {
    margin-bottom: 24px;
}
.ct-sectionTitle {
    font-size: 32px;
    margin: 0 0 8px;
}
.ct-sectionLead {
    margin: 0;
    opacity: .85;
}

.ct-stakeholdersGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.ct-stakeCard {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 16px;
    padding: 18px;
}

.ct-stakeCard__top {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
}
.ct-stakeCard__pill {
    font-size: 13px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(0,0,0,.05);
}

.ct-stakeCard__title {
    margin: 0 0 10px;
    font-size: 18px;
}
.ct-stakeCard__list {
    margin: 0;
    padding-left: 18px;
}
.ct-stakeCard__list li {
    margin: 6px 0;
}

.ct-stakeholders__note {
    margin-top: 18px;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(0,0,0,.04);
}

@media (max-width: 900px) {
    .ct-stakeholdersGrid {
        grid-template-columns: 1fr;
    }
}

.ct-integrity {
}
.ct-integrity__inner {
    max-width: 1100px;
    margin: 0 auto;
}
.ct-integrity__card {
    border-radius: 18px;
    padding: 28px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
}
.ct-integrity__title {
    margin: 0 0 10px;
}
.ct-integrity__lead {
    margin: 0 0 18px;
    opacity: .9;
}

.ct-integrity__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 16px;
}
.ct-integrity__box {
    border-radius: 14px;
    padding: 16px;
    background: rgba(0,0,0,.03);
}
.ct-integrity__box--alert {
    background: rgba(255,0,0,.05);
}

.ct-integrity__box h3 {
    margin: 0 0 10px;
}
.ct-integrity__box ul {
    margin: 0;
    padding-left: 18px;
}
.ct-integrity__hint {
    margin-top: 10px;
    font-size: .95em;
    opacity: .85;
}
.ct-integrity__footer {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid rgba(0,0,0,.08);
}

@media (max-width: 820px) {
    .ct-integrity__grid {
        grid-template-columns: 1fr;
    }
}
/* =========================
   AUTH (inscription / connexion)
   ========================= */
.ct-auth{
    padding: 34px 0 70px;
}

.ct-auth__inner{
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 18px;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 22px;
    align-items: start;
}

.ct-auth__title{
    margin: 0 0 12px;
    font-size: clamp(34px, 4vw, 54px);
    line-height: 1.06;
    letter-spacing: -0.9px;
    font-weight: 950;
}
.ct-auth__title span{
    color: rgba(31,41,55,.55);
    font-weight: 900;
}

.ct-auth__lead{
    margin: 0 0 14px;
    max-width: 560px;
    font-size: 17.5px;
    line-height: 1.65;
    color: rgba(31,41,55,.68);
    font-weight: 650;
}
.ct-auth__lead strong{
    color: var(--ct-text);
    font-weight: 900;
}

.ct-auth__chips{
    display:flex;
    flex-wrap:wrap;
    gap: 8px;
    margin: 12px 0 16px;
}

.ct-auth__miniCards{
    display: grid;
    gap: 10px;
    margin-top: 14px;
    max-width: 560px;
}

.ct-authMini{
    display:flex;
    gap: 12px;
    align-items:flex-start;
    padding: 12px 12px;
    border-radius: 18px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.52);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.ct-authMini__icon{
    width: 36px;
    height: 36px;
    border-radius: 14px;
    display:grid;
    place-items:center;
    background: rgba(63,111,103,.12);
    color: rgba(63,111,103,.95);
    font-weight: 950;
    flex: 0 0 auto;
}

.ct-authMini__title{
    font-weight: 950;
    letter-spacing: -.2px;
}
.ct-authMini__text{
    margin-top: 2px;
    color: rgba(31,41,55,.65);
    font-weight: 650;
    font-size: 13.5px;
    line-height: 1.45;
}

.ct-auth__trust{
    margin-top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    border-radius: 12px;
    border: 1px solid rgba(20,30,40,.10);
    background: rgba(255,255,255,.62);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* Card form */
.ct-authCard{
    border-radius: var(--ct-radius-lg);
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: var(--ct-shadow-soft);
    padding: 18px;
}

.ct-authCard__kicker{
    font-weight: 900;
    color: rgba(31,41,55,.65);
    font-size: 12.5px;
    letter-spacing: .2px;
}
.ct-authCard__title{
    margin: 8px 0 6px;
    font-size: 22px;
    font-weight: 950;
    letter-spacing: -.25px;
}
.ct-authCard__sub{
    margin: 0 0 12px;
    color: rgba(31,41,55,.68);
    font-weight: 650;
    line-height: 1.55;
    font-size: 13.5px;
}

.ct-authForm{
    display: grid;
    gap: 12px;
}

.ct-field{
    display:grid;
    gap: 7px;
}
.ct-label{
    font-weight: 900;
    color: rgba(31,41,55,.82);
    font-size: 13.5px;
}
.ct-muted{
    color: rgba(31,41,55,.55);
    font-weight: 800;
}

.ct-input{
    width: 100%;
    height: 46px;
    padding: 0 12px;
    border-radius: 14px;
    border: 1px solid rgba(20,30,40,.10);
    background: rgba(255,255,255,.72);
    outline: none;
    font-weight: 800;
    color: rgba(31,41,55,.82);
}
.ct-input:focus{
    border-color: rgba(63,111,103,.28);
    box-shadow: 0 0 0 4px rgba(63,111,103,.10);
}

.ct-help{
    color: rgba(31,41,55,.55);
    font-weight: 650;
    font-size: 12.5px;
    margin-top: -2px;
}

.ct-grid2{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.ct-check{
    display:flex;
    gap: 10px;
    align-items:flex-start;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.55);
    font-weight: 700;
    color: rgba(31,41,55,.72);
    font-size: 13.2px;
    line-height: 1.45;
}
.ct-check input{
    accent-color: var(--ct-primary);
    margin-top: 2px;
}

.ct-authActions{
    display:flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.ct-authFoot{
    color: rgba(31,41,55,.58);
    font-weight: 650;
    font-size: 12.8px;
    line-height: 1.45;
    margin-top: 2px;
}

.ct-authAlert{
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(20,30,40,.08);
    background: rgba(255,255,255,.60);
    font-weight: 750;
    font-size: 13px;
    margin: 8px 0 10px;
}
.ct-authAlert--error{
    border-color: rgba(239,68,68,.25);
    background: rgba(239,68,68,.06);
    color: rgba(185,28,28,.95);
}
.ct-authAlert--success{
    border-color: rgba(34,197,94,.22);
    background: rgba(34,197,94,.08);
    color: rgba(21,128,61,.95);
}

@media (max-width: 980px){
    .ct-auth__inner{
        grid-template-columns: 1fr;
    }
}
@media (max-width: 560px){
    .ct-grid2{
        grid-template-columns: 1fr;
    }
}

/* =========================
   FIX: overflow champs + liens bleus
   ========================= */

/* 1) Fondamentaux */
*, *::before, *::after {
    box-sizing: border-box;
}

/* 2) Dans une grid, autoriser le shrink */
.ct-auth__inner,
.ct-auth__right,
.ct-authCard,
.ct-authForm,
.ct-field,
.ct-grid2 {
    min-width: 0;
}

/* 3) Inputs: garantir largeur réelle dans la card */
.ct-input{
    width: 100%;
    max-width: 100%;
    display: block;
}

/* 4) Checkbox row: empêcher la ligne de pousser hors cadre */
.ct-check{
    max-width: 100%;
}
.ct-check span{
    min-width: 0;
    overflow-wrap: anywhere;      /* évite les “mots”/URLs qui font déborder */
    word-break: break-word;
}

/* 5) Liens: pas de bleu, style “produit” */
.ct-auth a,
.ct-check a{
    color: var(--ct-primary);
    font-weight: 900;
    text-decoration: none;
    border-bottom: 1px solid rgba(63,111,103,.28);
}
.ct-auth a:hover,
.ct-check a:hover{
    color: var(--ct-primary-2);
    border-bottom-color: rgba(63,111,103,.55);
}

/* 6) Petites finitions (optionnel mais améliore le rendu) */
.ct-authCard{
    overflow: hidden; /* stoppe les micro débordements (focus ring etc.) */
}
.ct-authForm{
    gap: 11px;
} /* un peu plus compact */
.ct-label{
    letter-spacing: -.1px;
}

/* Mobile: actions full width */
@media (max-width: 560px){
    .ct-authActions > *{
        width: 100%;
    }
}
/* Hide native input, keep accessible via JS */
.ct-fileInput{
    position:absolute;
    left:-9999px;
    width:1px;
    height:1px;
    overflow:hidden;
}

/* Dropzone */
.ct-dropzone{
    position:relative;
    display:flex;
    gap:14px;
    align-items:flex-start;
    padding:14px 14px;
    border:1.5px dashed rgba(17,24,39,.18);
    border-radius:14px;
    background:rgba(255,255,255,.75);
    box-shadow:0 1px 0 rgba(17,24,39,.04) inset;
    cursor:pointer;
    transition:transform .08s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease;
    outline:none;
}

.ct-dropzone:hover{
    border-color:rgba(0,94,255,.28);
    background:rgba(255,255,255,.9);
}

.ct-dropzone:focus-visible{
    box-shadow:0 0 0 4px rgba(0,94,255,.12);
    border-color:rgba(0,94,255,.35);
}

.ct-dropzone.is-dragover{
    border-color:rgba(0,94,255,.55);
    background:rgba(0,94,255,.06);
}

.ct-dropzone.is-ok{
    border-color:rgba(16,185,129,.55);
    background:rgba(16,185,129,.06);
}

.ct-dropzone.is-error{
    border-color:rgba(239,68,68,.55);
    background:rgba(239,68,68,.06);
}

.ct-dropzone__icon{
    width:40px;
    height:40px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(0,94,255,.08);
    color:var(--primary, #005eff);
    flex:0 0 auto;
    margin-top:2px;
}

.ct-dropzone.is-ok .ct-dropzone__icon{
    background:rgba(16,185,129,.10);
    color:#10b981;
}

.ct-dropzone.is-error .ct-dropzone__icon{
    background:rgba(239,68,68,.10);
    color:#ef4444;
}

.ct-dropzone__content{
    flex:1 1 auto;
    min-width:0;
}

.ct-dropzone__title{
    font-weight:700;
    color:var(--text-main, #1e2733);
    line-height:1.2;
    margin-bottom:4px;
}

.ct-dropzone__meta{
    font-size:.92rem;
    color:var(--text-muted, #6b7280);
    margin-bottom:10px;
}

.ct-dropzone__actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.ct-dropzone__filename{
    font-size:.92rem;
    color:var(--text-main, #1e2733);
    opacity:.85;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.ct-dropzone__clear{
    position:absolute;
    top:10px;
    right:10px;
    width:32px;
    height:32px;
    border-radius:10px;
    border:1px solid rgba(17,24,39,.12);
    background:rgba(255,255,255,.9);
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .08s ease, background .15s ease;
}

.ct-dropzone__clear:hover{
    background:#fff;
    transform:scale(1.03);
}

/* Error under field */
.ct-fieldError{
    margin-top:8px;
    padding:10px 12px;
    border-radius:12px;
    background:rgba(239,68,68,.08);
    border:1px solid rgba(239,68,68,.22);
    color:#b91c1c;
    font-size:.95rem;
}

/* Erreur KBIS: pas visible tant que pas soumis */
.ct-fieldError {
    display:none;
}

.ct-authForm.is-submitted #kbisError{
    display:block;
}

.ct-authForm.is-submitted .ct-dropzone.is-error{
    border-color:rgba(239,68,68,.55);
    background:rgba(239,68,68,.06);
}

/* Dropzone wrapper */
.ct-dropzone{
    position: relative;
    width: 100%;
    max-width: 100%;
    overflow: hidden;                 /* stoppe le débordement visuel */
    border-radius: 18px;
    border: 1px dashed rgba(20,30,40,.16);
    background: rgba(255,255,255,.55);
    padding: 14px;
}

/* Etat ok / erreur (optionnel) */
.ct-dropzone.is-ok{
    border-color: rgba(34,197,94,.45);
    background: rgba(34,197,94,.06);
}
.ct-authForm.is-submitted .ct-dropzone.is-error{
    border-color: rgba(239,68,68,.55);
    background: rgba(239,68,68,.06);
}

/* Grid interne : icône + contenu + actions */
.ct-dropzone__row{
    display:flex;
    gap: 12px;
    align-items:flex-start;
    min-width: 0;                     /* crucial */
}

/* Icon */
.ct-dropzone__icon{
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display:grid;
    place-items:center;
    background: rgba(63,111,103,.10);
    color: var(--ct-primary);
}

/* Content : doit pouvoir shrink */
.ct-dropzone__content{
    flex: 1 1 auto;
    min-width: 0;                     /* crucial */
}

/* Title / meta */
.ct-dropzone__title{
    margin: 0;
    font-weight: 950;
    letter-spacing: -.2px;
    font-size: 16px;
    line-height: 1.2;
}
.ct-dropzone__meta{
    margin: 4px 0 10px;
    color: rgba(31,41,55,.62);
    font-weight: 650;
    font-size: 13px;
    line-height: 1.45;
}

/* Actions (Parcourir) */
.ct-dropzone__actions{
    display:flex;
    gap: 10px;
    align-items:center;
    flex-wrap: wrap;
}

/* Filename : wrap + ellipsis propre (2 lignes max) */
.ct-dropzone__file{
    margin-top: 8px;
    font-weight: 750;
    color: rgba(31,41,55,.78);
    font-size: 13.5px;
    line-height: 1.35;

    display: -webkit-box;
    -webkit-line-clamp: 2;            /* 2 lignes max */
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

/* Bouton X : hors du flux, sans casser le contenu */
.ct-dropzone__clear{
    position:absolute;
    top: 10px;
    right: 10px;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    border: 1px solid rgba(20,30,40,.10);
    background: rgba(255,255,255,.70);
    display:grid;
    place-items:center;
    cursor:pointer;
}

.ct-dropzone__clear:hover{
    background: rgba(255,255,255,.90);
}

/* On réserve un peu de place à droite pour éviter que le texte passe sous le X */
.ct-dropzone{
    padding-right: 54px;              /* 34 + marges */
}

/* Mobile : évite la sensation “écrasée” */
@media (max-width: 520px){
    .ct-dropzone{
        padding: 12px;
        padding-right: 52px;
    }
    .ct-dropzone__icon{
        width: 40px;
        height: 40px;
        border-radius: 13px;
    }
}

.ct-field--withEye {
    position: relative;
}

/* INPUT */
.ct-field--withEye .ct-input {
    padding-right: 48px;
}

/* BOUTON OEIL */
.ct-eyeToggle {
    position: absolute;
    right: 14px;

    /* 👇 clé du problème */
    top: calc(50%);

    width: 32px;
    height: 32px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 0;
    background: transparent;
    cursor: pointer;

    color: rgba(31, 41, 55, .55);
    transition: color .15s ease;
}

.ct-eyeToggle:hover {
    color: rgba(31, 41, 55, .85);
}

.ct-eyeIcon {
    width: 20px;
    height: 20px;
    display: block;
}

.ct-input.is-invalid {
    border-color: rgba(239,68,68,.6);
}
.ct-field.has-error .ct-fieldError {
    color: #b91c1c;
}

.ct-btn{
    cursor:pointer;
}
/* Capitalize "Prénom Nom", etc. (visuel uniquement) */
input[type="text"],
input[type="search"],
textarea {
    text-transform: capitalize;
}

/* Exceptions */
input[type="email"] {
    text-transform: none;
}

/* Optionnel : ne touche pas aux champs "techniques" */
input[type="password"],
input[type="tel"],
input[type="number"],
input[type="url"],
#password,#password2{
    text-transform: none;
}
/* OTP layout */
.ct-otp{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
}
.ct-otp__box{
  width:48px;
  height:52px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  text-align:center;
  font-size:20px;
  font-weight:700;
  outline:none;
  box-shadow:0 1px 0 rgba(0,0,0,.03);
}
.ct-otp__box:focus{
  border-color:rgba(0,94,255,.45);
  box-shadow:0 0 0 4px rgba(0,94,255,.12);
}
.ct-otp__box.is-invalid{
  border-color:rgba(239,68,68,.75);
  box-shadow:0 0 0 4px rgba(239,68,68,.12);
}
.ct-fieldError{
  margin-top:8px;
  color:#b91c1c;
  font-size:13px;
}

.ct-field { position: relative; }

.ct-field--withEye .ct-input {
  padding-right: 48px; /* place pour le bouton */
}

.ct-eyeToggle{
  position: absolute;
  right: 5px;
  top: 68%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  cursor: pointer;
  z-index: 2;
}

.ct-eyeIcon { width: 22px; height: 22px; }
