﻿/* ======================================================
   TASETII — Design System v2 · 2026
   Modern · Professional · Minimal
   ====================================================== */

:root {
    --gold:          #e8b800;
    --gold-light:    #fae261;
    --gold-dark:     #b88c00;
    --gold-pale:     rgba(232,184,0,.10);
    --gold-glow:     0 8px 28px rgba(232,184,0,.30);
    --ink:           #0e1c2a;
    --ink-2:         #1a2f42;
    --ink-3:         #2d3f52;
    --ink-muted:     #4a6070;
    --smoke:         #64748b;
    --mist:          #e2e8f0;
    --pale:          #f4f7fa;
    --snow:          #ffffff;
    --success:       #10b981;
    --danger:        #ef4444;
    --section-py:    88px;
    --r-xs:   6px;
    --r-sm:   10px;
    --r-md:   16px;
    --r-lg:   24px;
    --r-pill: 100px;
    --sh-xs:  0 1px 4px rgba(14,28,42,.06);
    --sh-sm:  0 2px 10px rgba(14,28,42,.08);
    --sh-md:  0 6px 24px rgba(14,28,42,.10);
    --sh-lg:  0 12px 48px rgba(14,28,42,.14);
    --sh-xl:  0 24px 72px rgba(14,28,42,.18);
    --ease:   cubic-bezier(.4,0,.2,1);
    --t:      all .26s var(--ease);
    --t-slow: all .45s var(--ease);
    --font:   'Poppins', system-ui, -apple-system, sans-serif;
    /* Legacy aliases */
    --ta-gold:       var(--gold);
    --ta-gold-light: var(--gold-light);
    --ta-gold-dark:  var(--gold-dark);
    --ta-dark:       var(--ink);
    --ta-dark-2:     var(--ink-2);
    --ta-soft:       var(--pale);
    --ta-white:      var(--snow);
    --ta-gray:       var(--smoke);
    --ta-gray-light: var(--pale);
    --ta-radius:     var(--r-md);
    --ta-radius-sm:  var(--r-sm);
    --ta-shadow:     var(--sh-md);
    --ta-shadow-lg:  var(--sh-lg);
    --ta-transition: var(--t);
    --primary-font:  var(--font);
}

/* ── Base ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 17px; }
body { font-family: var(--font) !important; font-size: 1rem; color: var(--ink-3); background: #fff; -webkit-font-smoothing: antialiased; line-height: 1.75; }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--pale); }
::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 3px; }
a { text-decoration: none; transition: var(--t); }
img { max-width: 100%; height: auto; }

/* ── Logo ── */
.logo { width: 52px; height: 52px; border-radius: 50%; object-fit: contain; transition: var(--t); }
.logo:hover { transform: scale(1.06); }

/* ── Header ── */
.site-header { box-shadow: var(--sh-sm); position: sticky; top: 0; z-index: 1000; background: var(--snow); }
.header-topbar { background: linear-gradient(90deg, var(--ink) 0%, var(--ink-2) 100%); padding: 7px 0; font-size: .88rem; }
.header-topbar .contact-info li a,
.header-topbar .social-icons li a { color: rgba(255,255,255,.72); transition: var(--t); }
.header-topbar .contact-info li a:hover,
.header-topbar .social-icons li a:hover { color: var(--gold-light); }
.header-topbar .social-icons { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.header-topbar .social-icons li a { width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; font-size: .82rem; }
.header-topbar .social-icons li a:hover { background: rgba(232,184,0,.2); color: var(--gold-light); }
.navbar-wrapper { background: var(--snow); padding: 10px 0; border-bottom: 1px solid rgba(14,28,42,.06); }
.nav-menu ul li a { font-weight: 500; font-size: .97rem; transition: var(--t); padding: 8px 14px; border-radius: var(--r-sm); color: var(--ink-3) !important; }
.nav-menu ul li a:hover { background: var(--pale); color: var(--ink) !important; }
.nav-menu ul li.active > a { color: var(--gold-dark) !important; font-weight: 600; }

/* DON button */
.main-btn.nav-btn, a.main-btn.nav-btn { background: linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 100%); color: var(--ink) !important; font-weight: 700; border-radius: 50px; padding: 10px 24px; letter-spacing: .3px; box-shadow: 0 4px 14px rgba(232,184,0,.35); transition: var(--t); border: none; }
.main-btn.nav-btn:hover, a.main-btn.nav-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(232,184,0,.45); }

/* ── Buttons ── */
.main-btn { border-radius: 50px !important; font-weight: 600 !important; letter-spacing: .3px !important; transition: var(--t) !important; padding: 12px 28px !important; display: inline-flex; align-items: center; gap: 8px; }
.main-btn:not(.nav-btn):not(.btn-white):not(.btn-dark) { background: linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 100%) !important; color: var(--ink) !important; box-shadow: 0 4px 14px rgba(232,184,0,.3) !important; border: none !important; }
.main-btn:not(.nav-btn):not(.btn-white):not(.btn-dark):hover { transform: translateY(-2px) !important; box-shadow: 0 6px 20px rgba(232,184,0,.45) !important; }
.main-btn.btn-white { border-radius: 50px !important; border: 2px solid rgba(255,255,255,.8) !important; transition: var(--t) !important; color: #fff !important; background: transparent !important; }
.main-btn.btn-white:hover { background: #fff !important; color: var(--ink) !important; border-color: #fff !important; transform: translateY(-2px) !important; box-shadow: 0 6px 20px rgba(255,255,255,.25) !important; }
.main-btn.btn-dark { border-radius: 50px !important; transition: var(--t) !important; }
.main-btn.btn-dark:hover { transform: translateY(-2px) !important; }

/* ── Common heading ── */
.common-heading .tagline { font-weight: 600; font-size: .82rem; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-dark); display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.common-heading .tagline .heading-shadow-text { display: none; }
.common-heading .title { font-weight: 800; letter-spacing: -.6px; color: var(--ink); line-height: 1.2; }
.common-heading.color-version-white .title { color: #fff !important; }
.common-heading.color-version-white .tagline { color: var(--gold-light) !important; }

/* ── Page Title / Breadcrumb ── */
.page-title-area { background: linear-gradient(135deg, var(--ink) 0%, var(--ink-2) 65%, #163447 100%); padding: 52px 0; position: relative; overflow: hidden; }
.page-title-area::before { content: ''; position: absolute; top: -50%; right: -8%; width: 480px; height: 480px; background: radial-gradient(circle, rgba(232,184,0,.13) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
.page-title-area::after { content: ''; position: absolute; bottom: -60%; left: -5%; width: 360px; height: 360px; background: radial-gradient(circle, rgba(232,184,0,.06) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
.page-title-area .page-title { color: #fff; font-size: 2.1rem; font-weight: 800; letter-spacing: -.6px; margin: 0; }
.page-title-area .page-breadcrumb { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.page-title-area .page-breadcrumb li { color: rgba(255,255,255,.55); font-size: .93rem; }
.page-title-area .page-breadcrumb li:not(:last-child)::after { content: '/'; margin-left: 8px; color: rgba(255,255,255,.3); }
.page-title-area .page-breadcrumb li a { color: var(--gold-light); transition: var(--t); }
.page-title-area .page-breadcrumb li a:hover { color: #fff; }

/* ── Hero section ── */
.hero-area-one { position: relative; overflow: hidden; }
.hero-area-one .splide__slide img { width: 100%; height: 78vh; object-fit: cover; display: block; }
.hero-area-one .splide__arrows .splide__arrow { background: rgba(255,255,255,.18); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.2); color: #fff; border-radius: 50%; width: 44px; height: 44px; }
.hero-area-one .splide__arrows .splide__arrow:hover { background: var(--gold); color: var(--ink); }

/* ── Stats bar (accueil) ── */
.ta-stats-bar { background: var(--snow); border-bottom: 1px solid var(--mist); padding: 0; }
.ta-stats-bar .stats-inner { display: grid; grid-template-columns: repeat(4, 1fr); }
.ta-stat-item { padding: 28px 20px; text-align: center; position: relative; }
.ta-stat-item:not(:last-child)::after { content: ''; position: absolute; right: 0; top: 50%; transform: translateY(-50%); height: 50%; width: 1px; background: var(--mist); }
.ta-stat-item .stat-number { font-size: 2rem; font-weight: 800; color: var(--ink); letter-spacing: -.5px; line-height: 1; display: block; }
.ta-stat-item .stat-label { font-size: .92rem; color: var(--smoke); margin-top: 4px; display: block; font-weight: 500; }
.ta-stat-item .stat-icon { font-size: 1.4rem; color: var(--gold); margin-bottom: 8px; display: block; }

/* ── Section spacing ── */
.section-gap { padding: 84px 0 !important; }
.section-gap-extra-bottom { padding-bottom: 100px !important; }
.primary-soft-bg { background: var(--pale) !important; }
.secondary-bg { background: linear-gradient(160deg, var(--ink) 0%, var(--ink-2) 100%) !important; }

/* ── Category cards (fancy-box) ── */
.popular-categories { background: var(--pale); }
.fancy-icon-boxes .fancy-box-item { border-radius: var(--r-md) !important; border: 1.5px solid var(--mist) !important; transition: var(--t) !important; overflow: hidden; background: var(--snow); box-shadow: var(--sh-sm) !important; padding: 28px !important; height: 100%; position: relative; cursor: pointer; }
.fancy-icon-boxes .fancy-box-item:hover { transform: translateY(-6px) !important; box-shadow: var(--sh-lg) !important; border-color: var(--gold-light) !important; }
.fancy-box-item .content .title { margin-bottom: 8px; }
.fancy-box-item .content .title a { color: var(--ink); font-weight: 700; font-size: 1.1rem; transition: var(--t); }
.fancy-box-item .content .title a:hover { color: var(--gold-dark); }
.fancy-box-item .content p { color: var(--smoke); font-size: .97rem; margin: 0; line-height: 1.7; }

/* ── About section ── */
.about-section-one { padding: 84px 0; background: var(--snow); }
.about-img { border-radius: var(--r-lg) !important; overflow: hidden; box-shadow: var(--sh-xl) !important; }
.about-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.about-text .common-heading { margin-bottom: 20px; }
.about-text p { color: var(--smoke); font-size: 1.02rem; line-height: 1.85; }

/* ── Project cards ── */
.project-item { border-radius: var(--r-md) !important; overflow: hidden !important; box-shadow: var(--sh-sm) !important; transition: var(--t) !important; background: var(--snow); border: 1.5px solid var(--mist) !important; height: 100%; display: flex; flex-direction: column; position: relative; cursor: pointer; }
.project-item:hover { transform: translateY(-6px) !important; box-shadow: var(--sh-lg) !important; border-color: var(--gold-light) !important; }
.project-item .thumb { height: 218px !important; background-size: cover !important; background-position: center !important; position: relative; flex-shrink: 0; }
.project-item .thumb::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 55%, rgba(14,28,42,.45) 100%); }
.project-item .content { padding: 20px !important; flex: 1; display: flex; flex-direction: column; }
.project-item .content .cats { margin-bottom: 8px; }
.project-item .content .cats a { background: linear-gradient(135deg, var(--gold-light), var(--gold)); color: var(--ink) !important; border-radius: 50px; padding: 3px 12px; font-size: .84rem; font-weight: 700; display: inline-block; letter-spacing: .3px; }
.project-item .content .author { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.project-item .content .author img { width: 30px !important; height: 30px !important; border-radius: 50% !important; object-fit: cover !important; border: 2px solid var(--gold-light) !important; flex-shrink: 0; }
.project-item .content .author a { font-size: .92rem; color: var(--smoke); font-weight: 500; }
.project-item .content .title { flex: 1; margin-bottom: 12px; }
.project-item .content .title a { font-weight: 700; color: var(--ink); font-size: 1.05rem; transition: var(--t); line-height: 1.45; display: block; }
.project-item .content .title a:hover { color: var(--gold-dark); }
.project-item .content .project-stats .stats-value { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.project-item .content .project-stats .value-title { font-size: .9rem; color: var(--smoke); }
.project-item .content .project-stats .value { font-weight: 700; color: var(--ink); }
.project-item .stats-percentage { font-weight: 700; color: var(--gold-dark) !important; font-size: .95rem; }
.project-item .stats-bar { background: var(--mist) !important; border-radius: 4px !important; height: 5px !important; overflow: hidden; }
.project-item .stats-bar .bar-line { background: linear-gradient(90deg, var(--gold-light), var(--gold-dark)) !important; border-radius: 4px !important; height: 100% !important; }
.project-item .content .date { font-size: .9rem; color: var(--smoke); margin-top: 10px; display: flex; align-items: center; gap: 5px; }

/* Éléments interactifs au-dessus de l'overlay stretched-link (z-index:1) */
.project-item .cats,
.project-item .author a,
.project-item .d-flex { position: relative; z-index: 2; }
.latest-post-box .post-link,
.post-item .post-link { position: relative; z-index: 2; }
.fancy-box-item .content { position: relative; z-index: 0; }

/* ── Blog / News cards ── */
.blog-post-loop { display: flex; flex-direction: column; gap: 28px; }
.post-item { border-radius: var(--r-md) !important; overflow: hidden !important; box-shadow: var(--sh-sm) !important; transition: var(--t) !important; background: var(--snow); border: 1.5px solid var(--mist) !important; display: flex; flex-direction: column; position: relative; cursor: pointer; }
.post-item:hover { transform: translateY(-5px) !important; box-shadow: var(--sh-lg) !important; border-color: var(--gold-light) !important; }
.post-thumbnail { overflow: hidden; max-height: 320px; }
.post-thumbnail img { width: 100%; height: 260px; object-fit: cover; display: block; transition: var(--t-slow); }
.post-item:hover .post-thumbnail img { transform: scale(1.04); }
.post-item .post-content { padding: 24px !important; flex: 1; display: flex; flex-direction: column; }
.post-item .post-meta { display: flex; gap: 16px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0 0 12px; }
.post-item .post-meta li a { font-size: .92rem; color: var(--smoke); display: flex; align-items: center; gap: 5px; transition: var(--t); }
.post-item .post-meta li a:hover { color: var(--gold-dark); }
.post-item .post-content .title { flex: 1; margin-bottom: 16px; }
.post-item .post-content .title a { font-weight: 700; font-size: 1.22rem; color: var(--ink); transition: var(--t); line-height: 1.4; }
.post-item .post-content .title a:hover { color: var(--gold-dark); }
.post-link { font-weight: 600; color: var(--gold-dark) !important; display: inline-flex; align-items: center; gap: 6px; font-size: .97rem; transition: var(--t); margin-top: auto; }
.post-link:hover { gap: 10px; color: var(--ink) !important; }

/* Latest news card (accueil slider) */
.latest-post-box { border-radius: var(--r-md) !important; overflow: hidden !important; box-shadow: var(--sh-sm) !important; transition: var(--t) !important; background: var(--snow); border: 1.5px solid var(--mist) !important; height: 100%; display: flex; flex-direction: column; position: relative; cursor: pointer; }
.latest-post-box:hover { transform: translateY(-5px) !important; box-shadow: var(--sh-lg) !important; border-color: var(--gold-light) !important; }
.latest-post-box .post-thumb { overflow: hidden; }
.latest-post-box .post-thumb img { transition: var(--t-slow); }
.latest-post-box:hover .post-thumb img { transform: scale(1.04); }
.latest-post-box .post-content { padding: 20px !important; flex: 1; display: flex; flex-direction: column; }
.latest-post-box .post-content .post-date { font-size: .9rem; color: var(--smoke); display: inline-flex; align-items: center; gap: 5px; margin-bottom: 10px; }

/* ── Sidebar widgets ── */
.blog-sidebar .widget, .sidebar-widget { border-radius: var(--r-md) !important; box-shadow: var(--sh-sm) !important; border: 1.5px solid var(--mist) !important; overflow: hidden; background: var(--snow); margin-bottom: 28px !important; padding: 22px !important; }
.widget-title { font-weight: 700; font-size: 1.05rem; letter-spacing: -.1px; color: var(--ink); padding-bottom: 12px; margin-bottom: 18px; position: relative; }
.widget-title::after { content: ''; position: absolute; bottom: 0; left: 0; width: 40px; height: 3px; background: linear-gradient(90deg, var(--gold-light), var(--gold)); border-radius: 2px; }

/* Search input in sidebar */
.search-form input, .search-form .search-input { border-radius: var(--r-pill) !important; border: 1.5px solid var(--mist) !important; padding: 10px 18px !important; font-family: var(--font) !important; font-size: .97rem !important; transition: var(--t) !important; background: var(--pale) !important; }
.search-form input:focus { border-color: var(--gold) !important; background: var(--snow) !important; outline: none !important; box-shadow: 0 0 0 3px rgba(232,184,0,.12) !important; }
.search-form button { border-radius: var(--r-pill) !important; background: linear-gradient(135deg, var(--gold-light), var(--gold)) !important; border: none !important; color: var(--ink) !important; font-weight: 600 !important; padding: 10px 20px !important; transition: var(--t) !important; }
.search-form button:hover { transform: translateY(-1px) !important; box-shadow: var(--gold-glow) !important; }

/* Category list in sidebar */
.sidebar-cats li, .widget .category-list li { padding: 8px 0; border-bottom: 1px solid var(--mist); display: flex; justify-content: space-between; align-items: center; font-size: .97rem; }
.sidebar-cats li:last-child, .widget .category-list li:last-child { border-bottom: none; }
.sidebar-cats li a, .widget .category-list li a { color: var(--ink-3); font-weight: 500; transition: var(--t); }
.sidebar-cats li a:hover, .widget .category-list li a:hover { color: var(--gold-dark); padding-left: 4px; }

/* Partners logos */
.partners-logos-one .logo { border-radius: var(--r-sm) !important; box-shadow: var(--sh-sm) !important; padding: 16px !important; background: var(--snow); transition: var(--t) !important; display: flex; align-items: center; justify-content: center; border: 1.5px solid var(--mist) !important; width: auto !important; height: auto !important; }
.partners-logos-one .logo:hover { transform: translateY(-4px) !important; box-shadow: var(--sh-lg) !important; border-color: var(--gold-light) !important; }

/* ── Forms (connexion / inscription) ── */
.contact-from-area { border-radius: var(--r-lg) !important; overflow: hidden !important; box-shadow: var(--sh-xl) !important; }
.contact-form { padding: 40px 36px !important; background: var(--snow); }
.contact-form .form-title { font-weight: 800; color: var(--ink); margin-bottom: 6px; font-size: 1.6rem; letter-spacing: -.5px; }
.contact-form .form-field label { font-weight: 600; font-size: .95rem; color: var(--ink-3); margin-bottom: 7px; display: block; letter-spacing: .1px; }
.contact-form .form-field input,
.contact-form .form-field select,
.contact-form .form-field textarea { width: 100%; border: 1.5px solid var(--mist) !important; border-radius: var(--r-sm) !important; padding: 11px 15px !important; font-size: 1rem !important; color: var(--ink) !important; transition: var(--t) !important; background: var(--pale) !important; font-family: var(--font) !important; }
.contact-form .form-field input:focus,
.contact-form .form-field select:focus,
.contact-form .form-field textarea:focus { border-color: var(--gold) !important; background: var(--snow) !important; outline: none !important; box-shadow: 0 0 0 3px rgba(232,184,0,.12) !important; }
.contact-form .form-field input::placeholder { color: #9ca3af !important; }

/* ── Step indicator (inscription) ── */
.ta-steps { display: flex; align-items: center; justify-content: center; gap: 0; padding: 24px 32px; background: var(--pale); border-bottom: 1px solid var(--mist); flex-wrap: wrap; }
.ta-step { display: flex; align-items: center; gap: 0; cursor: pointer; }
.ta-step-dot { width: 38px; height: 38px; border-radius: 50%; background: var(--mist); color: var(--smoke); font-weight: 700; font-size: .93rem; display: flex; align-items: center; justify-content: center; transition: var(--t); flex-shrink: 0; }
.ta-step.active .ta-step-dot { background: linear-gradient(135deg, var(--gold-light), var(--gold)); color: var(--ink); box-shadow: var(--gold-glow); }
.ta-step.done .ta-step-dot { background: var(--success); color: #fff; }
.ta-step-label { font-size: .87rem; font-weight: 600; color: var(--smoke); margin-left: 8px; margin-right: 4px; white-space: nowrap; }
.ta-step.active .ta-step-label { color: var(--gold-dark); }
.ta-step.done .ta-step-label { color: var(--success); }
.ta-step-line { width: 40px; height: 2px; background: var(--mist); margin: 0 4px; flex-shrink: 0; }
.ta-step-line.done { background: linear-gradient(90deg, var(--gold-light), var(--gold)); }
.ta-step-panel { animation: fadeUp .32s ease both; }
.ta-step-panel[style*='display: none'] { animation: none; }
.ta-step-title { font-size: 1.05rem; font-weight: 700; color: var(--ink); margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid var(--mist); display: flex; align-items: center; gap: 10px; }
.ta-step-title i { color: var(--gold); }
.ta-btn-prev { background: var(--pale) !important; color: var(--ink-3) !important; box-shadow: none !important; border: 1.5px solid var(--mist) !important; }
.ta-btn-prev:hover { background: var(--mist) !important; transform: translateY(-1px) !important; }

/* ── Toggle checkbox (inscription association) ── */
.ta-toggle-card { background: var(--pale); border-radius: var(--r-sm); padding: 14px 18px; border: 1.5px solid var(--mist); display: flex; align-items: center; gap: 12px; cursor: pointer; transition: var(--t); margin-bottom: 20px; }
.ta-toggle-card:hover { border-color: var(--gold); background: rgba(232,184,0,.04); }
.ta-toggle-card input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--gold); cursor: pointer; flex-shrink: 0; }
.ta-toggle-card label { font-weight: 600; font-size: .9rem; color: var(--ink-3); cursor: pointer; margin: 0; }

/* ── Project details page ── */
.project-summery { background: var(--snow) !important; border-radius: var(--r-md) !important; padding: 28px !important; box-shadow: var(--sh-md) !important; border: 1.5px solid var(--mist) !important; }
.project-summery .project-title { font-weight: 800; color: var(--ink); font-size: 1.3rem; line-height: 1.3; }
.project-summery .category { background: linear-gradient(135deg, var(--gold-light), var(--gold)); color: var(--ink) !important; border-radius: 50px; padding: 4px 14px; font-size: .87rem; font-weight: 700; display: inline-block; margin-bottom: 12px; }
.project-summery .meta { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin: 14px 0; }
.project-summery .meta .author { display: flex; align-items: center; gap: 8px; }
.project-summery .meta .author img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; border: 2px solid var(--gold-light); }
.project-summery .meta .author a { font-size: .95rem; font-weight: 600; color: var(--ink-3); }
.project-summery .meta .date { font-size: .93rem; color: var(--smoke); display: flex; align-items: center; gap: 5px; }
.project-funding-info { background: var(--pale); border-radius: var(--r-sm); padding: 16px; margin: 16px 0; }
.project-funding-info .info-box span:first-child { font-size: 1.4rem; font-weight: 800; color: var(--ink); display: block; }
.project-funding-info .info-box .info-title { font-size: .87rem; color: var(--smoke); }
.project-form .main-btn { width: 100%; text-align: center; margin-top: 16px; display: flex; justify-content: center; }
.project-thumb img { border-radius: var(--r-lg) !important; box-shadow: var(--sh-xl) !important; width: 100% !important; }
.description-content { background: var(--snow); border-radius: var(--r-md); padding: 28px; margin-bottom: 24px; border: 1.5px solid var(--mist); }
.description-content .description-title { font-weight: 700; color: var(--ink); margin-bottom: 12px; font-size: 1.1rem; }

/* ── Sidebar widgets (project detail) ── */
.category-widget, .latest-blog-widget { background: var(--snow); border-radius: var(--r-md); padding: 24px; box-shadow: var(--sh-sm); border: 1.5px solid var(--mist); margin-top: 20px; }
/* category list */
.category-widget ul { list-style: none; padding: 0; margin: 0; }
.category-widget ul li { border-bottom: 1px solid var(--mist); }
.category-widget ul li:last-child { border-bottom: none; }
.category-widget ul li a { display: flex; align-items: center; justify-content: space-between; padding: 10px 2px; color: var(--ink-3); font-weight: 500; font-size: .95rem; transition: var(--t); text-decoration: none; }
.category-widget ul li a:hover { color: var(--gold-dark); padding-left: 8px; }
.category-widget ul li a i { color: var(--gold); font-size: .82rem; flex-shrink: 0; }
/* derniers projets list */
.latest-blog-widget ul { list-style: none; padding: 0; margin: 0; }
.latest-blog-widget ul li { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--mist); transition: var(--t); }
.latest-blog-widget ul li:first-child { padding-top: 0; }
.latest-blog-widget ul li:last-child { border-bottom: none; padding-bottom: 0; }
.latest-blog-widget ul li .thumb { flex-shrink: 0; width: 72px; height: 60px; border-radius: var(--r-sm); overflow: hidden; background: var(--pale); }
.latest-blog-widget ul li .thumb img { width: 72px !important; height: 60px !important; object-fit: cover !important; display: block; }
.latest-blog-widget ul li .desc { flex: 1; min-width: 0; }
.latest-blog-widget ul li .desc h6 { font-size: .9rem; font-weight: 600; margin: 0 0 5px; line-height: 1.35; }
.latest-blog-widget ul li .desc h6 a { color: var(--ink); transition: var(--t); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.latest-blog-widget ul li .desc h6 a:hover { color: var(--gold-dark); }
.latest-blog-widget ul li .desc .date { font-size: .82rem; color: var(--smoke); display: flex; align-items: center; gap: 4px; }
.latest-blog-widget ul li .desc .date i { color: var(--gold); font-size: .78rem; }

/* ── Blog detail ── */
.blog-post-details .post-thumbnail img { border-radius: var(--r-md) !important; margin-bottom: 28px !important; }

/* ── Footer ── */
.site-footer { background: linear-gradient(180deg, var(--ink) 0%, #040e16 100%) !important; }
.site-footer .footer-content-area { padding: 72px 0 40px !important; }
.site-footer .widget-title { color: #fff !important; font-size: .9rem !important; font-weight: 700 !important; letter-spacing: .5px !important; text-transform: uppercase !important; padding-bottom: 12px !important; margin-bottom: 22px !important; position: relative !important; }
.site-footer .widget-title::after { content: '' !important; position: absolute !important; bottom: 0 !important; left: 0 !important; width: 32px !important; height: 2px !important; background: var(--gold) !important; border-radius: 2px !important; }
.site-footer .about-widget p { color: rgba(255,255,255,.55) !important; font-size: .97rem !important; line-height: 1.8 !important; }
.site-footer .nav-widget ul { list-style: none; padding: 0; margin: 0; }
.site-footer .nav-widget ul li a { color: rgba(255,255,255,.58) !important; font-size: .97rem !important; transition: var(--t) !important; padding: 5px 0 !important; display: flex !important; align-items: center !important; gap: 7px !important; }
.site-footer .nav-widget ul li a::before { content: '›'; color: var(--gold); font-weight: 700; transition: var(--t); }
.site-footer .nav-widget ul li a:hover { color: rgba(255,255,255,.9) !important; padding-left: 4px !important; }
.site-footer .info-list { list-style: none; padding: 0; margin: 0; }
.site-footer .info-list li { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 16px !important; }
.site-footer .info-list .icon { background: rgba(232,184,0,.14) !important; color: var(--gold-light) !important; border-radius: 50% !important; width: 38px !important; height: 38px !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: .9rem !important; flex-shrink: 0; }
.site-footer .info-list .info-title { color: rgba(255,255,255,.45) !important; font-size: .85rem !important; display: block !important; margin-bottom: 2px !important; }
.site-footer .info-list a { color: rgba(255,255,255,.8) !important; font-size: .97rem !important; transition: var(--t) !important; }
.site-footer .info-list a:hover { color: var(--gold-light) !important; }
.newsletter-form .form-title { font-size: .95rem !important; font-weight: 600 !important; color: rgba(255,255,255,.65) !important; margin-bottom: 10px !important; }
.newsletter-form form { display: flex !important; border-radius: 50px !important; overflow: hidden !important; border: 1px solid rgba(255,255,255,.12) !important; }
.newsletter-form input { flex: 1 !important; background: rgba(255,255,255,.07) !important; border: none !important; padding: 10px 16px !important; color: #fff !important; font-size: .95rem !important; font-family: var(--font) !important; }
.newsletter-form input::placeholder { color: rgba(255,255,255,.4) !important; }
.newsletter-form input:focus { outline: none !important; background: rgba(255,255,255,.1) !important; }
.newsletter-form button { background: linear-gradient(135deg, var(--gold-light), var(--gold)) !important; border: none !important; padding: 10px 16px !important; color: var(--ink) !important; cursor: pointer !important; transition: var(--t) !important; }
.newsletter-form button:hover { background: var(--gold-dark) !important; }
.copyright-area { border-top: 1px solid rgba(255,255,255,.07) !important; padding: 22px 0 !important; margin-top: 48px !important; }
.copyright-area p, .copyright-area a { color: rgba(255,255,255,.45) !important; font-size: .9rem !important; }
.copyright-area .social-icons { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.copyright-area .social-icons li a { background: rgba(255,255,255,.07) !important; border-radius: 50% !important; width: 34px !important; height: 34px !important; display: flex !important; align-items: center !important; justify-content: center !important; color: rgba(255,255,255,.6) !important; font-size: .8rem !important; transition: var(--t) !important; }
.copyright-area .social-icons li a:hover { background: var(--gold-light) !important; color: var(--ink) !important; transform: translateY(-2px) !important; }

/* ── Mobile menu ── */
.mobile-menu-panel { background: linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%) !important; }
.mobile-menu-panel .panel-menu li a { color: rgba(255,255,255,.8) !important; font-size: .95rem !important; padding: 12px 0 !important; border-bottom: 1px solid rgba(255,255,255,.07) !important; }
.mobile-menu-panel .panel-menu li a:hover, .mobile-menu-panel .panel-menu li.active a { color: var(--gold-light) !important; }

/* ── Scroll to top ── */
.scroll-to-target { background: linear-gradient(135deg, var(--gold-light), var(--gold)) !important; color: var(--ink) !important; border-radius: 50% !important; box-shadow: 0 4px 16px rgba(232,184,0,.4) !important; transition: var(--t) !important; }
.scroll-to-target:hover { transform: translateY(-3px) !important; }

/* ── Pagination ── */
.pagination { flex-wrap: wrap; justify-content: center !important; gap: 4px; width: 100% !important; }
.pagination .page-item .page-link { border-radius: var(--r-sm) !important; font-weight: 600 !important; font-size: .97rem !important; color: var(--ink-3) !important; border: 1.5px solid var(--mist) !important; padding: 8px 16px !important; transition: var(--t) !important; white-space: nowrap; }
.pagination .page-item .page-link:hover { background: var(--pale) !important; border-color: var(--gold) !important; color: var(--gold-dark) !important; }
.pagination .page-item.active .page-link { background: linear-gradient(135deg, var(--gold-light), var(--gold)) !important; border-color: var(--gold) !important; color: var(--ink) !important; box-shadow: var(--gold-glow) !important; }
nav[role="navigation"] { overflow: visible !important; }
/* Centre la nav de pagination Livewire (div.d-flex.d-sm-none) */
.d-flex.d-sm-none { justify-content: center !important; }
@media (max-width: 575.98px) {
    .pagination .page-item .page-link { font-size: .85rem !important; padding: 7px 12px !important; }
}

/* ── Utilities ── */
.ta-center { text-align: center; }
.inscription-image { background: url('../img/personalise/inscription.jpg') no-repeat center; background-size: cover; height: 100%; min-height: 300px; position: relative; }
.connexion-image { background: url('../img/personalise/connexion.jpg') no-repeat center; background-size: cover; height: 100%; min-height: 300px; position: relative; }

/* ── Animations ── */
@keyframes fadeUp        { from { opacity:0; transform:translateY(28px);         } to { opacity:1; transform:translateY(0);       } }
@keyframes fadeDown      { from { opacity:0; transform:translateY(-24px);        } to { opacity:1; transform:translateY(0);       } }
@keyframes fadeInLeft    { from { opacity:0; transform:translateX(-36px);        } to { opacity:1; transform:translateX(0);       } }
@keyframes fadeInRight   { from { opacity:0; transform:translateX(36px);         } to { opacity:1; transform:translateX(0);       } }
@keyframes zoomInSoft    { from { opacity:0; transform:scale(.88);               } to { opacity:1; transform:scale(1);            } }
@keyframes countUp       { from { opacity:0; transform:scale(.8);                } to { opacity:1; transform:scale(1);            } }
@keyframes shimmer       { 0%   { background-position: -600px 0; }  100% { background-position: 600px 0; } }
@keyframes floatY        { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes pulseGold     { 0%,100% { box-shadow: 0 0 0 0 rgba(232,184,0,.4); }   50% { box-shadow: 0 0 0 10px rgba(232,184,0,0); } }
@keyframes spinOnce      { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
@keyframes revealBar     { from { width:0; } to { width:var(--bar-w,0%); } }

/* WOW entry classes */
.wow.fadeInUp    { animation: fadeUp     .65s var(--ease) both; }
.wow.fadeInDown  { animation: fadeDown   .65s var(--ease) both; }
.wow.fadeInLeft  { animation: fadeInLeft .65s var(--ease) both; }
.wow.fadeInRight { animation: fadeInRight .65s var(--ease) both; }
.wow.zoomIn      { animation: zoomInSoft .6s  var(--ease) both; }

/* Stats number entrance */
.ta-stat-item .stat-number { animation: countUp .5s var(--ease) both; }

/* Stats icons hover spin */
.ta-stat-item:hover .stat-icon i { animation: spinOnce .5s var(--ease) both; }

/* Floating icon (hero, about) */
.ta-float { animation: floatY 4s ease-in-out infinite; }

/* Gold pulse on CTA button */
.main-btn.pulse-gold { animation: pulseGold 2s ease-in-out infinite; }

/* Progress bar reveal on load (triggered par JS IntersectionObserver) */
.stats-bar .bar-line { width: 0 !important; transition: width 1.1s cubic-bezier(.4,0,.2,1); }

/* Shimmer skeleton (for images loading) */
.ta-shimmer { background: linear-gradient(90deg, var(--mist) 25%, #f0f4f8 50%, var(--mist) 75%); background-size: 600px 100%; animation: shimmer 1.6s infinite; }

/* Card image zoom on hover — also applied to fancy-box */
.fancy-icon-boxes .fancy-box-item:hover .fancy-icon { animation: zoomInSoft .35s var(--ease) both; }

/* Section heading underline slide */
.common-heading .tagline::before { content:''; display:inline-block; width:0; height:2px; background:var(--gold); border-radius:2px; transition: width .5s var(--ease); vertical-align:middle; margin-right:0; }
.common-heading:hover .tagline::before, .common-heading.visible .tagline::before { width:24px; margin-right:8px; }

/* Page title animated gradient orbs */
.page-title-area::before { animation: floatY 7s ease-in-out infinite; }
.page-title-area::after  { animation: floatY 9s ease-in-out infinite reverse; }

/* Hero button entrance */
.hero-area-one .main-btn { animation: fadeUp .7s var(--ease) .4s both; }

/* Footer widget entrance handled by wow classes in HTML */

/* Smooth underline on nav links */
.nav-menu ul li a { position: relative; }
.nav-menu ul li a::after { content:''; position:absolute; bottom:-2px; left:14px; right:14px; height:2px; background:var(--gold); border-radius:2px; transform:scaleX(0); transition: transform .28s var(--ease); transform-origin:left; }
.nav-menu ul li a:hover::after, .nav-menu ul li.active > a::after { transform:scaleX(1); }

/* ── Intersection Observer scroll-reveal (compatible Livewire) ── */
.ta-reveal {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .65s var(--ease), transform .65s var(--ease);
}
.ta-reveal-zoom {
    opacity: 0;
    transform: scale(.93);
    transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.ta-reveal-left {
    opacity: 0;
    transform: translateX(-32px);
    transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.ta-reveal-right {
    opacity: 0;
    transform: translateX(32px);
    transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.ta-reveal.visible,
.ta-reveal-zoom.visible,
.ta-reveal-left.visible,
.ta-reveal-right.visible {
    opacity: 1;
    transform: none;
}

/* ── Responsive ── */
@media (max-width: 1199px) {
    .ta-stats-bar .stats-inner { grid-template-columns: repeat(2, 1fr); }
    .ta-stat-item:nth-child(2)::after { display: none; }
}
@media (max-width: 991px) {
    .page-title-area { padding: 40px 0; }
    .page-title-area .page-title { font-size: 1.65rem; }
    .about-section-one { padding: 56px 0; }
}
@media (max-width: 767px) {
    .ta-stats-bar .stats-inner { grid-template-columns: repeat(2, 1fr); }
    .ta-stat-item::after { display: none !important; }
    .contact-form { padding: 28px 20px !important; }
    .section-gap { padding: 56px 0 !important; }
    .ta-steps { gap: 4px; }
    .ta-step-line { width: 20px; }
    .ta-step-label { display: none; }
}
@media (max-width: 479px) {
    .ta-stats-bar .stats-inner { grid-template-columns: repeat(2, 1fr); }
    .page-title-area .page-title { font-size: 1.4rem; }
    .project-item .thumb { height: 190px !important; }
    .hero-area-one .splide__slide img { height: 52vh; }
}
