/* =========================================================
   AC Prévoyance — Design System
   Palette : bleu marine, bleu royal, crème, glacier
   Typo    : Fraunces (display) + Manrope (body)
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Manrope:wght@300;400;500;600;700&display=swap');

:root{
    /* Couleurs — extraites du logo AC Prévoyance */
    --navy:        #003466;   /* bleu marine du 'a' */
    --navy-deep:   #00264D;
    --royal:       #0099CB;   /* cyan du 'C' — accent principal */
    --royal-soft:  #27B1DE;
    --ice:         #E4EDEF;   /* variante plus sombre du bg */
    --ice-deep:    #D2DFE3;
    --cream:       #f0f5f6;   /* fond global demandé */
    --cream-warm:  #E9EFF1;
    --ink:         #0C1F36;
    --ink-soft:    #3B4A63;
    --muted:       #6E7A90;
    --line:        #DCE3E7;
    --gold:        #0099CB;   /* alias vers le cyan (conserve les anciennes classes) */
    --success:     #1F8A5C;
    --danger:      #C8334B;

    /* Typographie */
    --ff-display: 'Fraunces', 'Playfair Display', Georgia, serif;
    --ff-body:    'Manrope', 'Helvetica Neue', Arial, sans-serif;

    /* Espaces */
    --container: 1240px;
    --radius-sm: 6px;
    --radius:    14px;
    --radius-lg: 22px;

    /* Ombres */
    --shadow-sm: 0 1px 3px rgba(0,52,102,.06), 0 1px 2px rgba(0,52,102,.04);
    --shadow:    0 8px 24px rgba(0,52,102,.08), 0 2px 6px rgba(0,52,102,.04);
    --shadow-lg: 0 24px 60px rgba(0,52,102,.14);
}

/* ---------- Reset léger ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
    font-family:var(--ff-body);
    color:var(--ink);
    background:var(--cream);
    line-height:1.6;
    font-size:16px;
    font-weight:400;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .2s ease}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul{list-style:none}

/* ---------- Typographie ---------- */
h1,h2,h3,h4{
    font-family:var(--ff-display);
    font-weight:500;
    color:var(--navy);
    line-height:1.15;
    letter-spacing:-0.02em;
}
h1{font-size:clamp(2.4rem, 4.8vw, 4rem);font-weight:500}
h2{font-size:clamp(1.9rem, 3.4vw, 2.8rem)}
h3{font-size:clamp(1.25rem, 1.8vw, 1.55rem);font-weight:600}
h4{font-size:1.1rem;font-weight:600}
p{color:var(--ink-soft)}
.eyebrow{
    font-family:var(--ff-body);
    font-size:.78rem;
    font-weight:600;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--royal);
    display:inline-block;
    margin-bottom:1rem;
}
.eyebrow::before{
    content:"";display:inline-block;width:24px;height:1px;
    background:var(--royal);vertical-align:middle;margin-right:10px;
}

/* ---------- Conteneur ---------- */
.container{
    width:100%;max-width:var(--container);
    margin:0 auto;padding:0 24px;
}

/* =========================================================
   HEADER / NAV
   ========================================================= */
.site-header{
    position:sticky;top:0;z-index:100;
    background:rgba(251,249,244,.88);
    backdrop-filter:saturate(180%) blur(14px);
    -webkit-backdrop-filter:saturate(180%) blur(14px);
    border-bottom:1px solid transparent;
    transition:border-color .3s ease, background .3s ease;
}
.site-header.scrolled{
    border-bottom-color:var(--line);
    background:rgba(251,249,244,.96);
}
.nav-wrap{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 24px;max-width:var(--container);margin:0 auto;gap:24px;
}
.nav-logo img{height:54px;width:auto;display:block}
.nav-menu{display:flex;gap:4px;align-items:center}
.nav-item{position:relative}
.nav-link{
    padding:10px 14px;font-weight:500;font-size:.94rem;
    color:var(--navy);border-radius:8px;transition:all .2s ease;
    display:inline-flex;align-items:center;gap:6px;
}
.nav-link:hover{background:var(--ice);color:var(--royal)}
.nav-link .caret{width:10px;height:10px;transition:transform .2s ease}
.nav-item:hover .caret{transform:rotate(180deg)}

/* Dropdown */
.nav-dropdown{
    position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(6px);
    background:#fff;min-width:540px;padding:22px;border-radius:var(--radius);
    box-shadow:var(--shadow-lg);border:1px solid var(--line);
    opacity:0;visibility:hidden;transition:all .25s ease;
    display:grid;grid-template-columns:1fr 1fr;gap:6px;
}
.nav-dropdown-4col{
    min-width:1040px;grid-template-columns:repeat(4, 1fr);gap:12px;padding:26px;
}
.nav-item:hover .nav-dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dropdown-col h4{
    font-family:var(--ff-body);font-size:.7rem;letter-spacing:.18em;
    text-transform:uppercase;color:var(--muted);font-weight:600;
    margin:8px 10px 8px;
}
.dropdown-link{
    display:flex;gap:12px;align-items:flex-start;padding:10px;
    border-radius:8px;transition:background .18s ease;
}
.dropdown-link:hover{background:var(--ice)}
.dropdown-link .ic{
    flex:0 0 32px;height:32px;border-radius:8px;background:var(--ice);
    display:flex;align-items:center;justify-content:center;color:var(--royal);
}
.dropdown-link .tx{display:flex;flex-direction:column}
.dropdown-link .tx strong{font-size:.92rem;color:var(--navy);font-weight:600}
.dropdown-link .tx span{font-size:.8rem;color:var(--muted)}

.nav-cta{
    background:var(--navy);color:var(--cream);
    padding:12px 22px;border-radius:999px;font-weight:600;font-size:.9rem;
    transition:all .2s ease;display:inline-flex;align-items:center;gap:8px;
}
.nav-cta:hover{background:var(--royal);transform:translateY(-1px)}

/* Burger mobile */
.nav-burger{display:none;width:40px;height:40px;border-radius:8px;background:var(--ice)}
.nav-burger span{display:block;width:18px;height:2px;background:var(--navy);margin:3px auto;transition:.2s}

/* =========================================================
   HERO
   ========================================================= */
.hero{
    position:relative;overflow:hidden;
    padding:90px 0 120px;
    background:
        radial-gradient(ellipse 800px 400px at 85% 20%, rgba(0,153,203,.08), transparent 60%),
        radial-gradient(ellipse 600px 300px at 10% 90%, rgba(201,164,73,.05), transparent 60%),
        var(--cream);
}
.hero::before{
    content:"";position:absolute;inset:0;opacity:.4;pointer-events:none;
    background-image:
        linear-gradient(var(--line) 1px, transparent 1px),
        linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:60px 60px;
    mask-image:radial-gradient(ellipse 60% 60% at 50% 40%, black, transparent);
    -webkit-mask-image:radial-gradient(ellipse 60% 60% at 50% 40%, black, transparent);
}
.hero-grid{
    position:relative;display:grid;grid-template-columns:1.1fr 1fr;
    gap:60px;align-items:center;
}
.hero h1{margin-bottom:1.4rem}
.hero h1 em{
    font-style:italic;font-family:var(--ff-display);font-weight:400;
    color:var(--royal);
}
.hero-lead{font-size:1.15rem;color:var(--ink-soft);margin-bottom:2rem;max-width:540px}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:2.5rem}
.btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 26px;border-radius:999px;font-weight:600;font-size:.95rem;
    transition:all .25s ease;white-space:nowrap;
}
.btn-primary{background:var(--navy);color:var(--cream)}
.btn-primary:hover{background:var(--royal);transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-ghost{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}
.btn-ghost:hover{background:var(--navy);color:var(--cream)}
.btn-link{
    color:var(--royal);font-weight:600;font-size:.95rem;
    display:inline-flex;gap:6px;align-items:center;
}
.btn-link::after{content:"→";transition:transform .2s ease}
.btn-link:hover::after{transform:translateX(4px)}

.hero-trust{
    display:flex;gap:28px;flex-wrap:wrap;padding-top:1.5rem;
    border-top:1px solid var(--line);
}
.trust-item{display:flex;align-items:center;gap:10px}
.trust-item strong{display:block;color:var(--navy);font-family:var(--ff-display);font-size:1.4rem;line-height:1}
.trust-item span{font-size:.82rem;color:var(--muted)}

/* Hero visual — composition SVG */
.hero-visual{position:relative;aspect-ratio:1/1.05;max-width:500px;margin-left:auto;border-radius:var(--radius-lg);overflow:visible}
.hero-visual img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.hero-visual svg{width:100%;height:100%;filter:drop-shadow(0 20px 40px rgba(0,52,102,.15))}
.hero-badges{position:absolute;display:flex;gap:10px}
.hero-badge{
    background:#fff;padding:10px 16px;border-radius:999px;
    box-shadow:var(--shadow);font-size:.82rem;font-weight:600;color:var(--navy);
    display:inline-flex;gap:8px;align-items:center;
    animation:floaty 4s ease-in-out infinite;
}
.hero-badge svg{width:16px;height:16px;color:var(--royal)}
.hero-badge.b1{top:8%;left:-5%}
.hero-badge.b2{bottom:15%;right:-3%;animation-delay:-2s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* =========================================================
   SECTIONS GÉNÉRIQUES
   ========================================================= */
section{padding:90px 0}
.section-head{max-width:740px;margin:0 auto 56px;text-align:center}
.section-head.left{margin-left:0;text-align:left}
.section-head p{margin-top:1rem;font-size:1.05rem}

/* =========================================================
   SOLUTIONS — Grille principale
   ========================================================= */
.solutions{background:var(--cream)}
.sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.sol-card{
    position:relative;background:#fff;border:1px solid var(--line);
    border-radius:var(--radius-lg);padding:32px;overflow:hidden;
    transition:all .3s ease;
}
.sol-card::before{
    content:"";position:absolute;inset:0;
    background:linear-gradient(135deg, var(--ice) 0%, transparent 60%);
    opacity:0;transition:opacity .3s ease;pointer-events:none;
}
.sol-card:hover{transform:translateY(-4px);border-color:var(--royal);box-shadow:var(--shadow-lg)}
.sol-card:hover::before{opacity:1}
.sol-card > *{position:relative}
.sol-icon{
    width:56px;height:56px;border-radius:14px;
    background:var(--navy);color:var(--cream);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:22px;transition:all .3s ease;
}
.sol-card:hover .sol-icon{background:var(--royal);transform:rotate(-6deg) scale(1.05)}
.sol-card h3{margin-bottom:10px;font-family:var(--ff-display);font-size:1.35rem}
.sol-card p{font-size:.95rem;margin-bottom:18px}
.sol-card ul{margin-bottom:24px}
.sol-card ul li{
    font-size:.88rem;color:var(--ink-soft);padding:6px 0 6px 22px;position:relative;
}
.sol-card ul li::before{
    content:"";position:absolute;left:0;top:13px;width:12px;height:1px;
    background:var(--royal);
}

/* =========================================================
   APPROCHE / MÉTHODE
   ========================================================= */
.method{background:linear-gradient(180deg, var(--cream) 0%, var(--ice) 100%)}
.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:step}
.step{position:relative;counter-increment:step}
.step::before{
    content:"0" counter(step);
    font-family:var(--ff-display);font-size:3rem;color:var(--royal);opacity:.25;
    display:block;line-height:1;margin-bottom:12px;font-weight:500;
}
.step h3{font-size:1.2rem;margin-bottom:8px}
.step p{font-size:.92rem}

/* =========================================================
   CHIFFRES / PREUVES
   ========================================================= */
.proof{
    background:var(--navy);color:var(--cream);
    position:relative;overflow:hidden;
}
.proof::before{
    content:"";position:absolute;inset:0;
    background:
        radial-gradient(ellipse 500px 300px at 20% 30%, rgba(0,153,203,.3), transparent 70%),
        radial-gradient(ellipse 400px 250px at 80% 70%, rgba(201,164,73,.1), transparent 70%);
    pointer-events:none;
}
.proof h2{color:var(--cream)}
.proof p{color:rgba(251,249,244,.7)}
.proof-grid{
    position:relative;display:grid;grid-template-columns:repeat(4,1fr);
    gap:40px;margin-top:56px;
}
.stat{border-left:1px solid rgba(251,249,244,.15);padding-left:24px}
.stat-num{
    font-family:var(--ff-display);font-size:clamp(2.4rem,4vw,3.4rem);
    font-weight:500;color:var(--cream);line-height:1;
    display:flex;align-items:baseline;gap:4px;
}
.stat-num sup{font-size:.6em;color:var(--gold);font-weight:400}
.stat-label{font-size:.88rem;color:rgba(251,249,244,.65);margin-top:8px;letter-spacing:.02em}

/* =========================================================
   TÉMOIGNAGES
   ========================================================= */
.testimonials{background:var(--cream)}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.testi{
    background:#fff;border:1px solid var(--line);
    border-radius:var(--radius-lg);padding:30px;
    display:flex;flex-direction:column;gap:18px;
}
.testi-stars{color:var(--gold);font-size:.9rem;letter-spacing:2px}
.testi blockquote{
    font-family:var(--ff-display);font-size:1.08rem;line-height:1.5;
    color:var(--navy);font-weight:400;font-style:italic;
}
.testi-author{
    display:flex;gap:12px;align-items:center;margin-top:auto;padding-top:18px;
    border-top:1px solid var(--line);
}
.testi-avatar{
    width:44px;height:44px;border-radius:50%;
    background:var(--navy);color:var(--cream);
    display:flex;align-items:center;justify-content:center;
    font-weight:600;font-family:var(--ff-display);font-size:1.05rem;
}
.testi-info strong{display:block;font-size:.92rem;color:var(--navy);font-weight:600}
.testi-info span{font-size:.8rem;color:var(--muted)}

/* =========================================================
   CTA FINAL
   ========================================================= */
.cta-band{
    background:var(--navy);color:var(--cream);position:relative;overflow:hidden;
    padding:80px 0;
}
.cta-band::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(ellipse 600px 300px at 80% 50%, rgba(0,153,203,.35), transparent 70%);
}
.cta-wrap{
    position:relative;display:grid;grid-template-columns:1.5fr 1fr;
    gap:40px;align-items:center;
}
.cta-band h2{color:var(--cream);margin-bottom:1rem}
.cta-band p{color:rgba(251,249,244,.75);margin-bottom:0}
.cta-actions{display:flex;gap:14px;justify-content:flex-end;flex-wrap:wrap}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-gold:hover{background:#dcb75c;transform:translateY(-2px)}
.btn-outline-light{color:var(--cream);border:1.5px solid rgba(251,249,244,.3)}
.btn-outline-light:hover{background:rgba(251,249,244,.1)}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
    background:var(--navy-deep);color:rgba(251,249,244,.7);
    padding:70px 0 30px;font-size:.9rem;
}
.footer-grid{
    display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(251,249,244,.1);
}
.footer-logo img{height:68px;margin-bottom:18px;display:block}
.footer-about{max-width:320px;margin-bottom:20px;line-height:1.65}
.footer-social{display:flex;gap:10px}
.footer-social a{
    width:38px;height:38px;border-radius:50%;
    background:rgba(251,249,244,.08);color:var(--cream);
    display:flex;align-items:center;justify-content:center;
    transition:all .2s ease;
}
.footer-social a:hover{background:var(--royal);transform:translateY(-2px)}
.footer-col h4{
    color:var(--cream);font-family:var(--ff-body);font-size:.78rem;
    letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:20px;
}
.footer-col a{display:block;padding:6px 0;transition:color .18s ease}
.footer-col a:hover{color:var(--cream)}
.footer-contact-item{
    display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;line-height:1.5;
}
.footer-contact-item svg{flex-shrink:0;margin-top:3px;color:var(--royal)}
.footer-bottom{
    padding-top:28px;font-size:.82rem;
}
.footer-legal-info{
    border-top:1px solid rgba(240,245,246,.1);
    padding:18px 0 14px;margin-top:6px;
    font-size:.78rem;line-height:1.7;opacity:.65;
}
.footer-legal-info strong{color:var(--cream);font-weight:600}
.footer-legal-info a{color:var(--cream);text-decoration:underline;text-underline-offset:2px}
.footer-bottom-row{
    display:flex;justify-content:space-between;align-items:center;
    flex-wrap:wrap;gap:16px;padding-top:10px;
}
.footer-legal{display:flex;gap:20px;flex-wrap:wrap}
.footer-legal a:hover{color:var(--cream)}

/* =========== PARTNERS BAND =========== */
.partners-band{
    padding:80px 0 70px;
    background:linear-gradient(180deg, transparent 0%, rgba(0,52,102,.03) 50%, transparent 100%);
}
.partners-band .section-head{margin-bottom:40px}
.partners-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:18px;
    max-width:1000px;margin:0 auto;
}
.partner-card{
    background:#fff;
    border:1px solid rgba(0,52,102,.08);
    border-radius:12px;
    padding:24px 18px;
    min-height:88px;
    display:flex;align-items:center;justify-content:center;
    transition:all .3s ease;
    position:relative;
}
.partner-card:hover{
    border-color:var(--cyan);
    transform:translateY(-2px);
    box-shadow:0 12px 24px -8px rgba(0,52,102,.12);
}
.partner-card img{
    max-width:100%;max-height:46px;
    object-fit:contain;
    filter:grayscale(100%);
    opacity:.75;
    transition:all .3s ease;
}
.partner-card:hover img{filter:none;opacity:1}
.partner-name{
    font-family:var(--ff-display);
    font-size:1.15rem;
    font-weight:500;
    color:var(--navy);
    letter-spacing:.02em;
    text-align:center;
    line-height:1.15;
}
.partner-name small{
    display:block;
    font-family:var(--ff-body);
    font-size:.65rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--muted);
    margin-top:4px;
    font-weight:500;
}
@media (max-width:800px){
    .partners-grid{grid-template-columns:repeat(2, 1fr);gap:12px}
    .partner-card{padding:20px 14px;min-height:76px}
    .partner-name{font-size:1rem}
}

/* =========================================================
   PAGE INTERNE — PAGE ASSURANCE
   ========================================================= */
.breadcrumb{
    padding:18px 0;font-size:.85rem;color:var(--muted);
    border-bottom:1px solid var(--line);
}
.breadcrumb a{color:var(--muted);transition:color .18s}
.breadcrumb a:hover{color:var(--royal)}
.breadcrumb span{margin:0 8px;opacity:.5}

.page-hero{
    padding:70px 0 50px;
    background:linear-gradient(180deg, var(--ice) 0%, var(--cream) 100%);
    position:relative;overflow:hidden;
}
.page-hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:50px;align-items:center}
.page-hero h1{font-size:clamp(2rem, 3.8vw, 3.2rem);margin-bottom:1rem}
.page-hero-lead{font-size:1.1rem;color:var(--ink-soft);margin-bottom:1.8rem;max-width:540px}
.page-hero-visual{
    aspect-ratio:1/1;border-radius:var(--radius-lg);overflow:hidden;
    box-shadow:var(--shadow-lg);position:relative;
}

.content-block{padding:70px 0}
.content-grid{display:grid;grid-template-columns:1fr 340px;gap:60px;align-items:flex-start}
.content-main h2{margin:40px 0 18px;font-size:1.9rem}
.content-main h2:first-child{margin-top:0}
.content-main h3{margin:24px 0 10px;font-size:1.25rem}
.content-main p{margin-bottom:1rem;font-size:1rem;line-height:1.75}
.content-main ul{margin:14px 0 22px 0}
.content-main ul li{
    padding:8px 0 8px 28px;position:relative;color:var(--ink-soft);line-height:1.6;
}
.content-main ul li::before{
    content:"";position:absolute;left:0;top:16px;width:16px;height:2px;background:var(--royal);
}
.highlight-box{
    background:var(--ice);border-left:3px solid var(--royal);
    padding:24px 28px;border-radius:0 var(--radius) var(--radius) 0;
    margin:28px 0;
}
.highlight-box h4{color:var(--navy);margin-bottom:8px}
.highlight-box p{font-size:.95rem;margin:0}

.aside-card{
    background:var(--navy);color:var(--cream);
    border-radius:var(--radius-lg);padding:30px;position:sticky;top:110px;
}
.aside-card h3{color:var(--cream);margin-bottom:12px;font-size:1.2rem}
.aside-card p{color:rgba(251,249,244,.7);font-size:.92rem;margin-bottom:18px}
.aside-card .btn{width:100%;justify-content:center}
.aside-card ul{margin:16px 0}
.aside-card ul li{
    padding:8px 0 8px 26px;position:relative;font-size:.9rem;
    color:rgba(251,249,244,.85);
}
.aside-card ul li::before{
    content:"✓";position:absolute;left:0;color:var(--gold);font-weight:bold;
}

/* Tableau comparatif */
.compare-table{
    width:100%;border-collapse:separate;border-spacing:0;
    margin:30px 0;background:#fff;border-radius:var(--radius);
    overflow:hidden;box-shadow:var(--shadow-sm);
}
.compare-table th,.compare-table td{
    padding:16px 20px;text-align:left;border-bottom:1px solid var(--line);
    font-size:.94rem;
}
.compare-table th{
    background:var(--ice);color:var(--navy);font-weight:600;
    font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
}
.compare-table td:first-child{font-weight:600;color:var(--navy)}
.compare-table tr:last-child td{border-bottom:none}

/* FAQ Accordion */
.faq-item{
    border-bottom:1px solid var(--line);padding:22px 0;
}
.faq-q{
    display:flex;justify-content:space-between;align-items:center;
    width:100%;text-align:left;font-weight:600;color:var(--navy);
    font-size:1.05rem;font-family:var(--ff-display);
}
.faq-q::after{
    content:"+";font-size:1.6rem;color:var(--royal);transition:transform .2s ease;
    flex-shrink:0;margin-left:18px;line-height:1;
}
.faq-item[open] .faq-q::after{content:"−"}
.faq-a{padding-top:14px;color:var(--ink-soft);line-height:1.7;font-size:.97rem}

/* =========================================================
   FORMULAIRE DE CONTACT INTELLIGENT
   ========================================================= */
.form-wrap{background:var(--cream);padding:70px 0}
.form-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:50px;align-items:flex-start}
.form-side h2{margin-bottom:1rem}
.form-side-info{
    background:var(--navy);color:var(--cream);
    border-radius:var(--radius-lg);padding:32px;margin-top:28px;
}
.form-side-info h3{color:var(--cream);margin-bottom:14px}
.form-side-info p{color:rgba(251,249,244,.75);margin-bottom:14px;font-size:.95rem}
.form-side-info .contact-row{display:flex;gap:12px;margin-top:16px;align-items:center}
.form-side-info .contact-row svg{color:var(--gold);flex-shrink:0}
.form-side-info .contact-row a{color:var(--cream);font-weight:500;border-bottom:1px dotted rgba(251,249,244,.3)}

.smart-form{
    background:#fff;padding:40px;border-radius:var(--radius-lg);
    border:1px solid var(--line);box-shadow:var(--shadow-sm);
}
.form-step{display:none}
.form-step.active{display:block;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.form-progress{
    display:flex;gap:6px;margin-bottom:32px;
}
.form-progress-bar{
    flex:1;height:4px;background:var(--line);border-radius:2px;
    transition:background .3s ease;
}
.form-progress-bar.active{background:var(--royal)}
.form-step-label{
    font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
    color:var(--muted);font-weight:600;margin-bottom:8px;
}
.form-step h3{margin-bottom:22px;font-size:1.4rem}

.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}
.choice-tile{
    position:relative;border:1.5px solid var(--line);border-radius:var(--radius);
    padding:18px;cursor:pointer;transition:all .2s ease;text-align:left;
    display:flex;gap:12px;align-items:flex-start;background:#fff;
}
.choice-tile:hover{border-color:var(--royal);background:var(--ice)}
.choice-tile input{position:absolute;opacity:0;pointer-events:none}
.choice-tile input:checked ~ .tile-inner{color:var(--navy)}
.choice-tile:has(input:checked){border-color:var(--royal);background:var(--ice);box-shadow:0 0 0 3px rgba(0,153,203,.12)}
.choice-tile .tile-ic{
    flex:0 0 40px;height:40px;border-radius:10px;background:var(--ice);
    display:flex;align-items:center;justify-content:center;color:var(--royal);
}
.choice-tile:has(input:checked) .tile-ic{background:var(--royal);color:#fff}
.tile-inner strong{display:block;font-size:.96rem;color:var(--navy);font-weight:600;margin-bottom:4px}
.tile-inner span{font-size:.82rem;color:var(--muted);line-height:1.4}

.field{margin-bottom:18px}
.field label{
    display:block;font-size:.88rem;font-weight:600;color:var(--navy);margin-bottom:6px;
}
.field .required{color:var(--danger)}
.field input,.field select,.field textarea{
    width:100%;padding:13px 16px;border:1.5px solid var(--line);
    border-radius:var(--radius-sm);font-family:var(--ff-body);
    font-size:.95rem;color:var(--ink);background:#fff;transition:all .2s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{
    outline:none;border-color:var(--royal);box-shadow:0 0 0 3px rgba(0,153,203,.12);
}
.field textarea{min-height:120px;resize:vertical}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field small{font-size:.78rem;color:var(--muted);margin-top:4px;display:block}
.field-check{
    display:flex;gap:10px;align-items:flex-start;
    font-size:.85rem;color:var(--ink-soft);line-height:1.5;cursor:pointer;
}
.field-check input{width:18px;height:18px;margin-top:1px;accent-color:var(--royal)}
.field-check a{color:var(--royal);text-decoration:underline;font-weight:500}

.form-actions{
    display:flex;justify-content:space-between;gap:12px;margin-top:28px;
    padding-top:24px;border-top:1px solid var(--line);
}
.btn-back{background:transparent;color:var(--muted);font-weight:500;padding:14px 22px}
.btn-back:hover{color:var(--navy)}

.form-success,.form-error{
    display:none;padding:40px;text-align:center;border-radius:var(--radius);
}
.form-success{background:rgba(31,138,92,.08);border:1px solid rgba(31,138,92,.25)}
.form-success.show,.form-error.show{display:block}
.form-success svg{color:var(--success);margin:0 auto 18px}
.form-success h3{color:var(--success);margin-bottom:8px}
.form-error{background:rgba(200,51,75,.08);border:1px solid rgba(200,51,75,.25)}
.form-error svg{color:var(--danger);margin:0 auto 18px}

/* =========================================================
   PAGE LÉGALE
   ========================================================= */
.legal-wrap{padding:70px 0;background:var(--cream)}
.legal-wrap h1{font-size:clamp(2rem,3vw,2.6rem);margin-bottom:8px}
.legal-wrap .updated{color:var(--muted);font-size:.88rem;margin-bottom:40px}
.legal-content{max-width:820px;margin:0 auto}
.legal-content h2{
    font-size:1.45rem;margin:40px 0 14px;padding-top:20px;
    border-top:1px solid var(--line);
}
.legal-content h2:first-child{border-top:none;padding-top:0;margin-top:0}
.legal-content h3{font-size:1.1rem;margin:20px 0 10px}
.legal-content p,.legal-content li{color:var(--ink-soft);line-height:1.75;margin-bottom:12px}
.legal-content ul{margin-left:22px;margin-bottom:14px;list-style:disc}
.legal-content ul li{padding:0;margin-bottom:6px}
.legal-content ul li::before{display:none}
.legal-content address{
    background:var(--ice);padding:20px;border-radius:var(--radius);
    font-style:normal;margin:14px 0;
}

/* =========================================================
   BANDEAU COOKIES
   ========================================================= */
.cookie-banner{
    position:fixed;bottom:20px;left:20px;right:20px;max-width:540px;
    background:var(--navy);color:var(--cream);padding:24px;
    border-radius:var(--radius);box-shadow:var(--shadow-lg);
    z-index:200;transform:translateY(calc(100% + 40px));
    transition:transform .4s cubic-bezier(.34,1.2,.64,1);
}
.cookie-banner.show{transform:translateY(0)}
.cookie-banner h4{color:var(--cream);margin-bottom:8px;font-family:var(--ff-display);font-size:1.1rem}
.cookie-banner p{color:rgba(251,249,244,.75);font-size:.88rem;line-height:1.55;margin-bottom:16px}
.cookie-banner p a{color:var(--cream);text-decoration:underline}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-actions .btn{padding:10px 18px;font-size:.85rem}
.cookie-settings{
    margin-top:14px;padding-top:14px;border-top:1px solid rgba(251,249,244,.15);
    display:none;
}
.cookie-banner.settings .cookie-settings{display:block}
.cookie-toggle{
    display:flex;justify-content:space-between;align-items:center;padding:8px 0;
    font-size:.88rem;
}
.cookie-toggle label{display:flex;flex-direction:column;gap:2px}
.cookie-toggle small{color:rgba(251,249,244,.6);font-size:.78rem}
.switch{
    position:relative;width:40px;height:22px;background:rgba(251,249,244,.2);
    border-radius:12px;cursor:pointer;transition:background .2s;flex-shrink:0;
}
.switch::after{
    content:"";position:absolute;left:2px;top:2px;width:18px;height:18px;
    background:#fff;border-radius:50%;transition:left .2s;
}
.switch.on{background:var(--gold)}
.switch.on::after{left:20px}
.switch.disabled{opacity:.5;cursor:not-allowed}

/* =========================================================
   PAGE ACCUEIL — CATEGORY HERO (PRO / ENTREPRISE / DIRIGEANT)
   ========================================================= */
.categories{
    padding:90px 0;background:var(--cream-warm);
}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.cat-card{
    position:relative;overflow:hidden;background:#fff;
    border-radius:var(--radius-lg);padding:36px 32px 32px;
    border:1px solid var(--line);transition:all .3s ease;
}
.cat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--royal)}
.cat-card .cat-num{
    position:absolute;top:20px;right:22px;
    font-family:var(--ff-display);font-size:4rem;color:var(--ice);
    line-height:1;font-weight:500;
}
.cat-card svg.cat-illu{width:64px;height:64px;color:var(--royal);margin-bottom:22px}
.cat-card h3{font-size:1.4rem;margin-bottom:10px}
.cat-card > p{margin-bottom:18px}
.cat-card .chip-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}
.cat-card .chip{
    background:var(--ice);color:var(--royal);padding:5px 12px;
    border-radius:999px;font-size:.76rem;font-weight:600;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1024px){
    .hero-grid,.page-hero-grid,.content-grid,.form-grid,.cta-wrap{grid-template-columns:1fr}
    .hero-visual{max-width:380px;margin:0 auto}
    .sol-grid,.cat-grid,.testi-grid,.proof-grid,.method-grid{grid-template-columns:repeat(2,1fr)}
    .footer-grid{grid-template-columns:1fr 1fr}
    .cta-actions{justify-content:flex-start}
    .aside-card{position:static}
}

@media (max-width: 720px){
    section{padding:60px 0}
    .hero{padding:60px 0 80px}
    .sol-grid,.cat-grid,.testi-grid,.proof-grid,.method-grid{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr;gap:30px}
    .nav-menu{
        position:fixed;inset:76px 0 0 0;background:var(--cream);
        flex-direction:column;padding:30px;gap:4px;
        transform:translateX(100%);transition:transform .3s ease;align-items:stretch;
        overflow-y:auto;
    }
    .nav-menu.open{transform:translateX(0)}
    .nav-link{width:100%;padding:14px 16px}
    .nav-dropdown{
        position:static;transform:none;opacity:1;visibility:visible;
        min-width:auto;box-shadow:none;border:none;padding:8px 0 8px 16px;
        grid-template-columns:1fr;display:none;
    }
    .nav-item.open .nav-dropdown{display:grid}
    .nav-cta{width:100%;justify-content:center;margin-top:10px}
    .nav-burger{display:flex;flex-direction:column;align-items:center;justify-content:center}
    .choice-grid,.field-grid{grid-template-columns:1fr}
    .smart-form{padding:24px}
    .cookie-banner{left:12px;right:12px;bottom:12px;padding:20px}
    .footer-bottom-row{flex-direction:column;align-items:flex-start}
}

/* ---------- Animations d'entrée ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:all .7s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal:nth-child(2){transition-delay:.08s}
.reveal:nth-child(3){transition-delay:.16s}
.reveal:nth-child(4){transition-delay:.24s}
.reveal:nth-child(5){transition-delay:.32s}
.reveal:nth-child(6){transition-delay:.4s}

/* Scroll bar */
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--cream)}
::-webkit-scrollbar-thumb{background:var(--ice-deep);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:var(--royal)}

/* Selection */
::selection{background:var(--royal);color:var(--cream)}
