:root{
  --cf-ink:#11263f;--cf-ink-2:#25445f;--cf-brand:#1166cc;--cf-brand-2:#0b4f9b;
  --cf-accent:#12a594;--cf-accent-soft:#eaf8f5;--cf-warm:#f4b942;--cf-bg:#f5f8fc;
  --cf-surface:#fff;--cf-line:#dfe7f0;--cf-muted:#66788a;--cf-radius:22px;
  --cf-shadow:0 18px 48px rgba(17,38,63,.10);--cf-shadow-sm:0 8px 24px rgba(17,38,63,.08)
}
html{scroll-behavior:smooth} body{font-family:"Open Sans",Arial,sans-serif;background:var(--cf-bg);color:var(--cf-ink);line-height:1.65}
a{color:var(--cf-brand);transition:color .18s ease,transform .18s ease,box-shadow .18s ease}a:hover{color:var(--cf-brand-2);text-decoration:none}
img{max-width:100%;height:auto}.gray-bg{background:var(--cf-bg)!important}.container,.container-lg,.container-xl{max-width:1200px}
.cf-skip-link{position:fixed;left:18px;top:-80px;z-index:99999;background:#fff;color:var(--cf-ink);padding:10px 14px;border-radius:10px;box-shadow:var(--cf-shadow-sm)}.cf-skip-link:focus{top:18px}
.cf-site-main{min-height:55vh}.cf-eyebrow{text-transform:uppercase;letter-spacing:.13em;font-weight:800;font-size:.74rem;color:var(--cf-brand)}
.cf-lead{font-size:1.08rem;color:var(--cf-ink-2);max-width:840px}.cf-kicker{font-size:.88rem;font-weight:700;color:var(--cf-accent)}
.cf-surface{background:var(--cf-surface);border:1px solid var(--cf-line);border-radius:var(--cf-radius);box-shadow:var(--cf-shadow-sm)}
.cf-section{padding:72px 0}.cf-section-sm{padding:44px 0}.cf-section-title{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.15;font-weight:800;color:var(--cf-ink);margin-bottom:14px}.cf-section-subtitle{font-size:1.05rem;color:var(--cf-muted);max-width:820px}
/* Header */
.menu-area{position:sticky;top:0;z-index:1040;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(223,231,240,.85);box-shadow:0 5px 22px rgba(17,38,63,.05)}
.menu-area .navbar{min-height:76px!important;background:transparent!important;padding:10px 0!important}.navbar-brand img{height:44px!important;width:auto}.main-nav-wrap ul>li>a{font-weight:700;color:var(--cf-ink)!important;border-radius:10px;padding:10px 11px!important}.main-nav-wrap ul>li>a:hover{background:#eef5ff;color:var(--cf-brand)!important}.sign-in-box .btn{border-radius:12px!important;padding:10px 16px!important;font-weight:700}.btn-sign-in{background:#fff!important;border:1px solid var(--cf-line)!important;color:var(--cf-ink)!important}.btn-sign-up{background:var(--cf-brand)!important;color:#fff!important;border:1px solid var(--cf-brand)!important}.search-box .form-control{border-radius:12px 0 0 12px!important;border-color:var(--cf-line)!important}.search-box .btn{border-radius:0 12px 12px 0!important;background:var(--cf-brand)!important;color:#fff!important}
.cf-header-trust{display:none;font-size:.74rem;color:var(--cf-muted);font-weight:700}@media(min-width:1200px){.cf-header-trust{display:block;white-space:nowrap;margin-left:12px}}
/* Page hero / breadcrumbs */
.category-header-area,.course-header-area{position:relative;background:linear-gradient(135deg,#0f2f4e 0%,#114f87 62%,#137a89 100%)!important;color:#fff;padding:54px 0 50px!important;overflow:hidden}
.category-header-area:after,.course-header-area:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-120px;top:-190px;background:rgba(255,255,255,.08)}
.category-header-area .breadcrumb,.course-header-area .breadcrumb{background:transparent;padding:0;margin-bottom:18px}.category-header-area .breadcrumb a,.category-header-area .breadcrumb-item,.course-header-area a{color:rgba(255,255,255,.84)!important}.category-header-area .breadcrumb-item+.breadcrumb-item:before{color:rgba(255,255,255,.5)}
.category-header-area .category-name,.course-header-area .title{color:#fff!important;font-weight:800!important;font-size:clamp(2rem,4vw,3.4rem)!important;letter-spacing:-.03em;line-height:1.08}.course-header-area .subtitle{color:rgba(255,255,255,.86)!important;font-size:1.12rem;max-width:790px}.course-header-area .created-row,.course-header-area .rating-row{color:rgba(255,255,255,.83)!important}
.cf-page-intro{margin-top:-28px;position:relative;z-index:2}.cf-page-intro-card{background:#fff;border-radius:20px;border:1px solid var(--cf-line);box-shadow:var(--cf-shadow);padding:28px 32px}.cf-page-intro-card p:last-child{margin-bottom:0}
/* Generic content pages */
.cf-content-shell{padding:48px 0 72px}.cf-content-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:32px}.cf-prose{background:#fff;border:1px solid var(--cf-line);border-radius:22px;padding:clamp(24px,4vw,46px);box-shadow:var(--cf-shadow-sm)}.cf-prose h2{font-size:1.65rem;margin:2.1rem 0 .8rem;color:var(--cf-ink);font-weight:800}.cf-prose h3{font-size:1.25rem;margin:1.7rem 0 .65rem;font-weight:800}.cf-prose p,.cf-prose li{color:#334e68}.cf-prose table{width:100%;display:block;overflow:auto;border-collapse:collapse}.cf-prose td,.cf-prose th{border:1px solid var(--cf-line);padding:10px 12px}.cf-side-panel{position:sticky;top:100px;align-self:start;background:linear-gradient(180deg,#eff6ff,#f5fbfa);border:1px solid var(--cf-line);border-radius:20px;padding:22px}.cf-side-panel h2{font-size:1.05rem;font-weight:800}.cf-side-panel a{display:block;padding:8px 0;font-weight:700;border-bottom:1px solid rgba(17,38,63,.08)}
/* Courses catalog */
.category-course-list-area{padding:44px 0 72px!important}.category-filter-box{background:#fff!important;border:1px solid var(--cf-line)!important;border-radius:16px!important;padding:14px 18px!important;box-shadow:var(--cf-shadow-sm);margin-bottom:22px!important}.filter-area .card{border:1px solid var(--cf-line)!important;border-radius:18px!important;overflow:hidden;box-shadow:var(--cf-shadow-sm)}.filter-card-header{background:#f7faff!important;border:0!important}.filter_type{border-bottom:1px solid var(--cf-line);padding:16px 0}.filter_type:last-child{border-bottom:0}.filter_type h6{font-weight:800;color:var(--cf-ink)}
.category-course-list .course-box-2,.course-box-wrap .course-box,.course-box{background:#fff!important;border:1px solid var(--cf-line)!important;border-radius:18px!important;overflow:hidden;box-shadow:var(--cf-shadow-sm)!important;transition:transform .2s ease,box-shadow .2s ease}.category-course-list .course-box-2:hover,.course-box-wrap .course-box:hover,.course-box:hover{transform:translateY(-4px);box-shadow:var(--cf-shadow)!important}.course-box-2 .course-details,.course-box .course-details{padding:18px!important}.course-box-2 .course-title,.course-box .course-title{font-weight:800!important;color:var(--cf-ink)!important}.course-price{font-weight:800;color:var(--cf-brand)!important}
/* Course detail */
.course-content-area{padding:48px 0 80px!important}.description-box,.compare-box,.about-instructor-box,.student-feedback-box{background:#fff!important;border:1px solid var(--cf-line)!important;border-radius:20px!important;padding:24px!important;margin-bottom:20px!important;box-shadow:var(--cf-shadow-sm)!important}.description-title,.compare-title,.about-instructor-title,.student-feedback-title{font-weight:800!important;font-size:1.22rem!important;color:var(--cf-ink)!important;margin-bottom:14px!important}.description-content{color:#334e68!important}.description-content[style*="border: solid 1px red"]{border:1px solid #f2c2c2!important;background:#fff8f8!important;border-radius:14px!important}.course-sidebar{border-radius:20px!important;overflow:hidden!important;box-shadow:var(--cf-shadow)!important}.course-badge{border-radius:999px!important;padding:6px 10px!important;background:rgba(255,255,255,.12)!important;color:#fff!important}.cf-course-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.cf-course-fact{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);font-size:.88rem;color:#fff}.cf-course-fact i{color:#8ce1d6}
/* Forms / auth */
.user-dashboard-box,.contact-form-wrap,.contact-info-box{border:1px solid var(--cf-line)!important;border-radius:22px!important;background:#fff!important;box-shadow:var(--cf-shadow-sm)!important}.content-title-box{background:linear-gradient(135deg,#f4f8ff,#f2fbf9)!important;border-radius:18px!important;padding:22px!important}.content-title-box .title{font-weight:800!important;color:var(--cf-ink)!important}.form-control{min-height:46px;border-radius:12px!important;border-color:#ccd8e5!important;box-shadow:none!important}.form-control:focus{border-color:var(--cf-brand)!important;box-shadow:0 0 0 3px rgba(17,102,204,.12)!important}.btn,.content-update-box .btn{border-radius:12px!important;font-weight:700!important}.btn-primary,.content-update-box .btn{background:var(--cf-brand)!important;border-color:var(--cf-brand)!important}.btn-primary:hover,.content-update-box .btn:hover{background:var(--cf-brand-2)!important;border-color:var(--cf-brand-2)!important}
/* Home enhancement: harmonise legacy sections */
.home-banner-area,.home-fact-area,.course-carousel-area,.home-fact-area{overflow:hidden}.home-banner-wrap h2,.home-banner-area h2{font-weight:800!important;letter-spacing:-.03em}.home-banner-wrap p{font-size:1.05rem}.course-carousel-title .title{font-weight:800!important;color:var(--cf-ink)!important}.course-carousel-title .subtitle{color:var(--cf-muted)!important}
/* Tables and notices */
.alert{border-radius:14px!important;border-width:1px!important}.table{background:#fff}.table thead th{border-top:0;color:var(--cf-ink);font-weight:800}.badge{border-radius:999px;padding:.45em .7em}
/* Footer V2 compatibility */
.footer-area{margin-top:0!important}.footer-area a:focus-visible,.menu-area a:focus-visible,.btn:focus-visible{outline:3px solid #f4b942!important;outline-offset:3px}
/* Small progressive reveal */
.cf-reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}.cf-reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.cf-reveal{opacity:1;transform:none;transition:none}}
@media(max-width:991px){.cf-content-layout{grid-template-columns:1fr}.cf-side-panel{position:static}.menu-area{position:relative}.category-header-area,.course-header-area{padding:38px 0 36px!important}.cf-section{padding:54px 0}}
@media(max-width:575px){.cf-page-intro-card,.cf-prose{padding:22px}.category-course-list-area{padding-top:28px!important}.cf-section{padding:44px 0}.navbar-brand img{height:38px!important}}

/* ==========================================================
   V5.1 — Correctifs scroll fiche formation
   Le thème historique crée un clone .course-header-area.duplicated
   et fixe .course-sidebar à top:10px. Avec le nouveau header sticky,
   ces deux comportements se superposaient au menu et tronquaient
   le titre ainsi que le haut de la colonne d'achat.
   ========================================================== */

/* Le header principal sticky remplit déjà le rôle de repère au scroll.
   On neutralise donc le clone historique, devenu redondant. */
.course-header-area.duplicated{
  display:none !important;
}

/* Ne jamais masquer le contenu d'une sidebar naturelle. */
.course-sidebar{
  overflow:visible !important;
}

/* Quand le script historique fixe la sidebar, on la place sous le
   nouveau header et on la rend scrollable si sa hauteur dépasse l'écran. */
@media (min-width:1200px){
  .course-sidebar.fixed{
    top:92px !important;
    max-height:calc(100vh - 108px);
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
  }
}

/* Le mode bottom doit rester dans le flux et ne doit pas hériter
   des contraintes du mode fixed. */
.course-sidebar.bottom{
  max-height:none !important;
  overflow:visible !important;
}

/* Les ancres restent visibles sous la navigation sticky. */
html{
  scroll-padding-top:100px;
}
