:root{--blue:#3f48cc;--violet:#8a35d8;--dark:#17152a;--text:#37344b;--muted:#77748c;--light:#f7f6ff;--border:#e8e5f4;--gradient:linear-gradient(135deg,#3f48cc,#8a35d8);--radius:22px;--shadow:0 16px 45px rgba(50,38,120,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);overflow-x:hidden;font-family:Arial,Helvetica,sans-serif}a{color:var(--blue);text-decoration:none}.container{width:min(1180px,calc(100% - 32px));margin:auto}.reading-progress{position:fixed;top:0;left:0;right:0;height:4px;z-index:9999}.reading-progress i{display:block;width:0;height:100%;background:var(--gradient)}.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between}.logo{font-size:27px;font-weight:800;color:var(--dark)}.logo span{color:var(--violet)}.main-nav{display:flex;gap:25px;align-items:center;font-weight:700}.main-nav a{color:var(--dark)}.nav-cta,.button{display:inline-flex;padding:12px 20px;border-radius:999px;background:var(--gradient);color:#fff!important;font-weight:700;border:0;cursor:pointer}.menu-toggle{display:none;border:0;background:var(--light);padding:10px;border-radius:10px}.menu-toggle b{display:block;width:20px;height:2px;background:var(--dark);margin:4px}.hero{padding:80px 0;color:#fff;background:var(--gradient)}.hero .eyebrow,.article-hero .eyebrow{color:#dedbff}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.5px}.hero h1{font-size:clamp(38px,6vw,64px);line-height:1.05;max-width:900px;margin:12px 0 20px}.hero p{max-width:720px;font-size:19px;line-height:1.7}.compact{padding:55px 0}.blog-layout{display:grid;grid-template-columns:230px 1fr;gap:45px;padding:55px 0 90px}.sidebar-card,.toc-card{padding:24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--light)}.sidebar-card{height:max-content;position:sticky;top:100px}.sidebar-card a{display:block;padding:11px 0;border-bottom:1px solid var(--border);color:var(--text)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.featured{display:grid;grid-template-columns:1fr .8fr;overflow:hidden;border-radius:var(--radius);margin-bottom:28px;background:var(--gradient);color:#fff;box-shadow:var(--shadow)}.featured>div{padding:40px}.featured h2{font-size:36px;line-height:1.15}.featured h2 a{color:#fff}.featured img{width:100%;height:100%;min-height:300px;object-fit:cover}.button-light{background:#fff;color:var(--violet)!important}.card{min-width:0;padding:24px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:0 8px 28px rgba(40,30,100,.05)}.card-image{display:block;width:calc(100% + 48px)!important;max-width:none!important;height:180px;margin:-24px -24px 20px;object-fit:cover;border-radius:var(--radius) var(--radius) 0 0}.card h2,.card h3{line-height:1.25;color:var(--dark)}.card p{line-height:1.7;color:var(--muted)}.breadcrumb{padding-top:25px;font-size:13px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.article-hero{padding:40px 0 30px}.article-hero h1{font-size:clamp(38px,5vw,64px);line-height:1.05;letter-spacing:-1.5px;color:var(--dark);max-width:950px}.lead{font-size:20px;line-height:1.7;color:var(--muted);max-width:850px}.meta{font-size:13px;color:var(--muted)}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:48px;padding-bottom:90px}.post{min-width:0}.post-image,.article-content img,.article-content svg{display:block;width:100%!important;max-width:100%!important;height:auto!important;box-sizing:border-box}.post-image{border-radius:var(--radius);margin-bottom:42px;box-shadow:var(--shadow)}.article-content{font-size:18px;line-height:1.85}.article-content p{margin:0 0 24px}.article-content h2{font-size:34px;line-height:1.2;color:var(--dark);margin:55px 0 18px;scroll-margin-top:100px}.article-content h3{color:var(--dark);margin-top:35px}.article-content figure{margin:38px 0;max-width:100%;overflow:hidden}.article-content figcaption{text-align:center;color:var(--muted);font-size:13px}.article-sidebar{min-width:0}.toc-card{position:sticky;top:100px}.toc-card a{display:block;padding:8px 0;color:var(--text);font-size:14px}.toc-card .toc-h3{padding-left:13px;color:var(--muted)}.sidebar-cta{margin-top:20px;padding:24px;border-radius:var(--radius);color:#fff;background:var(--gradient)}.article-cta{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:55px 0;padding:35px;border-radius:var(--radius);color:#fff;background:var(--gradient)}.contact-box{padding:35px;margin-bottom:55px;border-radius:var(--radius);background:var(--light);border:1px solid var(--border)}.contact-box h2{color:var(--dark)}.contact-form input,.contact-form textarea,.newsletter input{width:100%;padding:14px;border:1px solid #dcd9ee;border-radius:12px;margin-top:7px;margin-bottom:16px;font:inherit}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{font-weight:700;font-size:14px}.success{padding:12px;border-radius:10px;background:#eaf8ef;color:#19713b;margin:15px 0}.newsletter{padding:55px 0;background:var(--light);border-top:1px solid var(--border)}.newsletter-inner{display:flex;align-items:center;justify-content:space-between;gap:35px}.newsletter h2{color:var(--dark)}.newsletter form{display:flex;gap:10px;min-width:min(100%,450px)}.newsletter input{margin:0}footer{background:#111022;color:#b9b6cb;padding:50px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer-grid strong{display:block;color:#fff;margin-bottom:12px}.footer-grid a:not(.logo){display:block;color:#b9b6cb;margin:8px 0}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:18px;margin-top:35px;font-size:13px}#scroll-top{position:fixed;right:20px;bottom:20px;width:48px;height:48px;border:0;border-radius:50%;background:var(--gradient);color:#fff;font-size:20px;opacity:0;visibility:hidden;transition:.2s;cursor:pointer;z-index:900}#scroll-top.visible{opacity:1;visibility:visible}.mobile-toc{display:none}.category-content{padding:55px 0 90px}@media(max-width:900px){.blog-layout,.article-layout{grid-template-columns:1fr}.article-sidebar,.sidebar-card{display:none}.grid{grid-template-columns:1fr}.newsletter-inner{display:block}.newsletter form{margin-top:20px}}@media(max-width:700px){.container{width:calc(100% - 28px)}.nav{height:66px}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:66px;left:14px;right:14px;padding:12px;flex-direction:column;align-items:stretch;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}.main-nav.open{display:flex}.main-nav a{padding:12px}.hero{padding:55px 0}.hero h1,.article-hero h1{font-size:39px}.featured{grid-template-columns:1fr}.featured>div{padding:28px}.featured img{min-height:210px;max-height:260px}.article-content{font-size:17px;line-height:1.78}.article-content h2{font-size:29px}.article-cta{display:block;padding:28px}.article-cta .button{margin-top:18px}.contact-box{padding:25px}.form-row{grid-template-columns:1fr}.newsletter form{display:block}.newsletter .button{width:100%;margin-top:10px}.mobile-toc{display:block;margin-bottom:25px;border:1px solid var(--border);border-radius:14px;background:var(--light)}.toc-toggle{width:100%;padding:15px;background:transparent;border:0;font-weight:800;text-align:left}.footer-grid{grid-template-columns:1fr}}

/* ===== Sommaire : fermeture / réouverture ===== */
.article-sidebar { position: relative; }

.toc-card {
  position: sticky;
  top: 100px;
  transition: opacity .2s ease, transform .2s ease;
}

.toc-card.is-closed { display: none; }

.toc-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid #d9d5ee;
  border-radius: 50%;
  background: #fff;
  color: var(--violet);
  font-size: 24px;
  line-height: 29px;
  font-weight: 400;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .2s ease;
}

.toc-close:hover {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
}

.toc-reopen {
  display: none;
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--light);
  color: var(--dark);
  font-weight: 700;
  cursor: pointer;
  font: inherit;
}

.toc-reopen.visible { display: block; }

@media(max-width:900px) {
  .toc-reopen { display: none !important; }
}

@media(max-width:700px) {
  .toc-close { display: none; }
}

/* =========================================================
   ALBERT — CORRECTION DÉFINITIVE DES RÉPONSES
   La bulle doit contenir 100% du texte.
   Le scroll doit être celui de la conversation.
   ========================================================= */

/* Le chat reste une colonne fixe */
#albert-chat {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

/* Zone de conversation */
#albert-chat .albert-messages {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;

    box-sizing: border-box !important;
    scrollbar-width: auto;
}

/* =========================================================
   BULLE DE RÉPONSE ALBERT
   AUCUNE HAUTEUR MAXIMALE
   AUCUN OVERFLOW CACHÉ
   ========================================================= */

#albert-chat .albert-message {
    display: block !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    overflow: visible !important;
    overflow-y: visible !important;
    overflow-x: visible !important;

    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;

    box-sizing: border-box !important;
}

/* Sécurité : aucun élément à l'intérieur de la bulle
   ne doit couper le texte */
#albert-chat .albert-message *,
#albert-chat .albert-message p,
#albert-chat .albert-message ul,
#albert-chat .albert-message ol,
#albert-chat .albert-message li {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
}

/* Paragraphes */
#albert-chat .albert-message p {
    margin: 0 0 8px !important;
}

#albert-chat .albert-message p:last-child {
    margin-bottom: 0 !important;
}

/* Listes */
#albert-chat .albert-message ul,
#albert-chat .albert-message ol {
    margin: 8px 0 !important;
    padding-left: 20px !important;
}

#albert-chat .albert-message li {
    margin-bottom: 4px !important;
}

/* Scroll de la conversation */
#albert-chat .albert-messages::-webkit-scrollbar {
    width: 7px;
}

#albert-chat .albert-messages::-webkit-scrollbar-track {
    background: #eeeeF8;
    border-radius: 10px;
}

#albert-chat .albert-messages::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #3f48cc, #8a35d8);
    border-radius: 10px;
}

#albert-chat .albert-messages::-webkit-scrollbar-thumb:hover {
    background: #3f48cc;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    #albert-chat {
        height: min(650px, calc(100vh - 100px)) !important;
    }

    #albert-chat .albert-messages {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
    }

    #albert-chat .albert-message {
        max-height: none !important;
        height: auto !important;
        overflow: visible !important;
    }
}