/* =============================================================
   VeilleTechno-IT Magazine — magazine.css v2.5.13
   Palette et typographie injectées dynamiquement depuis
   Réglages → Magazine VTI (functions.php → vti_inject_design_tokens)
   ============================================================= */

/* ─────────────────────────────────────────────
   0. VARIABLES — FALLBACKS CSS
   Les valeurs ci-dessous sont les défauts utilisés si le <style id="vti-design-tokens">
   n'est pas encore injecté (ex: cache agressif).
   Couleurs inspirées du site VeilleTechno-IT original :
   Orange principal #FF6600, Teal #009BAA, Dark #1A1A2E
   ───────────────────────────────────────────── */
:root {
    /* ── Couleurs dynamiques (overridées par vti_inject_design_tokens) ── */
    --vti-accent:        #FF6600;   /* Orange principal — nav, boutons, badges */
    --vti-secondary:     #009BAA;   /* Teal — titres de sections, badges catégorie */
    --vti-dark:          #1A1A2E;   /* Fond sombre — topbar, newsletter */
    --vti-text-color:    #2D2D2D;   /* Texte principal */
    --vti-nav-bg:        #FF6600;   /* Fond de la navigation */
    --vti-nav-text:      #FFFFFF;   /* Texte de la navigation */
    --vti-link:          #009BAA;   /* Liens dans le contenu */
    --vti-logo-width:    180px;     /* Largeur du logo */
    --vti-logo-justify:  center;    /* Position du logo */

    /* ── Dérivatifs (calculés si color-mix supporté, sinon fallback manuel) ── */
    --vti-accent-hover:  #CC5200;
    --vti-accent-light:  rgba(255,102,0,0.10);
    --vti-secondary-hover: #007A88;
    --vti-secondary-light: rgba(0,155,170,0.10);

    /* ── Palette neutre (inchangée) ── */
    --vti-black:   #1a1a2e;
    --vti-ink:     #2d2d2d;
    --vti-body:    #444444;
    --vti-muted:   #6b7280;
    --vti-light:   #9ca3af;
    --vti-border:  #e5e7eb;
    --vti-bg:      #ffffff;
    --vti-bg-alt:  #f9fafb;
    --vti-bg-dark: #1a1a2e;

    /* ── Surfaces sombres (topbar, newsletter — toujours sombres) ── */
    --vti-dark-surface: var(--vti-dark);
    --vti-dark-text:    #f1f5f9;
    --vti-dark-muted:   #94a3b8;
    --vti-dark-border:  rgba(255,255,255,0.08);

    /* ── Typographie dynamique ── */
    --vti-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --vti-sans:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* ── Layout ── */
    --vti-section-pad: 5rem;
    --vti-container:   1280px;

    /* ── Effets ── */
    --vti-ease:        cubic-bezier(0.4, 0, 0.2, 1);
    --vti-ease-back:   cubic-bezier(0.34, 1.56, 0.64, 1);
    --vti-shadow-sm:   0 2px 8px rgba(0,0,0,0.06);
    --vti-shadow-md:   0 8px 32px rgba(0,0,0,0.10);
    --vti-shadow-lg:   0 24px 64px rgba(0,0,0,0.14);
    --vti-shadow-xl:   0 40px 80px rgba(0,0,0,0.18);

    /* ── Safari safe area ── */
    --vti-safe-left:   env(safe-area-inset-left, 0px);
    --vti-safe-right:  env(safe-area-inset-right, 0px);
    --vti-safe-bottom: env(safe-area-inset-bottom, 0px);

    /* ── Hover lift cartes ── */
    --vti-lift-y:      -6px;
    --vti-lift-shadow: 0 16px 40px rgba(0,0,0,0.12);
}

/* ─────────────────────────────────────────────
   0c. RESET & BASE UNIVERSELS
   ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%; /* Safari iOS */
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    /* Évite les défilements horizontaux parasites sur iOS */
    overflow-x: hidden;
}

body {
    font-family: var(--vti-sans);
    background-color: var(--vti-bg);
    color: var(--vti-body);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

img, video, svg {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Safari : corrige les inputs */
input, button, textarea, select {
    font-family: inherit;
    font-size: inherit;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
}

a { color: inherit; }
/* Restaure l'affichage natif des cases à cocher / radios après le reset global */
input[type="checkbox"],
input[type="radio"] {
    -webkit-appearance: auto;
    appearance: auto;
    display: inline-block;
    width: 1rem;
    height: 1rem;
    opacity: 1 !important;
    position: static !important;
    clip: auto !important;
    pointer-events: auto;
    accent-color: var(--vti-accent);
    background: #fff;
    border-radius: 0.2rem;
    vertical-align: middle;
}
input[type="radio"] {
    border-radius: 999px;
}


/* Empêche le zoom auto iOS sur les inputs */
@supports (-webkit-touch-callout: none) {
    input[type="text"],
    input[type="email"],
    input[type="search"],
    textarea {
        font-size: 16px !important;
    }
}


/* ─────────────────────────────────────────────
   1. HEADER
   ───────────────────────────────────────────── */
.vti-header {
    position: sticky;
    top: 0;
    z-index: 200;
    width: 100%;
    background: var(--vti-bg);
    /* Safari backdrop-filter */
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    backdrop-filter: saturate(180%) blur(16px);
    border-bottom: 1px solid var(--vti-border);
    /* Safe area iPhone notch */
    padding-left: var(--vti-safe-left);
    padding-right: var(--vti-safe-right);
    will-change: transform;
}

@media (prefers-color-scheme: dark) {
    .vti-header { background: rgba(11,17,32,0.95); }
}

/* Topbar */
.vti-topbar {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    padding: 0.5rem 2rem;
    background: var(--vti-dark-surface);
    color: var(--vti-dark-muted);
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    overflow: hidden;
    /* Transition masquage au scroll */
    max-height: 3rem;
    opacity: 1;
    -webkit-transition: max-height 0.35s var(--vti-ease), opacity 0.35s var(--vti-ease), padding 0.35s;
    transition: max-height 0.35s var(--vti-ease), opacity 0.35s var(--vti-ease), padding 0.35s;
}
.vti-topbar.is-hidden {
    max-height: 0;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
}
.vti-topbar a { color: var(--vti-dark-muted); text-decoration: none; transition: color 0.2s; }
.vti-topbar a:hover { color: #fff; }

/* Zone principale header */
.vti-header-main {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    padding: 0 2rem;
    height: 5.5rem;
    max-width: var(--vti-container);
    margin: 0 auto;
    gap: 1rem;
}

.vti-header-left,
.vti-header-right {
    display: -webkit-flex;
    display: flex;
    -webkit-flex: 1;
    flex: 1;
    -webkit-align-items: center;
    align-items: center;
}
.vti-header-right {
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
}

/* Bouton recherche desktop */
.vti-search-btn {
    display: -webkit-inline-flex;
    display: inline-flex;
    -webkit-align-items: center;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--vti-muted);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    -webkit-transition: color 0.2s;
    transition: color 0.2s;
}
.vti-search-btn:hover { color: var(--vti-accent); }

/* Bouton recherche mobile (affiché uniquement sur mobile) */
.vti-search-btn-mobile {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--vti-muted);
    padding: 0.5rem;
    -webkit-transition: color 0.2s;
    transition: color 0.2s;
}
.vti-search-btn-mobile:hover { color: var(--vti-accent); }

/* Logo */
.vti-logo {
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
    text-align: center;
}
.vti-logo a {
    font-family: var(--vti-serif);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 700;
    color: var(--vti-black);
    text-decoration: none;
    letter-spacing: -0.03em;
    line-height: 1;
    display: -webkit-inline-flex;
    display: inline-flex;
    -webkit-align-items: baseline;
    align-items: baseline;
    gap: 0;
    -webkit-transition: opacity 0.2s;
    transition: opacity 0.2s;
}
.vti-logo a:hover { opacity: 0.8; }
.vti-logo-dot { color: var(--vti-accent); }
.vti-logo-it {
    font-size: 0.45em;
    font-family: var(--vti-sans);
    font-weight: 800;
    letter-spacing: 0.05em;
    color: var(--vti-accent);
    text-transform: uppercase;
    -webkit-align-self: flex-end;
    align-self: flex-end;
    margin-bottom: 0.1em;
    margin-left: 0.1em;
}

/* Bouton S'abonner */
.vti-btn-subscribe {
    display: inline-block;
    padding: 0.625rem 1.5rem;
    background: var(--vti-black);
    color: #fff;
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    text-decoration: none;
    border: none;
    cursor: pointer;
    -webkit-transition: background 0.2s;
    transition: background 0.2s;
    white-space: nowrap;
}
.vti-btn-subscribe:hover { background: var(--vti-accent); color: #fff; }
.vti-btn-subscribe--full { display: block; text-align: center; width: 100%; padding: 1rem; }

/* Nav desktop */
.vti-nav-desktop {
    border-top: 1px solid var(--vti-border);
}
.vti-nav-desktop-list {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    gap: 2.5rem;
    list-style: none;
    margin: 0 auto;
    padding: 0.875rem 2rem;
    max-width: var(--vti-container);
}
.vti-nav-desktop-list li { margin: 0; padding: 0; }
.vti-nav-desktop-list a {
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--vti-body);
    text-decoration: none;
    position: relative;
    padding-bottom: 0.25rem;
    -webkit-transition: color 0.2s;
    transition: color 0.2s;
}
.vti-nav-desktop-list a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--vti-accent);
    -webkit-transition: width 0.25s var(--vti-ease);
    transition: width 0.25s var(--vti-ease);
}
.vti-nav-desktop-list a:hover,
.vti-nav-desktop-list .current-menu-item > a { color: var(--vti-accent); }
.vti-nav-desktop-list a:hover::after,
.vti-nav-desktop-list .current-menu-item > a::after { width: 100%; }

/* ── HAMBURGER ANIMÉ ────────────────────────── */
.vti-hamburger {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    /* Zone de tap minimum 44px Apple HIG */
    min-width: 44px;
    min-height: 44px;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    color: var(--vti-black);
    position: relative;
    z-index: 10;
}
.vti-hamburger-box {
    display: block;
    width: 26px;
    height: 18px;
    position: relative;
}
.vti-hamburger-inner,
.vti-hamburger-inner::before,
.vti-hamburger-inner::after {
    display: block;
    width: 26px;
    height: 2px;
    background-color: var(--vti-black);
    position: absolute;
    border-radius: 2px;
    -webkit-transition: -webkit-transform 0.3s var(--vti-ease), opacity 0.3s, top 0.3s var(--vti-ease);
    transition: transform 0.3s var(--vti-ease), opacity 0.3s, top 0.3s var(--vti-ease);
}
.vti-hamburger-inner { top: 50%; margin-top: -1px; }
.vti-hamburger-inner::before { content: ''; top: -8px; }
.vti-hamburger-inner::after  { content: ''; top: 8px;  }

/* État actif → croix */
.vti-hamburger.is-active .vti-hamburger-inner {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.vti-hamburger.is-active .vti-hamburger-inner::before {
    top: 0;
    opacity: 0;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
}
.vti-hamburger.is-active .vti-hamburger-inner::after {
    top: 0;
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
}

@media (prefers-color-scheme: dark) {
    .vti-hamburger-inner,
    .vti-hamburger-inner::before,
    .vti-hamburger-inner::after { background-color: var(--vti-black); }
}

/* ── MENU MOBILE PANEL ─────────────────────── */
.vti-nav-mobile {
    position: fixed;
    top: 0;
    left: 0;
    width: min(320px, 90vw);
    height: 100%;
    background: var(--vti-bg);
    z-index: 300;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    -webkit-transition: -webkit-transform 0.35s var(--vti-ease);
    transition: transform 0.35s var(--vti-ease);
    box-shadow: var(--vti-shadow-xl);
    /* Safe area iPhone */
    padding-bottom: var(--vti-safe-bottom);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
.vti-nav-mobile.is-open {
    -webkit-transform: translateX(0);
    transform: translateX(0);
}

.vti-nav-mobile-header {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    padding: 1.5rem 1.5rem 1rem;
    border-bottom: 1px solid var(--vti-border);
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    background: var(--vti-bg);
    z-index: 1;
}
.vti-nav-mobile-brand {
    font-family: var(--vti-serif);
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--vti-black);
    letter-spacing: -0.025em;
}
.vti-nav-mobile-close {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--vti-muted);
    padding: 0.5rem;
    min-width: 44px;
    min-height: 44px;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-transition: color 0.2s;
    transition: color 0.2s;
}
.vti-nav-mobile-close:hover { color: var(--vti-accent); }

.vti-nav-mobile-body {
    -webkit-flex: 1;
    flex: 1;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    padding: 1rem 0;
}
.vti-nav-mobile-list {
    list-style: none;
    margin: 0;
    padding: 0;
    -webkit-flex: 1;
    flex: 1;
}
.vti-nav-mobile-list li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--vti-border);
}
.vti-nav-mobile-list a {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    padding: 1.125rem 1.5rem;
    font-family: var(--vti-sans);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--vti-black);
    text-decoration: none;
    /* Zone de tap suffisante */
    min-height: 54px;
    -webkit-transition: color 0.2s, background 0.2s;
    transition: color 0.2s, background 0.2s;
}
.vti-nav-mobile-list a::after {
    content: '›';
    color: var(--vti-border);
    font-size: 1.25rem;
    line-height: 1;
}
.vti-nav-mobile-list a:hover,
.vti-nav-mobile-list .current-menu-item a {
    color: var(--vti-accent);
    background: var(--vti-accent-light);
}
.vti-nav-mobile-footer {
    padding: 1.5rem;
    border-top: 1px solid var(--vti-border);
    margin-top: auto;
}
.vti-nav-mobile-edition {
    margin-top: 1rem;
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--vti-muted);
    text-align: center;
}

/* Overlay sombre */
.vti-nav-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 250;
    opacity: 0;
    pointer-events: none;
    -webkit-transition: opacity 0.35s var(--vti-ease);
    transition: opacity 0.35s var(--vti-ease);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}
.vti-nav-overlay.is-visible {
    opacity: 1;
    pointer-events: auto;
}

/* Overlay recherche */
.vti-search-overlay {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: var(--vti-bg);
    border-bottom: 1px solid var(--vti-border);
    box-shadow: var(--vti-shadow-md);
    z-index: 199;
    padding: 1.5rem 2rem;
    opacity: 0;
    pointer-events: none;
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
    -webkit-transition: opacity 0.2s, -webkit-transform 0.2s;
    transition: opacity 0.2s, transform 0.2s;
}
.vti-search-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}
.vti-search-overlay-inner {
    max-width: 640px;
    margin: 0 auto;
    position: relative;
}
.vti-search-close {
    position: absolute;
    right: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--vti-muted);
    padding: 0.5rem;
    min-width: 44px;
    min-height: 44px;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-transition: color 0.2s;
    transition: color 0.2s;
}
.vti-search-close:hover { color: var(--vti-accent); }


/* ─────────────────────────────────────────────
   2. UTILITAIRES GLOBAUX
   ───────────────────────────────────────────── */
.vti-container {
    max-width: var(--vti-container);
    margin: 0 auto;
    padding: 0 2rem;
}

.vti-section-header {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 3.5rem;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}
.vti-section-header h2 {
    font-family: var(--vti-serif);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 700;
    color: var(--vti-black);
    letter-spacing: -0.02em;
    white-space: nowrap;
    margin: 0;
    line-height: 1.2;
}
.vti-section-line {
    -webkit-flex: 1;
    flex: 1;
    height: 1px;
    background: var(--vti-border);
    min-width: 2rem;
}
.vti-section-link {
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--vti-accent);
    text-decoration: none;
    white-space: nowrap;
    -webkit-transition: color 0.2s;
    transition: color 0.2s;
}
.vti-section-link:hover { color: var(--vti-black); }

.vti-label {
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--vti-accent);
    display: block;
    margin-bottom: 0.75rem;
}
.vti-meta {
    font-family: var(--vti-sans);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--vti-muted);
}
.vti-meta strong { color: var(--vti-ink); }
.vti-meta-views { display: inline-flex; align-items: center; gap: 0.42rem; white-space: nowrap; flex-wrap: nowrap; }
.vti-meta-views svg { flex: 0 0 auto; opacity: 0.82; display:block; }
.vti-meta-views .vti-meta-views-count { display: inline-block; line-height: 1; font: inherit; font-weight: 700; margin: 0; }
.vti-sep { margin: 0 0.4rem; color: var(--vti-border); }

.vti-btn-outline {
    display: inline-block;
    padding: 1rem 2.5rem;
    border: 1px solid var(--vti-black);
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--vti-black);
    text-decoration: none;
    -webkit-transition: background 0.2s, color 0.2s;
    transition: background 0.2s, color 0.2s;
}
.vti-btn-outline:hover { background: var(--vti-black); color: var(--vti-bg); }

/* Image wrapper avec zoom hover */
.vti-img-wrap {
    overflow: hidden;
    background: var(--vti-bg-alt);
    /* Safari : fix du overflow sur les enfants transformés */
    -webkit-mask-image: -webkit-radial-gradient(white, black);
}
.vti-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    -webkit-transition: -webkit-transform 0.65s var(--vti-ease);
    transition: transform 0.65s var(--vti-ease);
    will-change: transform;
}
.vti-img-wrap:hover img {
    -webkit-transform: scale(1.04);
    transform: scale(1.04);
}

/* ── HOVER LIFT (micro-animation cartes) ────── */
.vti-card-lift {
    -webkit-transition: -webkit-transform 0.3s var(--vti-ease-back), box-shadow 0.3s var(--vti-ease);
    transition: transform 0.3s var(--vti-ease-back), box-shadow 0.3s var(--vti-ease);
    will-change: transform;
    /* Safari : isolation du contexte */
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}
.vti-card-lift:hover {
    -webkit-transform: translateY(var(--vti-lift-y));
    transform: translateY(var(--vti-lift-y));
    box-shadow: var(--vti-lift-shadow);
}

/* Sidebar heading */
.vti-sidebar-heading {
    font-family: var(--vti-sans);
    font-size: 0.6875rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--vti-light);
    margin: 0 0 1.25rem;
}
.vti-sidebar-block {
    margin-bottom: 2.5rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid var(--vti-border);
}
.vti-sidebar-block:last-child { border-bottom: none; margin-bottom: 0; }

/* Sidebar newsletter */
.vti-sidebar-nl { background: var(--vti-dark-surface); padding: 1.5rem; border: none; }
.vti-sidebar-nl-eyebrow { font-family: var(--vti-sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-accent); margin: 0 0 0.75rem; }
.vti-sidebar-nl-title { font-family: var(--vti-serif); font-size: 1.125rem; font-weight: 700; color: #f1f5f9; margin: 0 0 1.25rem; line-height: 1.3; }
.vti-sidebar-nl-btn { display: block; text-align: center; padding: 0.875rem; background: var(--vti-accent); color: #fff; font-family: var(--vti-sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; text-decoration: none; -webkit-transition: background 0.2s; transition: background 0.2s; }
.vti-sidebar-nl-btn:hover { background: var(--vti-accent-hover); color: #fff; }

/* Sidebar catégories */
.vti-sidebar-categories ul { list-style: none; margin: 0; padding: 0; }
.vti-sidebar-categories li { border-bottom: 1px solid var(--vti-bg-alt); }
.vti-sidebar-categories a { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: center; align-items: center; padding: 0.875rem 0; font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 600; color: var(--vti-body); text-decoration: none; -webkit-transition: color 0.2s; transition: color 0.2s; min-height: 44px; }
.vti-sidebar-categories a:hover,
.vti-sidebar-categories .current-cat a { color: var(--vti-accent); }
.vti-sidebar-categories .count { font-size: 0.75rem; color: var(--vti-light); }

/* Sidebar popular */
.vti-sidebar-popular-list { list-style: none; margin: 0; padding: 0; }
.vti-sidebar-popular-list li { border-bottom: 1px solid var(--vti-bg-alt); }
.vti-sidebar-popular-list a { display: -webkit-flex; display: flex; -webkit-align-items: flex-start; align-items: flex-start; gap: 0.75rem; padding: 0.75rem 0; text-decoration: none; min-height: 44px; }
.vti-sidebar-pop-num { font-family: var(--vti-serif); font-size: 1.25rem; font-weight: 700; color: var(--vti-border); line-height: 1; min-width: 2rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-sidebar-popular-list a:hover .vti-sidebar-pop-num { color: var(--vti-accent-light); }
.vti-sidebar-pop-title { font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 600; color: var(--vti-body); line-height: 1.4; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-sidebar-popular-list a:hover .vti-sidebar-pop-title { color: var(--vti-accent); }

/* Sidebar recent */
.vti-sidebar-recent { list-style: none; margin: 0; padding: 0; }
.vti-sidebar-recent li { border-bottom: 1px solid var(--vti-bg-alt); }
.vti-sidebar-recent a { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; gap: 0.2rem; padding: 0.75rem 0; text-decoration: none; min-height: 44px; }
.vti-sidebar-recent-label { margin-bottom: 0; font-size: 0.5625rem; }
.vti-sidebar-recent-title { font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 600; color: var(--vti-body); line-height: 1.4; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-sidebar-recent a:hover .vti-sidebar-recent-title { color: var(--vti-accent); }

/* Formulaires de recherche WordPress */
.search-form { display: -webkit-flex; display: flex; gap: 0; }
.search-form label { display: none; }
.search-field { -webkit-flex: 1; flex: 1; height: 2.875rem; padding: 0 1rem; border: 1px solid var(--vti-border); border-right: none; background: var(--vti-bg); color: var(--vti-ink); font-family: var(--vti-sans); font-size: 1rem; /* ≥16px évite zoom iOS */ outline: none; -webkit-transition: border-color 0.2s; transition: border-color 0.2s; }
.search-field:focus { border-color: var(--vti-accent); }
.search-submit { height: 2.875rem; padding: 0 1.25rem; background: var(--vti-black); color: #fff; border: none; font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; -webkit-transition: background 0.2s; transition: background 0.2s; white-space: nowrap; }
.search-submit:hover { background: var(--vti-accent); }


/* ─────────────────────────────────────────────
   3. HERO (homepage)
   ───────────────────────────────────────────── */
.vti-hero {
    position: relative;
    width: 100%;
    height: 85vh;
    min-height: 580px;
    max-height: 960px;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: flex-end;
    align-items: flex-end;
    overflow: hidden;
}
.vti-hero-bg { position: absolute; inset: 0; z-index: 0; }
.vti-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.vti-hero-gradient {
    position: absolute; inset: 0;
    background: -webkit-linear-gradient(top, rgba(10,15,30,0.05) 0%, rgba(10,15,30,0.6) 45%, rgba(10,15,30,0.97) 100%);
    background: linear-gradient(to bottom, rgba(10,15,30,0.05) 0%, rgba(10,15,30,0.6) 45%, rgba(10,15,30,0.97) 100%);
}
.vti-hero-content {
    position: relative;
    z-index: 10;
    width: 100%;
    padding: 0 2rem 4rem;
    max-width: calc(var(--vti-container) + 4rem);
    margin: 0 auto;
    -webkit-animation: vti-fade-up 0.9s var(--vti-ease) both;
    animation: vti-fade-up 0.9s var(--vti-ease) both;
}
/* Safe area iPhone notch bas */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
    .vti-hero-content { padding-bottom: calc(4rem + env(safe-area-inset-bottom)); }
}

.vti-hero-badges { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 1rem; margin-bottom: 1.5rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-badge-une { display: inline-block; background: var(--vti-accent); color: #fff; font-family: var(--vti-sans); font-size: 0.625rem; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; padding: 0.35rem 0.875rem; }
.vti-badge-edition { font-family: var(--vti-sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.vti-hero-title { font-family: var(--vti-serif); font-size: clamp(2rem, 5.5vw, 4.75rem); font-weight: 700; color: #fff; line-height: 1.08; letter-spacing: -0.02em; margin: 0 0 1.5rem; max-width: 900px; text-wrap: balance; }
.vti-hero-title a { color: inherit; text-decoration: none; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-hero-title a:hover { color: rgba(255,255,255,0.82); }
.vti-hero-excerpt { font-family: var(--vti-sans); font-size: clamp(1rem, 2vw, 1.125rem); color: rgba(255,255,255,0.72); line-height: 1.7; max-width: 620px; margin: 0 0 2rem; }
.vti-hero-meta { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 1rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-hero-author { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 0.75rem; }
.vti-hero-author img { width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 2px solid rgba(255,255,255,0.25); object-fit: cover; -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-hero-author span { font-family: var(--vti-sans); font-size: 0.8125rem; font-weight: 600; color: #fff; text-transform: uppercase; letter-spacing: 0.05em; }
.vti-hero-meta-sep { color: rgba(255,255,255,0.2); }
.vti-hero-date, .vti-hero-time { font-family: var(--vti-sans); font-size: 0.75rem; font-weight: 600; color: rgba(255,255,255,0.5); letter-spacing: 0.1em; text-transform: uppercase; }

/* Strip secondaire */
.vti-hero-strip { border-bottom: 1px solid var(--vti-border); background: var(--vti-bg); }
.vti-hero-strip-inner { max-width: var(--vti-container); margin: 0 auto; padding: 0 2rem; display: -webkit-flex; display: flex; }
.vti-hero-strip-item { -webkit-flex: 1; flex: 1; padding: 1.75rem 2rem; border-right: 1px solid var(--vti-border); text-decoration: none; display: block; -webkit-transition: background 0.2s; transition: background 0.2s; }
.vti-hero-strip-item:first-child { border-left: 1px solid var(--vti-border); }
.vti-hero-strip-item:last-child { border-right: none; }
.vti-hero-strip-item:hover { background: var(--vti-bg-alt); }
.vti-hero-strip-title { font-family: var(--vti-serif); font-size: 1.0625rem; font-weight: 700; color: var(--vti-black); line-height: 1.3; letter-spacing: -0.01em; margin: 0.5rem 0 1rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-hero-strip-item:hover .vti-hero-strip-title { color: var(--vti-accent); }
.vti-hero-strip-footer { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: center; align-items: center; }
.vti-hero-strip-footer span { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-muted); }


/* ─────────────────────────────────────────────
   4. SECTIONS HOMEPAGE
   ───────────────────────────────────────────── */

/* Incontournables */
.vti-trending { padding: var(--vti-section-pad) 0; background: var(--vti-bg); }
.vti-trending-grid { display: -webkit-flex; display: flex; gap: 3.5rem; -webkit-align-items: flex-start; align-items: flex-start; }
.vti-trending-main { -webkit-flex: 7; flex: 7; min-width: 0; }
.vti-trending-side { -webkit-flex: 5; flex: 5; min-width: 0; display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; gap: 2.5rem; }
.vti-trending-main a,
.vti-trending-side-item a { text-decoration: none; display: block; }
.vti-trending-main .vti-img-wrap { aspect-ratio: 4/3; margin-bottom: 1.75rem; }
.vti-trending-side-item .vti-img-wrap { aspect-ratio: 16/9; margin-bottom: 1.25rem; }
.vti-card-title { font-family: var(--vti-serif); font-weight: 700; color: var(--vti-black); line-height: 1.2; letter-spacing: -0.02em; margin: 0 0 0.875rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-trending-main .vti-card-title { font-size: clamp(1.5rem, 3vw, 2.375rem); }
.vti-trending-side-item .vti-card-title { font-size: clamp(1.125rem, 2vw, 1.375rem); }
a:hover .vti-card-title,
a:focus .vti-card-title { color: var(--vti-accent); }
.vti-trending-main .vti-excerpt { font-family: var(--vti-sans); font-size: 1.0625rem; color: var(--vti-body); line-height: 1.75; margin: 0 0 1.25rem; }
.vti-trending-side-item + .vti-trending-side-item { padding-top: 2.5rem; border-top: 1px solid var(--vti-border); }

/* Rubriques */
.vti-categories { padding: var(--vti-section-pad) 0; background: var(--vti-bg); border-top: 1px solid var(--vti-border); }
.vti-categories-centred-header { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; gap: 1.5rem; margin-bottom: 4rem; }
.vti-categories-centred-header span { font-family: var(--vti-sans); font-size: clamp(1rem, 1.4vw, 1.375rem); font-weight: 900; letter-spacing: 0.22em; text-transform: uppercase; color: var(--vti-light); }
.vti-centred-line { width: 4rem; height: 1px; background: var(--vti-border); }
.vti-categories-grid { display: -webkit-flex; display: flex; gap: 5rem; }
.vti-categories-grid > * { -webkit-flex: 1; flex: 1; min-width: 0; }
.vti-cat-block-header { display: -webkit-flex; display: flex; -webkit-align-items: flex-end; align-items: flex-end; -webkit-justify-content: space-between; justify-content: space-between; border-bottom: 2px solid var(--vti-black); padding-bottom: 1rem; margin-bottom: 2rem; gap: 1rem; }
.vti-cat-block-header h3 { font-family: var(--vti-serif); font-size: clamp(1.375rem, 2.5vw, 1.875rem); font-weight: 700; color: var(--vti-black); letter-spacing: -0.02em; margin: 0; line-height: 1.2; }
.vti-cat-see-all { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--vti-accent); text-decoration: none; white-space: nowrap; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-cat-see-all:hover { color: var(--vti-black); }
.vti-cat-main-article a { text-decoration: none; display: block; margin-bottom: 2rem; }
.vti-cat-main-article .vti-img-wrap { aspect-ratio: 4/3; margin-bottom: 1.5rem; }
.vti-cat-main-article .vti-card-title { font-size: clamp(1.25rem, 2vw, 1.75rem); }
.vti-cat-sub-list { border-top: 1px solid var(--vti-border); padding-top: 1.5rem; display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; gap: 1.5rem; }
.vti-cat-sub-item { display: -webkit-flex; display: flex; gap: 1rem; -webkit-align-items: flex-start; align-items: flex-start; text-decoration: none; min-height: 44px; }
.vti-cat-sub-num { font-family: var(--vti-serif); font-size: 1.5rem; font-weight: 700; color: var(--vti-border); line-height: 1; min-width: 2.5rem; padding-top: 0.15rem; -webkit-flex-shrink: 0; flex-shrink: 0; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-cat-sub-item:hover .vti-cat-sub-num { color: var(--vti-accent-light); }
.vti-cat-sub-title { font-family: var(--vti-serif); font-size: 1.0625rem; font-weight: 700; color: var(--vti-ink); line-height: 1.3; letter-spacing: -0.01em; margin: 0 0 0.4rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-cat-sub-item:hover .vti-cat-sub-title { color: var(--vti-accent); }
.vti-cat-sub-excerpt { font-family: var(--vti-sans); font-size: 0.8125rem; color: var(--vti-muted); line-height: 1.6; margin: 0 0 0.35rem; }
.vti-cat-sub-readtime { font-family: var(--vti-sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--vti-light); }

/* Fil Éditorial */
.vti-editorial { padding: var(--vti-section-pad) 0; background: var(--vti-bg-alt); border-top: 1px solid var(--vti-border); }
.vti-editorial-inner { max-width: 960px; margin: 0 auto; }
.vti-editorial-list { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; }
.vti-editorial-item { display: -webkit-flex; display: flex; gap: 3rem; -webkit-align-items: flex-start; align-items: flex-start; padding: 2.5rem 0; border-bottom: 1px solid var(--vti-border); text-decoration: none; -webkit-transition: background 0.15s; transition: background 0.15s; }
.vti-editorial-item:first-child { padding-top: 0; }
.vti-editorial-item:last-child { border-bottom: none; }
.vti-editorial-num { font-family: var(--vti-serif); font-size: 2.5rem; font-weight: 700; color: var(--vti-border); line-height: 1; min-width: 3.5rem; padding-top: 0.3rem; -webkit-flex-shrink: 0; flex-shrink: 0; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-editorial-item:hover .vti-editorial-num { color: var(--vti-accent-light); }
.vti-editorial-body { -webkit-flex: 1; flex: 1; min-width: 0; }
.vti-editorial-kicker { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-editorial-kicker .vti-label { margin: 0; }
.vti-kicker-dot { width: 0.25rem; height: 0.25rem; border-radius: 50%; background: var(--vti-border); -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-editorial-date { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-muted); }
.vti-editorial-title { font-family: var(--vti-serif); font-size: clamp(1.125rem, 2.5vw, 1.625rem); font-weight: 700; color: var(--vti-black); line-height: 1.2; letter-spacing: -0.01em; margin: 0 0 0.875rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-editorial-item:hover .vti-editorial-title { color: var(--vti-accent); }
.vti-editorial-excerpt { font-family: var(--vti-sans); font-size: 0.9375rem; color: var(--vti-body); line-height: 1.75; margin: 0 0 0.875rem; }
.vti-editorial-cta { text-align: center; margin-top: 4rem; }

/* Sélection Premium */
.vti-premium { padding: var(--vti-section-pad) 0; background: var(--vti-bg); border-top: 1px solid var(--vti-border); }
.vti-premium-header { text-align: center; max-width: 680px; margin: 0 auto 4rem; }
.vti-premium-header h2 { font-family: var(--vti-serif); font-size: clamp(1.875rem, 4vw, 3rem); font-weight: 700; color: var(--vti-black); letter-spacing: -0.02em; margin: 0 0 1.25rem; line-height: 1.15; }
.vti-premium-header p { font-family: var(--vti-sans); font-size: 1rem; color: var(--vti-body); line-height: 1.75; margin: 0; }
.vti-premium-grid { display: -webkit-flex; display: flex; gap: 2rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-premium-card {
    position: relative;
    padding: 2.5rem;
    border: 1px solid var(--vti-border);
    background: var(--vti-bg);
    text-decoration: none;
    display: block;
    -webkit-flex: 1 1 280px;
    flex: 1 1 280px;
    overflow: hidden;
    /* Lift */
    -webkit-transition: border-color 0.25s, -webkit-transform 0.3s var(--vti-ease-back), box-shadow 0.3s;
    transition: border-color 0.25s, transform 0.3s var(--vti-ease-back), box-shadow 0.3s;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-mask-image: -webkit-radial-gradient(white, black);
}
.vti-premium-card:hover {
    border-color: var(--vti-black);
    -webkit-transform: translateY(var(--vti-lift-y));
    transform: translateY(var(--vti-lift-y));
    box-shadow: var(--vti-lift-shadow);
}
.vti-premium-card-num { position: absolute; top: 1.5rem; right: 2rem; font-family: var(--vti-serif); font-size: 4rem; font-weight: 700; color: var(--vti-bg-alt); line-height: 1; -webkit-transition: color 0.2s; transition: color 0.2s; user-select: none; pointer-events: none; }
.vti-premium-card:hover .vti-premium-card-num { color: var(--vti-accent-light); }
.vti-premium-card-content { position: relative; z-index: 1; }
.vti-premium-card-title { font-family: var(--vti-serif); font-size: clamp(1.125rem, 2vw, 1.625rem); font-weight: 700; color: var(--vti-black); line-height: 1.2; letter-spacing: -0.01em; margin: 0 0 1.5rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-premium-card:hover .vti-premium-card-title { color: var(--vti-accent); }
.vti-premium-card-desc { border-left: 2px solid var(--vti-accent-light); padding-left: 1rem; margin-bottom: 2rem; }
.vti-premium-card-desc p { font-family: var(--vti-sans); font-size: 0.9375rem; font-style: italic; color: var(--vti-body); line-height: 1.7; margin: 0; }


/* ─────────────────────────────────────────────
   5. NEWSLETTER + FOOTER
   ───────────────────────────────────────────── */
.vti-newsletter { padding: var(--vti-section-pad) 0; background: var(--vti-dark-surface); color: var(--vti-dark-text); }
.vti-newsletter-grid { display: -webkit-flex; display: flex; gap: 5rem; -webkit-align-items: center; align-items: center; max-width: 1080px; margin: 0 auto; padding: 0 2rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-newsletter-grid > * { -webkit-flex: 1 1 320px; flex: 1 1 320px; min-width: 0; }
.vti-newsletter-label { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-accent); display: block; margin-bottom: 1rem; }
.vti-newsletter-title { font-family: var(--vti-serif); font-size: clamp(1.875rem, 4vw, 3rem); font-weight: 700; line-height: 1.1; letter-spacing: -0.02em; margin: 0 0 1.5rem; color: var(--vti-dark-text); }
.vti-newsletter-desc { font-family: var(--vti-sans); font-size: 1.0625rem; color: rgba(241,245,249,0.65); line-height: 1.75; margin: 0 0 2.5rem; }
.vti-newsletter-form { display: -webkit-flex; display: flex; max-width: 480px; margin-bottom: 1rem; }
.vti-newsletter-form input[type="email"] { -webkit-flex: 1; flex: 1; height: 3.5rem; padding: 0 1.25rem; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.15); border-right: none; color: #fff; font-family: var(--vti-sans); font-size: 1rem; outline: none; -webkit-transition: border-color 0.2s; transition: border-color 0.2s; }
.vti-newsletter-form input[type="email"]::placeholder { color: rgba(255,255,255,0.3); }
.vti-newsletter-form input[type="email"]:focus { border-color: var(--vti-accent); }
.vti-newsletter-form button { height: 3.5rem; padding: 0 1.75rem; background: var(--vti-accent); color: #fff; border: none; font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; cursor: pointer; white-space: nowrap; -webkit-transition: background 0.2s; transition: background 0.2s; }
.vti-newsletter-form button:hover { background: var(--vti-accent-hover); }
.vti-newsletter-legal { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.3); }
.vti-newsletter-success { display: none; padding: 1rem 1.5rem; background: var(--vti-accent-light); border: 1px solid var(--vti-accent); color: #fff; font-family: var(--vti-sans); font-size: 0.875rem; margin-top: 1rem; }
.vti-newsletter-mockup { background: #fff; color: var(--vti-ink); padding: 2.5rem; box-shadow: var(--vti-shadow-xl); -webkit-transform: rotate(1deg); transform: rotate(1deg); -webkit-transition: -webkit-transform 0.5s var(--vti-ease); transition: transform 0.5s var(--vti-ease); position: relative; }
.vti-newsletter-mockup:hover { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
.vti-mockup-accent-bar { position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--vti-accent); }
.vti-mockup-header { text-align: center; padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 1px solid #e2e8f0; }
.vti-mockup-brand { font-family: var(--vti-serif); font-size: 1.375rem; font-weight: 700; color: var(--vti-dark); letter-spacing: -0.02em; }
.vti-mockup-num { font-family: var(--vti-sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: #64748b; margin-top: 0.35rem; }
.vti-mockup-items { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; gap: 1.25rem; }
.vti-mockup-item-label { font-family: var(--vti-sans); font-size: 0.5625rem; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-accent); margin-bottom: 0.25rem; }
.vti-mockup-item-title { font-family: var(--vti-serif); font-size: 1rem; font-weight: 700; color: var(--vti-dark); line-height: 1.3; margin: 0; }
.vti-mockup-footer { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #e2e8f0; text-align: center; font-family: var(--vti-sans); font-size: 0.6875rem; font-style: italic; color: #94a3b8; }

/* Footer */
.vti-footer { background: var(--vti-bg); border-top: 4px solid var(--vti-black); padding: 5rem 0 3rem; padding-bottom: calc(3rem + var(--vti-safe-bottom)); }
.vti-footer-top { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: flex-end; align-items: flex-end; padding-bottom: 2.5rem; margin-bottom: 3.5rem; border-bottom: 1px solid var(--vti-border); gap: 2rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-footer-brand a { font-family: var(--vti-serif); font-size: 2.5rem; font-weight: 700; color: var(--vti-black); text-decoration: none; letter-spacing: -0.02em; display: block; margin-bottom: 0.5rem; }
.vti-footer-brand-tag { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--vti-muted); }
.vti-footer-next { text-align: right; }
.vti-footer-next-label { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--vti-muted); margin-bottom: 0.35rem; }
.vti-footer-next-date { font-family: var(--vti-serif); font-size: 1.25rem; font-weight: 700; color: var(--vti-black); }
.vti-footer-cols { display: -webkit-flex; display: flex; gap: 3rem; margin-bottom: 4rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-footer-cols > * { -webkit-flex: 1 1 160px; flex: 1 1 160px; }
.vti-footer-col-title { display:block; font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-black); margin: 0 0 1.5rem; }
.vti-footer-col ul { list-style: none; margin: 0; padding: 0; display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; gap: 1rem; }
.vti-footer-col ul li { margin: 0; padding: 0; }
.vti-footer-col a { font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 500; color: var(--vti-body); text-decoration: none; -webkit-transition: color 0.2s; transition: color 0.2s; display: block; min-height: 28px; line-height: 1.7; }
.vti-footer-col a:hover { color: var(--vti-accent); }
.vti-footer-bottom { display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: center; align-items: center; padding-top: 2rem; border-top: 1px solid var(--vti-border); gap: 1rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-footer-copyright { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-muted); }
.vti-footer-social { display: -webkit-flex; display: flex; gap: 1.5rem; }
.vti-footer-social a { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-muted); text-decoration: none; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-footer-social a:hover { color: var(--vti-black); }


/* ─────────────────────────────────────────────
   6. PAGE ARTICLE SINGLE
   ───────────────────────────────────────────── */
.vti-reading-progress { position: fixed; top: 0; left: 0; width: 0%; height: 3px; background: var(--vti-accent); z-index: 9999; -webkit-transition: width 0.1s linear; transition: width 0.1s linear; will-change: width; pointer-events: none; }

.vti-single-header { padding: 3.5rem 0 0; background: var(--vti-bg); }
.vti-single-header-inner { max-width: 800px; margin: 0 auto; padding: 0 2rem; }
.vti-breadcrumb { font-family: var(--vti-sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vti-muted); margin-bottom: 1.5rem; display: block; }
.vti-breadcrumb a { color: var(--vti-muted); text-decoration: none; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-breadcrumb a:hover { color: var(--vti-accent); }
.vti-breadcrumb-sep { margin: 0 0.4rem; }
.vti-single-title { font-family: var(--vti-serif); font-size: clamp(1.875rem, 5vw, 3.375rem); font-weight: 700; color: var(--vti-black); line-height: 1.1; letter-spacing: -0.025em; margin: 0 0 1.5rem; }
.vti-single-lead { font-family: var(--vti-sans); font-size: clamp(1rem, 2vw, 1.25rem); color: var(--vti-ink); line-height: 1.7; margin: 0 0 2rem; }

.vti-key-points {
    position: relative;
    margin: 0 0 2rem;
    padding: 1.5rem;
    border: 1px solid var(--vti-border);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,248,250,.98) 100%);
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.06);
}
.vti-key-points-head {
    margin-bottom: 1rem;
}
.vti-key-points-kicker {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .38rem .75rem;
    border-radius: 999px;
    background: rgba(255,102,0,.10);
    color: var(--vti-accent);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.vti-key-points h2 {
    margin: .9rem 0 .55rem !important;
    padding-top: 0 !important;
    border-top: 0 !important;
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.vti-key-points-intro {
    margin: 0;
    color: var(--vti-body);
    line-height: 1.7;
}
.vti-key-points-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .35rem;
}
.vti-key-points-list li {
    position: relative;
    margin: 0;
    padding: .64rem 1rem .64rem 3rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(15,23,42,.08);
    line-height: 1.34;
}
.vti-key-points-list li::before {
    content: '✓';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--vti-accent);
    color: #fff;
    font-size: .85rem;
    font-weight: 800;
}
@media (max-width: 767px) {
    .vti-key-points {
        padding: 1.15rem;
        border-radius: 16px;
    }
    .vti-key-points-list li {
        padding: .9rem .9rem .9rem 2.75rem;
        border-radius: 14px;
    }
    .vti-key-points-list li::before {
        left: .85rem;
    }
}
.vti-single-meta { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 0.875rem; padding: 1.25rem 0; border-top: 1px solid var(--vti-border); border-bottom: 1px solid var(--vti-border); margin-bottom: 0; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-single-author { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 0.75rem; }
.vti-single-author img { width: 2.75rem; height: 2.75rem; border-radius: 50%; object-fit: cover; -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-single-author-info strong { display: block; font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 700; color: var(--vti-black); }
.vti-single-author-info span { font-family: var(--vti-sans); font-size: 0.75rem; color: var(--vti-muted); }
.vti-single-meta-sep { color: var(--vti-border); }
.vti-single-meta .vti-meta-views { padding-left: 0.1rem; }
.vti-share-inline { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 0.5rem; margin-left: auto; }
.vti-share-btn { display: -webkit-inline-flex; display: inline-flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; width: 2.25rem; height: 2.25rem; min-width: 44px; min-height: 44px; color: var(--vti-muted); background: none; border: 1px solid var(--vti-border); cursor: pointer; text-decoration: none; -webkit-transition: color 0.2s, border-color 0.2s, background 0.2s; transition: color 0.2s, border-color 0.2s, background 0.2s; }
.vti-share-btn:hover { color: var(--vti-accent); border-color: var(--vti-accent); }

.vti-single-hero-img { max-width: 1100px; margin: 0 auto; padding: 2.5rem 2rem 0; }
.vti-single-hero-img figure { margin: 0; }
.vti-single-hero-img img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.vti-single-hero-img figcaption { font-family: var(--vti-sans); font-size: 0.8125rem; font-style: italic; color: var(--vti-light); margin-top: 0.75rem; }

.vti-single-body { padding: 3.5rem 0 5rem; }
.vti-single-layout { max-width: 1100px; margin: 0 auto; padding: 0 2rem; display: -webkit-flex; display: flex; gap: 4rem; -webkit-align-items: flex-start; align-items: flex-start; }
.vti-article-content { -webkit-flex: 1; flex: 1; min-width: 0; }
.vti-article-sidebar { width: 280px; -webkit-flex-shrink: 0; flex-shrink: 0; position: -webkit-sticky; position: sticky; top: 120px; max-height: calc(100vh - 140px); overflow: auto; scrollbar-width: thin; }

/* Prose */
.vti-prose { font-family: var(--vti-sans); font-size: clamp(1rem, 1.8vw, 1.0625rem); color: var(--vti-body); line-height: 1.9; }
.vti-prose p { margin: 0 0 1.75rem; }
.vti-drop-cap::first-letter { font-family: var(--vti-serif); float: left; font-size: 4.5rem; line-height: 0.8; font-weight: 700; color: var(--vti-black); padding-right: 0.75rem; padding-top: 0.25rem; }
.vti-prose h2 { font-family: var(--vti-serif); font-size: clamp(1.5rem, 3vw, 1.875rem); font-weight: 700; color: var(--vti-black); line-height: 1.25; letter-spacing: -0.015em; margin: 3.5rem 0 1.25rem; padding-top: 2rem; border-top: 1px solid var(--vti-border); }
.vti-prose h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.vti-prose h3 { font-family: var(--vti-serif); font-size: clamp(1.25rem, 2vw, 1.375rem); font-weight: 700; color: var(--vti-black); letter-spacing: -0.01em; margin: 2.5rem 0 1rem; }
.vti-prose ul { list-style: disc; padding-left: 1.5rem; margin-bottom: 2rem; }
.vti-prose ul li { padding-left: 0.5rem; margin-bottom: 0.75rem; }
.vti-prose strong { font-weight: 700; color: var(--vti-ink); }
.vti-prose a { color: var(--vti-accent); text-underline-offset: 3px; }
.vti-prose a:hover { color: var(--vti-accent-hover); }
.vti-prose blockquote { font-family: var(--vti-serif); font-size: clamp(1.25rem, 2.5vw, 1.5rem); font-style: italic; color: var(--vti-ink); border-left: 3px solid var(--vti-accent); padding-left: 1.5rem; margin: 2.5rem 0; line-height: 1.5; }
.vti-prose code { background: var(--vti-bg-alt); color: var(--vti-ink); padding: 0.15rem 0.4rem; font-size: 0.875em; font-family: 'Courier New', Courier, monospace; word-break: break-word; }
.vti-prose pre { background: var(--vti-bg-dark); color: #cbd5e1; padding: 1.5rem; overflow-x: auto; margin: 2rem 0; font-size: 0.875rem; line-height: 1.7; -webkit-overflow-scrolling: touch; }
.vti-prose figure { margin: 2.5rem 0; }
.vti-prose figcaption { font-size: 0.8125rem; color: var(--vti-light); font-style: italic; margin-top: 0.75rem; }

/* Tags */
.vti-single-tags { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; gap: 0.5rem; -webkit-align-items: center; align-items: center; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--vti-border); }
.vti-tags-label { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-light); margin-right: 0.5rem; }
.vti-tag { display: inline-block; padding: 0.35rem 0.875rem; border: 1px solid var(--vti-border); font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-muted); text-decoration: none; -webkit-transition: border-color 0.2s, color 0.2s; transition: border-color 0.2s, color 0.2s; min-height: 36px; line-height: 36px; }
.vti-tag:hover { border-color: var(--vti-accent); color: var(--vti-accent); }

/* Partage bas d'article */
.vti-share-bottom { margin-top: 3rem; padding: 2rem; background: var(--vti-bg-alt); border-top: 2px solid var(--vti-black); }
.vti-share-bottom-label { font-family: var(--vti-serif); font-size: 1.125rem; font-weight: 700; color: var(--vti-black); margin: 0 0 1.25rem; }
.vti-share-bottom-btns { display: -webkit-flex; display: flex; gap: 0.75rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-share-bottom-btn { display: -webkit-inline-flex; display: inline-flex; -webkit-align-items: center; align-items: center; gap: 0.5rem; padding: 0.875rem 1.25rem; border: 1px solid var(--vti-border); background: var(--vti-bg); color: var(--vti-body); font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; cursor: pointer; min-height: 44px; -webkit-transition: background 0.2s, color 0.2s, border-color 0.2s; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.vti-share-bottom-btn:hover { background: var(--vti-black); color: #fff; border-color: var(--vti-black); }

/* TOC premium / Elementor */
.vti-toc-premium {
    padding: 1.15rem;
    border: 1px solid var(--vti-border);
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,248,250,.98) 100%);
    box-shadow: 0 18px 48px rgba(15,23,42,.06);
}
.vti-toc-head { margin-bottom: .9rem; }
.vti-toc-lead {
    margin: .6rem 0 0;
    font-family: var(--vti-sans);
    font-size: .82rem;
    color: var(--vti-muted);
    line-height: 1.55;
}
.vti-toc-mobile-toggle {
    display: none;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0;
    text-align: left;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
}
.vti-toc-mobile-top { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.vti-toc-current-label {
    font-family: var(--vti-serif);
    font-size: .95rem;
    font-weight: 700;
    color: var(--vti-black);
    line-height: 1.3;
}
.vti-toc-mobile-icon { font-size: 1rem; transition: transform .2s ease; }
.vti-toc-premium.is-open .vti-toc-mobile-icon { transform: rotate(180deg); }
#vti-toc-list { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
#vti-toc-list li { counter-increment: toc; display: flex; gap: .8rem; padding: .42rem 0; border-bottom: 1px solid rgba(15,23,42,.06); }
#vti-toc-list li:last-child { border-bottom: 0; }
#vti-toc-list li::before {
    content: counter(toc, decimal-leading-zero);
    font-family: var(--vti-sans);
    font-size: .64rem;
    font-weight: 800;
    color: var(--vti-light);
    min-width: 1.55rem;
    padding-top: .22rem;
}
#vti-toc-list .vti-toc-item--h3 { padding-left: .65rem; }
#vti-toc-list .vti-toc-item--h3::before { opacity: .72; }
#vti-toc-list a {
    display: inline-flex;
    width: 100%;
    font-family: var(--vti-sans);
    font-size: .82rem;
    color: var(--vti-body);
    text-decoration: none;
    line-height: 1.5;
    transition: color .2s, transform .2s;
}
#vti-toc-list a:hover { color: var(--vti-accent); transform: translateX(2px); }
#vti-toc-list a.is-active { color: var(--vti-secondary); font-weight: 700; }

.vti-sidebar-author-inner { display: -webkit-flex; display: flex; gap: 0.875rem; -webkit-align-items: flex-start; align-items: flex-start; }
.vti-sidebar-author-inner img { border-radius: 50%; width: 48px; height: 48px; -webkit-flex-shrink: 0; flex-shrink: 0; object-fit: cover; }
.vti-sidebar-author-inner strong { display: block; font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 700; color: var(--vti-black); margin-bottom: 0.35rem; }
.vti-sidebar-author-inner p { font-family: var(--vti-sans); font-size: 0.8125rem; color: var(--vti-muted); line-height: 1.5; margin: 0 0 0.5rem; }
.vti-sidebar-author-inner a { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; color: var(--vti-accent); text-decoration: none; text-transform: uppercase; }

/* Bio auteur */
.vti-author-card-wrap { background: var(--vti-bg-alt); border-top: 1px solid var(--vti-border); padding: 3rem 0; }
.vti-author-card { display: -webkit-flex; display: flex; gap: 2.5rem; -webkit-align-items: flex-start; align-items: flex-start; max-width: 800px; margin: 0 auto; padding: 0 2rem; }
.vti-author-card-avatar { -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-author-card-avatar img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.vti-author-card-label { font-family: var(--vti-sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-light); display: block; margin-bottom: 0.5rem; }
.vti-author-card-name { font-family: var(--vti-serif); font-size: clamp(1.25rem, 2vw, 1.5rem); font-weight: 700; color: var(--vti-black); margin: 0 0 0.75rem; }
.vti-author-card-bio { font-family: var(--vti-sans); font-size: 0.9375rem; color: var(--vti-body); line-height: 1.7; margin: 0 0 1.25rem; }
.vti-author-card-links { display: -webkit-flex; display: flex; gap: 1.5rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-author-card-links a { font-family: var(--vti-sans); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-accent); text-decoration: none; -webkit-transition: color 0.2s; transition: color 0.2s; min-height: 44px; line-height: 44px; }
.vti-author-card-links a:hover { color: var(--vti-black); }

/* Nav prev/next */
.vti-post-nav { border-top: 1px solid var(--vti-border); border-bottom: 1px solid var(--vti-border); background: var(--vti-bg); padding: 2.5rem 0; }
.vti-post-nav-inner { display: -webkit-flex; display: flex; gap: 2rem; max-width: 960px; margin: 0 auto; padding: 0 2rem; }
.vti-post-nav-item { text-decoration: none; display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; gap: 0.35rem; -webkit-flex: 1; flex: 1; min-width: 0; -webkit-transition: -webkit-transform 0.2s; transition: transform 0.2s; }
.vti-post-nav-next { text-align: right; }
.vti-post-nav-dir { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 0.35rem; font-family: var(--vti-sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--vti-muted); }
.vti-post-nav-next .vti-post-nav-dir { -webkit-justify-content: flex-end; justify-content: flex-end; }
.vti-post-nav-cat { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-accent); }
.vti-post-nav-title { font-family: var(--vti-serif); font-size: clamp(1rem, 2vw, 1.125rem); font-weight: 700; color: var(--vti-black); line-height: 1.3; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-post-nav-item:hover .vti-post-nav-title { color: var(--vti-accent); }

/* Articles liés */
.vti-related { padding: 5rem 0; background: var(--vti-bg-alt); border-top: 1px solid var(--vti-border); }
.vti-related-grid { display: -webkit-flex; display: flex; gap: 2rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-related-card { text-decoration: none; display: block; -webkit-flex: 1 1 240px; flex: 1 1 240px; min-width: 0; -webkit-transition: -webkit-transform 0.3s var(--vti-ease-back), box-shadow 0.3s; transition: transform 0.3s var(--vti-ease-back), box-shadow 0.3s; -webkit-transform: translateZ(0); transform: translateZ(0); }
.vti-related-card:hover { -webkit-transform: translateY(var(--vti-lift-y)); transform: translateY(var(--vti-lift-y)); box-shadow: var(--vti-lift-shadow); }
.vti-related-card .vti-img-wrap { aspect-ratio: 4/3; margin-bottom: 1.25rem; }
.vti-related-card-title { font-family: var(--vti-serif); font-size: clamp(1.0625rem, 2vw, 1.1875rem); font-weight: 700; color: var(--vti-black); line-height: 1.3; margin: 0.5rem 0 0.75rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-related-card:hover .vti-related-card-title { color: var(--vti-accent); }


/* ─────────────────────────────────────────────
   7. COMMENTAIRES
   ───────────────────────────────────────────── */
.vti-comments-section { padding: 4rem 0; background: var(--vti-bg-alt); border-top: 1px solid var(--vti-border); }
.vti-comments-wrap { max-width: 800px; margin: 0 auto; padding: 0 2rem; }
.vti-comments-header { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 1.5rem; margin-bottom: 3rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-comments-title { font-family: var(--vti-serif); font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; color: var(--vti-black); margin: 0; white-space: nowrap; }
.vti-comments-title span { color: var(--vti-accent); }
.vti-comment-list { list-style: none; margin: 0; padding: 0; }
.vti-comment-item { padding: 2rem 0; border-bottom: 1px solid var(--vti-border); }
.vti-comment-item:last-child { border-bottom: none; }
.vti-comment-item.depth-2,
.vti-comment-item.depth-3 { padding-left: 2rem; }
.vti-comment-body { display: -webkit-flex; display: flex; gap: 1.25rem; }
.vti-comment-aside { -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-comment-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.vti-comment-content { -webkit-flex: 1; flex: 1; min-width: 0; }
.vti-comment-head { display: -webkit-flex; display: flex; -webkit-align-items: baseline; align-items: baseline; gap: 1rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; margin-bottom: 0.75rem; }
.vti-comment-author { font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 700; color: var(--vti-black); }
.vti-comment-author a { color: var(--vti-accent); text-decoration: none; }
.vti-comment-date { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vti-muted); }
.vti-comment-pending { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; color: #f59e0b; background: #fef3c7; padding: 0.2rem 0.6rem; }
.vti-comment-text { font-family: var(--vti-sans); font-size: 0.9375rem; color: var(--vti-body); line-height: 1.75; }
.vti-comment-text p { margin: 0 0 1rem; }
.vti-comment-text p:last-child { margin-bottom: 0; }
.vti-comment-foot { margin-top: 0.875rem; display: -webkit-flex; display: flex; gap: 1rem; }
.vti-comment-reply a, .vti-comment-edit { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-muted); text-decoration: none; -webkit-transition: color 0.2s; transition: color 0.2s; min-height: 36px; line-height: 36px; }
.vti-comment-reply a:hover, .vti-comment-edit:hover { color: var(--vti-accent); }
.vti-comment-respond { margin-top: 3rem; padding-top: 3rem; border-top: 2px solid var(--vti-black); }
.vti-comment-form-title { font-family: var(--vti-serif); font-size: clamp(1.375rem, 3vw, 1.75rem); font-weight: 700; color: var(--vti-black); margin: 0 0 1.5rem; }
.cancel-comment-reply-link { font-family: var(--vti-sans); font-size: 0.75rem; font-weight: 600; color: var(--vti-muted); text-decoration: none; margin-left: 1rem; }
.cancel-comment-reply-link:hover { color: var(--vti-accent); }
.vti-comment-notes { font-family: var(--vti-sans); font-size: 0.875rem; color: var(--vti-muted); margin: 0 0 1.5rem; }
.vti-comment-fields-row { display: -webkit-flex; display: flex; gap: 1rem; margin-bottom: 1rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-comment-field { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; gap: 0.5rem; margin-bottom: 1rem; -webkit-flex: 1 1 220px; flex: 1 1 220px; }
.vti-comment-field-full { -webkit-flex-basis: 100%; flex-basis: 100%; }
.vti-comment-field label { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-muted); }
.vti-comment-field label span { color: var(--vti-accent); margin-left: 0.2rem; }
.vti-comment-field input[type="text"],
.vti-comment-field input[type="email"],
.vti-comment-field textarea { width: 100%; padding: 0.875rem 1rem; border: 1px solid var(--vti-border); background: var(--vti-bg); color: var(--vti-ink); font-family: var(--vti-sans); font-size: 1rem; outline: none; resize: vertical; -webkit-transition: border-color 0.2s; transition: border-color 0.2s; }
.vti-comment-field input:focus, .vti-comment-field textarea:focus { border-color: var(--vti-accent); }
.vti-comment-field textarea { min-height: 160px; }
.vti-comment-field-cookie label { font-family: var(--vti-sans); font-size: 0.875rem; color: var(--vti-muted); display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 0.5rem; cursor: pointer; text-transform: none; letter-spacing: 0; font-weight: 400; }
.vti-comment-field-cookie input[type="checkbox"] { width: 1.125rem; height: 1.125rem; accent-color: var(--vti-accent); -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-comment-submit-wrap { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 1rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-comment-submit, #submit { display: inline-block; padding: 1rem 2.5rem; background: var(--vti-black); color: #fff; border: none; font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; cursor: pointer; -webkit-transition: background 0.2s; transition: background 0.2s; min-height: 44px; }
.vti-comment-submit:hover, #submit:hover { background: var(--vti-accent); }
.vti-comments-closed { font-family: var(--vti-sans); font-size: 0.875rem; color: var(--vti-muted); font-style: italic; padding: 2rem 0; border-top: 1px solid var(--vti-border); }


/* ─────────────────────────────────────────────
   8. ARCHIVE
   ───────────────────────────────────────────── */
.vti-archive-header { padding: 4rem 0 3rem; border-bottom: 1px solid var(--vti-border); background: var(--vti-bg); }
.vti-archive-header-inner { max-width: var(--vti-container); margin: 0 auto; padding: 0 2rem; display: -webkit-flex; display: flex; -webkit-align-items: flex-end; align-items: flex-end; -webkit-justify-content: space-between; justify-content: space-between; gap: 2rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-archive-label { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-accent); margin-bottom: 0.75rem; }
.vti-archive-title { font-family: var(--vti-serif); font-size: clamp(2rem, 5vw, 3.75rem); font-weight: 700; color: var(--vti-black); letter-spacing: -0.025em; line-height: 1.1; margin: 0 0 1rem; }
.vti-archive-desc { font-family: var(--vti-sans); font-size: 1rem; color: var(--vti-body); line-height: 1.7; max-width: 560px; margin: 0; }
.vti-archive-count-wrap { text-align: right; -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-archive-count { font-family: var(--vti-serif); font-size: clamp(3rem, 6vw, 4rem); font-weight: 700; color: var(--vti-border); line-height: 1; display: block; }
.vti-archive-count-label { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-light); }
.vti-archive-author-bio { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 1rem; margin-top: 1.25rem; }
.vti-archive-author-bio img { border-radius: 50%; width: 56px; height: 56px; object-fit: cover; -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-archive-author-bio p { font-family: var(--vti-sans); font-size: 0.9375rem; color: var(--vti-body); line-height: 1.6; margin: 0; max-width: 480px; }
.vti-archive-body { padding: var(--vti-section-pad) 0; background: var(--vti-bg); }
.vti-archive-layout { display: -webkit-flex; display: flex; gap: 4rem; max-width: var(--vti-container); margin: 0 auto; padding: 0 2rem; -webkit-align-items: flex-start; align-items: flex-start; }
.vti-archive-main { -webkit-flex: 1; flex: 1; min-width: 0; }
.vti-archive-sidebar { width: 280px; -webkit-flex-shrink: 0; flex-shrink: 0; position: -webkit-sticky; position: sticky; top: 120px; }
.vti-archive-featured { margin-bottom: 3rem; padding-bottom: 3rem; border-bottom: 1px solid var(--vti-border); }
.vti-archive-featured a { text-decoration: none; display: block; }
.vti-img-featured { aspect-ratio: 16/7; }
.vti-archive-featured-body { padding-top: 1.75rem; }
.vti-archive-featured .vti-card-title { font-size: clamp(1.5rem, 3vw, 2.375rem); }
.vti-archive-featured a:hover .vti-card-title { color: var(--vti-accent); }
.vti-archive-grid { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; gap: 2.5rem; }
.vti-archive-card { -webkit-flex: 1 1 280px; flex: 1 1 280px; min-width: 0; -webkit-transition: -webkit-transform 0.3s var(--vti-ease-back), box-shadow 0.3s; transition: transform 0.3s var(--vti-ease-back), box-shadow 0.3s; -webkit-transform: translateZ(0); transform: translateZ(0); }
.vti-archive-card:hover { -webkit-transform: translateY(var(--vti-lift-y)); transform: translateY(var(--vti-lift-y)); box-shadow: var(--vti-lift-shadow); }
.vti-archive-card a { text-decoration: none; display: block; }
.vti-archive-card .vti-img-wrap { aspect-ratio: 4/3; }
.vti-archive-card-body { padding-top: 1.25rem; }
.vti-archive-card .vti-card-title { font-size: clamp(1.0625rem, 2vw, 1.25rem); }
.vti-archive-card a:hover .vti-card-title { color: var(--vti-accent); }
.vti-archive-card .vti-excerpt { font-family: var(--vti-sans); font-size: 0.875rem; color: var(--vti-muted); line-height: 1.7; margin: 0 0 0.75rem; }
.vti-archive-nl-insert { -webkit-flex-basis: 100%; flex-basis: 100%; background: var(--vti-dark-surface); padding: 2.5rem; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 2rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-archive-nl-eyebrow { font-family: var(--vti-sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-accent); margin: 0 0 0.5rem; }
.vti-archive-nl-title { font-family: var(--vti-serif); font-size: 1.25rem; font-weight: 700; color: #f1f5f9; margin: 0; -webkit-flex: 1; flex: 1; }
.vti-archive-nl-btn { display: inline-block; padding: 0.875rem 1.75rem; background: var(--vti-accent); color: #fff; font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; text-decoration: none; -webkit-transition: background 0.2s; transition: background 0.2s; white-space: nowrap; -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-archive-nl-btn:hover { background: var(--vti-accent-hover); color: #fff; }
.vti-archive-empty { text-align: center; padding: 5rem 2rem; }
.vti-archive-empty p { font-family: var(--vti-sans); color: var(--vti-muted); font-size: 1rem; margin: 0 0 2rem; }
.vti-pagination { margin-top: 4rem; display: -webkit-flex; display: flex; -webkit-justify-content: center; justify-content: center; -webkit-align-items: center; align-items: center; gap: 0.5rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-pagination .page-numbers { display: -webkit-inline-flex; display: inline-flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; min-width: 2.75rem; height: 2.75rem; padding: 0 0.75rem; border: 1px solid var(--vti-border); font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 600; color: var(--vti-body); text-decoration: none; -webkit-transition: background 0.2s, color 0.2s, border-color 0.2s; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.vti-pagination .page-numbers:hover, .vti-pagination .page-numbers.current { background: var(--vti-black); color: var(--vti-bg); border-color: var(--vti-black); }
.vti-pagination .page-numbers.dots { border-color: transparent; background: none; cursor: default; }


/* ─────────────────────────────────────────────
   9. RECHERCHE
   ───────────────────────────────────────────── */
.vti-search-page { background: var(--vti-bg); }
.vti-search-header { padding: 4rem 0 3rem; border-bottom: 1px solid var(--vti-border); }
.vti-search-header-inner { max-width: var(--vti-container); margin: 0 auto; padding: 0 2rem; display: -webkit-flex; display: flex; -webkit-align-items: flex-start; align-items: flex-start; -webkit-justify-content: space-between; justify-content: space-between; gap: 3rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-search-form-wrap { width: 380px; -webkit-flex-shrink: 0; flex-shrink: 0; padding-top: 0.5rem; }
.vti-search-results { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; }
.vti-search-result { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 1.5rem; padding: 1.75rem 0; border-bottom: 1px solid var(--vti-border); text-decoration: none; -webkit-transition: background 0.15s; transition: background 0.15s; }
.vti-search-result:first-child { padding-top: 0; }
.vti-search-result:hover { background: var(--vti-bg-alt); }
.vti-search-result-img { width: 120px; height: 90px; -webkit-flex-shrink: 0; flex-shrink: 0; }
.vti-search-result-img img { width: 100%; height: 100%; object-fit: cover; }
.vti-search-result-body { -webkit-flex: 1; flex: 1; min-width: 0; }
.vti-search-result-kicker { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-search-result-kicker .vti-label { margin: 0; }
.vti-search-result-title { font-family: var(--vti-serif); font-size: clamp(1.0625rem, 2vw, 1.25rem); font-weight: 700; color: var(--vti-black); line-height: 1.3; letter-spacing: -0.01em; margin: 0 0 0.5rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-search-result:hover .vti-search-result-title { color: var(--vti-accent); }
.vti-search-result-excerpt { font-family: var(--vti-sans); font-size: 0.875rem; color: var(--vti-muted); line-height: 1.65; margin: 0 0 0.5rem; }
.vti-search-result-arrow { -webkit-flex-shrink: 0; flex-shrink: 0; color: var(--vti-border); -webkit-transition: color 0.2s, -webkit-transform 0.2s; transition: color 0.2s, transform 0.2s; }
.vti-search-result:hover .vti-search-result-arrow { color: var(--vti-accent); -webkit-transform: translateX(4px); transform: translateX(4px); }
.vti-search-empty { text-align: center; padding: 4rem 2rem; }
.vti-search-empty-icon { font-size: 3rem; margin: 0 0 1rem; }
.vti-search-empty h2 { font-family: var(--vti-serif); font-size: 1.875rem; font-weight: 700; color: var(--vti-black); margin: 0 0 0.75rem; }
.vti-search-empty p { font-family: var(--vti-sans); font-size: 1rem; color: var(--vti-muted); margin: 0 0 2rem; }
.vti-search-suggestions h3 { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-light); margin: 0 0 1rem; }


/* ─────────────────────────────────────────────
   10. PAGE 404
   ───────────────────────────────────────────── */
.vti-404-page { padding: 5rem 0; background: var(--vti-bg); min-height: 70vh; }
.vti-404-inner { max-width: var(--vti-container); margin: 0 auto; padding: 0 2rem; }
.vti-404-hero { display: -webkit-flex; display: flex; -webkit-align-items: flex-start; align-items: flex-start; gap: 3rem; margin-bottom: 5rem; padding-bottom: 5rem; border-bottom: 1px solid var(--vti-border); -webkit-flex-wrap: wrap; flex-wrap: wrap; }
.vti-404-number { font-family: var(--vti-serif); font-size: clamp(5rem, 15vw, 12rem); font-weight: 700; color: var(--vti-border); line-height: 0.9; -webkit-flex-shrink: 0; flex-shrink: 0; user-select: none; }
.vti-404-content { -webkit-flex: 1 1 300px; flex: 1 1 300px; padding-top: 0.5rem; }
.vti-404-title { font-family: var(--vti-serif); font-size: clamp(1.5rem, 4vw, 2.75rem); font-weight: 700; color: var(--vti-black); line-height: 1.2; letter-spacing: -0.02em; margin: 0.75rem 0 1.25rem; }
.vti-404-desc { font-family: var(--vti-sans); font-size: 1.0625rem; color: var(--vti-body); line-height: 1.75; margin: 0 0 2rem; max-width: 520px; }
.vti-404-search { margin-bottom: 2rem; max-width: 440px; }
.vti-404-section-title { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vti-light); margin: 0 0 1.5rem; }
.vti-404-cats { margin-bottom: 4rem; }
.vti-404-cats-grid { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; gap: 1rem; }
.vti-404-cat-item { display: block; padding: 1.5rem; border: 1px solid var(--vti-border); text-decoration: none; -webkit-flex: 1 1 160px; flex: 1 1 160px; -webkit-transition: border-color 0.2s, box-shadow 0.2s, -webkit-transform 0.2s; transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; }
.vti-404-cat-item:hover { border-color: var(--vti-accent); box-shadow: var(--vti-shadow-sm); -webkit-transform: translateY(-3px); transform: translateY(-3px); }
.vti-404-cat-name { display: block; font-family: var(--vti-serif); font-size: 1.125rem; font-weight: 700; color: var(--vti-black); margin-bottom: 0.35rem; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-404-cat-item:hover .vti-404-cat-name { color: var(--vti-accent); }
.vti-404-cat-count { font-family: var(--vti-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vti-muted); }


/* ─────────────────────────────────────────────
   11. PAGE STATIQUE
   ───────────────────────────────────────────── */
.vti-page { background: var(--vti-bg); }
.vti-page-header { padding: 4rem 0; background: var(--vti-bg); border-bottom: 1px solid var(--vti-border); }
.vti-page-header.has-thumb { padding: 0; position: relative; overflow: hidden; min-height: 360px; display: -webkit-flex; display: flex; -webkit-align-items: flex-end; align-items: flex-end; }
.vti-page-hero-bg { position: relative; width: 100%; }
.vti-page-hero-bg img { width: 100%; height: 360px; object-fit: cover; }
.vti-page-header-content { max-width: var(--vti-container); margin: 0 auto; padding: 0 2rem; }
.vti-page-header-content--over { position: absolute; bottom: 2.5rem; left: 0; right: 0; z-index: 10; }
.vti-page-title { font-family: var(--vti-serif); font-size: clamp(1.875rem, 5vw, 3.375rem); font-weight: 700; color: var(--vti-black); letter-spacing: -0.025em; line-height: 1.1; margin: 0; }
.vti-page-title--light { color: #fff; }
.vti-page-body { padding: var(--vti-section-pad) 0; }
.vti-page-layout { display: -webkit-flex; display: flex; gap: 5rem; max-width: var(--vti-container); margin: 0 auto; padding: 0 2rem; -webkit-align-items: flex-start; align-items: flex-start; }
.vti-page-content { -webkit-flex: 1; flex: 1; min-width: 0; }
.vti-page-sidebar { width: 280px; -webkit-flex-shrink: 0; flex-shrink: 0; position: -webkit-sticky; position: sticky; top: 120px; }
.vti-page-nav-list { list-style: none; margin: 0; padding: 0; }
.vti-page-nav-list li { border-bottom: 1px solid var(--vti-bg-alt); }
.vti-page-nav-list li.current a { color: var(--vti-accent); font-weight: 700; }
.vti-page-nav-list a { display: block; padding: 0.75rem 0; font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 500; color: var(--vti-body); text-decoration: none; -webkit-transition: color 0.2s; transition: color 0.2s; min-height: 44px; line-height: 44px; }
.vti-page-nav-list a:hover { color: var(--vti-accent); }
.vti-sidebar-recent { list-style: none; margin: 0; padding: 0; }
.vti-sidebar-recent li { border-bottom: 1px solid var(--vti-bg-alt); }
.vti-sidebar-recent a { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; gap: 0.2rem; padding: 0.75rem 0; text-decoration: none; }
.vti-sidebar-recent-label { margin-bottom: 0; font-size: 0.5625rem; }
.vti-sidebar-recent-title { font-family: var(--vti-sans); font-size: 0.875rem; font-weight: 600; color: var(--vti-body); line-height: 1.4; -webkit-transition: color 0.2s; transition: color 0.2s; }
.vti-sidebar-recent a:hover .vti-sidebar-recent-title { color: var(--vti-accent); }


/* ─────────────────────────────────────────────
   12. ANIMATIONS
   ───────────────────────────────────────────── */
@-webkit-keyframes vti-fade-up {
    from { opacity: 0; -webkit-transform: translateY(24px); transform: translateY(24px); }
    to   { opacity: 1; -webkit-transform: translateY(0);    transform: translateY(0); }
}
@keyframes vti-fade-up {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

.vti-reveal {
    opacity: 0;
    -webkit-transform: translateY(20px);
    transform: translateY(20px);
    -webkit-transition: opacity 0.6s var(--vti-ease), -webkit-transform 0.6s var(--vti-ease);
    transition: opacity 0.6s var(--vti-ease), transform 0.6s var(--vti-ease);
}
.vti-reveal.is-visible {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}
.vti-reveal-delay-1 { -webkit-transition-delay: 0.1s; transition-delay: 0.1s; }
.vti-reveal-delay-2 { -webkit-transition-delay: 0.2s; transition-delay: 0.2s; }
.vti-reveal-delay-3 { -webkit-transition-delay: 0.3s; transition-delay: 0.3s; }

/* Respecter la préférence "réduire les animations" */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        -webkit-animation-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        -webkit-transition-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
    .vti-reveal { opacity: 1; -webkit-transform: none; transform: none; }
    .vti-card-lift:hover,
    .vti-archive-card:hover,
    .vti-related-card:hover,
    .vti-premium-card:hover { -webkit-transform: none; transform: none; }
}


/* ─────────────────────────────────────────────
   13. RESPONSIVE COMPLET
   ───────────────────────────────────────────── */

/* ── Tablette large (≤ 1200px) ── */
@media (max-width: 1200px) {
    :root { --vti-section-pad: 4.5rem; }
    .vti-single-layout { -webkit-flex-direction: column; flex-direction: column; }
    .vti-article-sidebar { width: 100%; position: static; display: block; order: -1; }
    .vti-sidebar-author,
    .vti-sidebar-nl { display: none; }
    .vti-toc-premium { padding: 1rem 1.1rem; margin-bottom: 1.5rem; }
    .vti-toc-head { display: none; }
    .vti-toc-mobile-toggle { display: flex; }
    #vti-toc-list { display: none; margin-top: .9rem; padding-top: .9rem; border-top: 1px solid rgba(15,23,42,.08); max-height: min(56vh, 420px); overflow: auto; }
    .vti-toc-premium.is-open #vti-toc-list { display: block; }
    .vti-page-layout { gap: 3rem; }
    .vti-page-sidebar { width: 240px; }
}

/* ── Tablette (≤ 1024px) ── */
@media (max-width: 1024px) {
    :root { --vti-section-pad: 4rem; }

    /* Header */
    .vti-header-main { padding: 0 1.5rem; }
    .vti-header-left { display: none; }
    .vti-header-right { display: none; }
    .vti-hamburger { display: -webkit-flex; display: flex; }
    .vti-search-btn-mobile { display: -webkit-flex; display: flex; }
    .vti-nav-desktop { display: none; }

    /* Homepage sections */
    .vti-trending-grid { -webkit-flex-direction: column; flex-direction: column; gap: 3rem; }
    .vti-categories-grid { -webkit-flex-direction: column; flex-direction: column; gap: 3rem; }

    /* Newsletter */
    .vti-newsletter-grid { gap: 3rem; }
    .vti-newsletter-mockup { display: none; }

    /* Archive */
    .vti-archive-layout { -webkit-flex-direction: column; flex-direction: column; }
    .vti-archive-sidebar { width: 100%; position: static; display: none; }

    /* Premium */
    .vti-premium-grid { }
    .vti-premium-card { -webkit-flex: 1 1 calc(50% - 1rem); flex: 1 1 calc(50% - 1rem); }

    /* Footer */
    .vti-footer-cols > * { -webkit-flex: 1 1 calc(50% - 1.5rem); flex: 1 1 calc(50% - 1.5rem); }

    /* Page */
    .vti-page-layout { -webkit-flex-direction: column; flex-direction: column; }
    .vti-page-sidebar { width: 100%; position: static; display: none; }

    /* Related */
    .vti-related-grid { }
    .vti-related-card { -webkit-flex: 1 1 calc(50% - 1rem); flex: 1 1 calc(50% - 1rem); }
}

/* ── Mobile large (≤ 768px) ── */
@media (max-width: 768px) {
    :root { --vti-section-pad: 3rem; }

    .vti-topbar { display: none; }
    .vti-header-main { height: 4rem; padding: 0 1rem; }
    .vti-logo a { font-size: 1.5rem; }
    .vti-container { padding: 0 1.25rem; }

    /* Hero */
    .vti-hero { height: 72vh; min-height: 520px; }
    .vti-hero-content { padding: 0 1.25rem 2.5rem; }
    .vti-hero-author span { display: none; }

    /* Strip secondaire → colonne */
    .vti-hero-strip-inner { -webkit-flex-direction: column; flex-direction: column; }
    .vti-hero-strip-item { border-right: none; border-left: none; border-bottom: 1px solid var(--vti-border); padding: 1.25rem 1.25rem; }
    .vti-hero-strip-item:last-child { border-bottom: none; }

    /* Fil éditorial */
    .vti-editorial-item { -webkit-flex-direction: column; flex-direction: column; gap: 1rem; padding: 1.75rem 0; }
    .vti-editorial-num { display: none; }

    /* Premium → colonne */
    .vti-premium-card { -webkit-flex: 1 1 100%; flex: 1 1 100%; }

    /* Newsletter form → colonne */
    .vti-newsletter-form { -webkit-flex-direction: column; flex-direction: column; }
    .vti-newsletter-form input[type="email"] { border-right: 1px solid rgba(255,255,255,0.15); }
    .vti-newsletter-grid { padding: 0 1.25rem; }

    /* Footer */
    .vti-footer-top { -webkit-flex-direction: column; flex-direction: column; -webkit-align-items: flex-start; align-items: flex-start; }
    .vti-footer-next { text-align: left; }
    .vti-footer-bottom { -webkit-flex-direction: column; flex-direction: column; -webkit-align-items: flex-start; align-items: flex-start; }

    /* Section header */
    .vti-section-header { -webkit-flex-wrap: nowrap; flex-wrap: nowrap; gap: 1rem; }
    .vti-section-line { display: none; }
    .vti-section-link { display: none; }

    /* Archive header */
    .vti-archive-header-inner { -webkit-flex-direction: column; flex-direction: column; -webkit-align-items: flex-start; align-items: flex-start; }
    .vti-archive-count-wrap { display: none; }

    /* Archive grid → 1 colonne */
    .vti-archive-card { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
    .vti-archive-nl-insert { -webkit-flex-direction: column; flex-direction: column; gap: 1rem; }
    .vti-archive-nl-title { min-width: 0; }

    /* Single */
    .vti-share-inline { display: none; }
    .vti-single-meta { gap: 0.625rem; }
    .vti-single-meta-sep { display: none; }
    .vti-single-hero-img { padding: 1.5rem 1.25rem 0; }
    .vti-post-nav-inner { -webkit-flex-direction: column; flex-direction: column; }
    .vti-post-nav-next { text-align: left; }
    .vti-post-nav-next .vti-post-nav-dir { -webkit-justify-content: flex-start; justify-content: flex-start; }
    .vti-author-card { -webkit-flex-direction: column; flex-direction: column; gap: 1.25rem; }

    /* Commentaires */
    .vti-comment-body { -webkit-flex-direction: column; flex-direction: column; gap: 0.75rem; }
    .vti-comment-fields-row { -webkit-flex-direction: column; flex-direction: column; }
    .vti-comment-field { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
    .vti-comment-item.depth-2, .vti-comment-item.depth-3 { padding-left: 1rem; }

    /* Related → colonne */
    .vti-related-card { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
    .vti-related-card:hover { -webkit-transform: none; transform: none; box-shadow: none; }

    /* 404 */
    .vti-404-hero { -webkit-flex-direction: column; flex-direction: column; gap: 1.5rem; margin-bottom: 3rem; padding-bottom: 3rem; }
    .vti-404-number { font-size: clamp(4rem, 18vw, 6rem); }

    /* Recherche */
    .vti-search-header-inner { -webkit-flex-direction: column; flex-direction: column; }
    .vti-search-form-wrap { width: 100%; }
    .vti-search-result-img { display: none; }

    /* Share buttons */
    .vti-share-bottom-btns { -webkit-flex-direction: column; flex-direction: column; }
    .vti-share-bottom-btn { -webkit-justify-content: center; justify-content: center; }
}

/* ── Mobile petit (≤ 480px) ── */
@media (max-width: 480px) {
    .vti-hero { min-height: 480px; }
    .vti-hero-meta-sep, .vti-hero-time { display: none; }
    .vti-footer-cols > * { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
    .vti-hero-strip-item { padding: 1rem 1.25rem; }
    .vti-premium-grid { gap: 1rem; }
    .vti-comments-header { -webkit-flex-direction: column; flex-direction: column; -webkit-align-items: flex-start; align-items: flex-start; gap: 0.5rem; }
    .vti-author-card-links { gap: 1rem; }
    .vti-404-cats-grid .vti-404-cat-item { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
    .vti-vti-newsletter-form button { font-size: 0.625rem; padding: 0 1rem; }
}

/* ── Très petit (≤ 360px) ── */
@media (max-width: 360px) {
    .vti-logo a { font-size: 1.25rem; }
    .vti-container { padding: 0 1rem; }
    .vti-hero-content { padding: 0 1rem 2rem; }
    .vti-single-header-inner,
    .vti-author-card,
    .vti-comments-wrap,
    .vti-post-nav-inner { padding: 0 1rem; }
}

/* ─────────────────────────────────────────────
   14. CORRECTIFS SAFARI SPÉCIFIQUES
   ───────────────────────────────────────────── */

/* Safari ≤ 15 : gap dans flexbox parfois ignoré → margin fallback */
@supports not (gap: 1rem) {
    .vti-hero-meta > * + * { margin-left: 1rem; }
    .vti-single-meta > * + * { margin-left: 0.875rem; }
    .vti-trending-grid > * + * { margin-top: 3.5rem; }
}

/* Safari : -webkit-fill-available pour 100vh sur iOS */
@supports (-webkit-touch-callout: none) {
    .vti-hero { min-height: -webkit-fill-available; min-height: 580px; }
    .vti-nav-mobile { height: -webkit-fill-available; }
}

/* Safari : position sticky dans overflow:hidden */
.vti-article-sidebar,
.vti-archive-sidebar,
.vti-page-sidebar {
    /* Contournement Safari sticky dans flex */
    -webkit-align-self: flex-start;
    align-self: flex-start;
}

/* Safari : object-fit sur les images */
.vti-img-wrap img,
.vti-hero-bg img,
.vti-single-hero-img img {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Safari : ::first-letter dans les éléments flex */
.vti-drop-cap { display: block; }

/* Dark mode : Safari respecte color-scheme */
@media (prefers-color-scheme: dark) {
    /* Ajustements spécifiques dark */
    .vti-nav-mobile { background: #0b1120; }
    .vti-nav-mobile-header { background: #0b1120; }
    .vti-newsletter-mockup { background: #1e293b; color: #f1f5f9; }
    .vti-newsletter-mockup .vti-mockup-brand { color: #f1f5f9; }
    .vti-newsletter-mockup .vti-mockup-item-title { color: #f1f5f9; }
    .vti-newsletter-mockup .vti-mockup-header,
    .vti-newsletter-mockup .vti-mockup-footer { border-color: #334155; }
    .vti-share-bottom { background: var(--vti-bg-alt); border-top-color: var(--vti-black); }
    .vti-share-bottom-btn { background: var(--vti-bg); border-color: var(--vti-border); color: var(--vti-body); }
    .vti-comment-field input[type="text"],
    .vti-comment-field input[type="email"],
    .vti-comment-field textarea { background: var(--vti-bg-alt); border-color: var(--vti-border); color: var(--vti-ink); }
    .search-field { background: var(--vti-bg-alt); color: var(--vti-ink); border-color: var(--vti-border); }
    .vti-hamburger-inner,
    .vti-hamburger-inner::before,
    .vti-hamburger-inner::after { background-color: #f1f5f9; }
}


/* ═══════════════════════════════════════════
   V1.6 — NOUVELLES VARIABLES DYNAMIQUES
   Logo centré, nav orange, sections teal
   ═══════════════════════════════════════════ */

/* ── LOGO CENTRÉ (position contrôlée par --vti-logo-justify) ── */
.vti-logo {
    justify-content: var(--vti-logo-justify, center) !important;
}
.vti-header-main {
    justify-content: space-between;
}
/* Quand logo centré : les flancs prennent flex:1 pour équilibrer */
.vti-header-left,
.vti-header-right {
    flex: 1;
}
/* Image logo */
.vti-logo-img {
    max-width: var(--vti-logo-width, 180px);
    height: auto;
    width: 100%;
    object-fit: contain;
    display: block;
}

/* ── NAVIGATION — couleur dynamique ── */
.vti-nav-desktop {
    background: var(--vti-nav-bg, #FF6600);
    border-top: none;
}
.vti-nav-desktop-list a {
    color: var(--vti-nav-text, #fff) !important;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    min-height: var(--vti-nav-height, 60px);
    padding: 0.75rem 0;
    display: inline-flex;
    align-items: center;
}
.vti-nav-desktop-list a::after {
    background: rgba(255,255,255,0.5);
}
.vti-nav-desktop-list a:hover,
.vti-nav-desktop-list .current-menu-item > a,
.vti-nav-desktop-list .current-menu-parent > a,
.vti-nav-desktop-list .current-menu-ancestor > a,
.vti-nav-desktop-list .current-category-ancestor > a,
.vti-nav-desktop-list .current-post-ancestor > a {
    color: rgba(255,255,255,0.8) !important;
    opacity: 1;
}
.vti-nav-desktop-list a:hover::after,
.vti-nav-desktop-list .current-menu-item > a::after,
.vti-nav-desktop-list .current-menu-parent > a::after,
.vti-nav-desktop-list .current-menu-ancestor > a::after,
.vti-nav-desktop-list .current-category-ancestor > a::after,
.vti-nav-desktop-list .current-post-ancestor > a::after {
    width: 100%;
}
/* Container nav */
.vti-nav-desktop-list {
    max-width: var(--vti-container);
    margin: 0 auto;
    min-height: var(--vti-nav-height, 60px);
    padding: 0 2rem;
    align-items: stretch;
}

/* ── LABELS / BADGES — couleur secondaire teal ── */
.vti-label {
    color: var(--vti-secondary) !important;
}
.vti-badge-une {
    background: var(--vti-secondary);
}

/* ── SECTION HEADERS — accent couleur principale ── */
.vti-section-header h2 {
    color: var(--vti-dark);
}
.vti-section-link {
    color: var(--vti-accent);
}
.vti-section-link:hover { color: var(--vti-dark); }

/* ── CAT BLOCK HEADERS ── */
.vti-cat-block-header {
    border-bottom-color: var(--vti-secondary);
}
.vti-cat-block-header h3 { color: var(--vti-dark); }
.vti-cat-see-all { color: var(--vti-secondary); }
.vti-cat-see-all:hover { color: var(--vti-dark); }

/* ── LIENS CONTENU ── */
.vti-prose a { color: var(--vti-link); }
.vti-prose a:hover { color: var(--vti-secondary-hover, #007A88); }
.vti-prose blockquote { border-left-color: var(--vti-secondary); }

/* ── EDITORIAL ITEMS ── */
.vti-editorial-item:hover .vti-editorial-title { color: var(--vti-accent); }
.vti-editorial-item:hover .vti-editorial-num { color: var(--vti-accent-light); }

/* ── HOVER LIFT — utilise couleur secondaire ── */
.vti-archive-card:hover,
.vti-related-card:hover,
.vti-premium-card:hover {
    border-color: var(--vti-secondary);
}

/* ── TAGS ── */
.vti-tag:hover {
    border-color: var(--vti-secondary);
    color: var(--vti-secondary);
}

/* ── PARTAGE BAS D'ARTICLE ── */
.vti-share-bottom {
    border-top-color: var(--vti-secondary);
}

/* ── BOUTONS PRINCIPAUX ── */
.vti-btn-outline:hover {
    background: var(--vti-secondary);
    border-color: var(--vti-secondary);
    color: #fff;
}
.vti-btn-subscribe {
    background: var(--vti-dark);
}
.vti-btn-subscribe:hover {
    background: var(--vti-accent);
}

/* ── NEWSLETTER ── */
.vti-newsletter {
    background: var(--vti-dark-surface);
}
.vti-newsletter-label { color: var(--vti-secondary); }
.vti-newsletter-form button { background: var(--vti-accent); }
.vti-newsletter-form button:hover { background: var(--vti-accent-hover); }

/* ── FOOTER ── */
.vti-footer { border-top-color: var(--vti-secondary); }
.vti-footer-col a:hover { color: var(--vti-secondary); }
.vti-footer-social a:hover { color: var(--vti-accent); }

/* ── COMMENTS ── */
.vti-comment-respond { border-top-color: var(--vti-secondary); }
.vti-comment-submit:hover, #submit:hover { background: var(--vti-secondary); }

/* ── SIDEBAR NL ── */
.vti-sidebar-nl-eyebrow { color: var(--vti-secondary); }
.vti-sidebar-nl-btn { background: var(--vti-accent); }
.vti-sidebar-nl-btn:hover { background: var(--vti-accent-hover); }

/* ── ARCHIVE NL INSERT ── */
.vti-archive-nl-eyebrow { color: var(--vti-secondary); }
.vti-archive-nl-btn { background: var(--vti-accent); }
.vti-archive-nl-btn:hover { background: var(--vti-accent-hover); }

/* ── PAGINATION ── */
.vti-pagination .page-numbers:hover,
.vti-pagination .page-numbers.current {
    background: var(--vti-secondary);
    border-color: var(--vti-secondary);
}

/* ── MOBILE NAV ── */
.vti-nav-mobile-list a:hover,
.vti-nav-mobile-list .current-menu-item a {
    color: var(--vti-accent);
    background: var(--vti-accent-light);
}

/* ── POST NAV ── */
.vti-post-nav-item:hover .vti-post-nav-title { color: var(--vti-accent); }
.vti-post-nav-cat { color: var(--vti-secondary); }

/* ── TOC ── */
#vti-toc-list a:hover { color: var(--vti-secondary); }

/* ── HERO STRIP ── */
.vti-hero-strip-item:hover .vti-hero-strip-title { color: var(--vti-secondary); }

/* ── 404 ── */
.vti-404-cat-item:hover { border-color: var(--vti-secondary); }
.vti-404-cat-item:hover .vti-404-cat-name { color: var(--vti-secondary); }

/* ── SEARCH ── */
.vti-search-result:hover .vti-search-result-title { color: var(--vti-secondary); }
.vti-search-result:hover .vti-search-result-arrow { color: var(--vti-secondary); }

/* ── SIDEBAR CATS ── */
.vti-sidebar-categories a:hover,
.vti-sidebar-categories .current-cat a { color: var(--vti-secondary); }

/* ── BODY TEXT COLOR ── */
body { color: var(--vti-text-color); }

/* ─────────────────────────────────────────────
   COMPATIBILITÉ CACHE — Critical CSS inline-able
   Les propriétés critiques au-dessus du fold
   sont listées ici pour ne pas bloquer le rendu
   même si magazine.css est différé par le cache.
   ───────────────────────────────────────────── */
.vti-header { position: sticky; top: 0; z-index: 200; background: var(--vti-bg, #fff); }
.vti-nav-desktop { background: #fff; }
.vti-logo a { color: var(--vti-dark, #1A1A2E); }

/* ── DARK MODE : overrides pour la nouvelle palette ── */
@media (prefers-color-scheme: dark) {
    .vti-nav-desktop { background: color-mix(in srgb, var(--vti-nav-bg) 85%, black); }
    .vti-nav-desktop-list a { color: rgba(255,255,255,0.9) !important; }
    .vti-newsletter { background: var(--vti-dark); }
}


/* ═══════════════════════════════════════════════
   V1.7 — NOUVEAUX COMPOSANTS
   ═══════════════════════════════════════════════ */

/* ── HAUTEUR HEADER DYNAMIQUE ─────────────────── */
/* Contrôlée par --vti-header-height (défaut 88px) depuis Réglages */
.vti-header-main {
    height: var(--vti-header-height, 88px) !important;
}

/* ── HAUTEUR NAVIGATION DYNAMIQUE ────────────── */
.vti-nav-desktop-list {
    min-height: var(--vti-nav-height, 60px);
}

.vti-nav-desktop-list > li {
    display: flex;
    align-items: stretch;
}

/* ── FIX BOUTON RECHERCHE ─────────────────────── */
/* Assure que l'overlay est visible au-dessus de tout */
.vti-search-overlay {
    z-index: 1001 !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    background: rgba(0,0,0,0.85) !important;
    display: none;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    padding: 2rem;
}
.vti-search-overlay.is-open {
    display: -webkit-flex !important;
    display: flex !important;
}
.vti-search-overlay-inner {
    max-width: 680px;
    width: 100%;
    position: relative;
}
.vti-search-overlay .search-form {
    display: -webkit-flex;
    display: flex;
}
.vti-search-overlay .search-field {
    -webkit-flex: 1;
    flex: 1;
    height: 3.5rem;
    font-size: 1.125rem;
    background: #fff;
    color: #1a1a1a;
    border: none;
    padding: 0 1.5rem;
    border-radius: 0;
}
.vti-search-overlay .search-submit {
    height: 3.5rem;
    padding: 0 2rem;
    background: var(--vti-accent);
    color: #fff;
    font-size: .875rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
}
.vti-search-close {
    position: absolute;
    top: -3rem;
    right: 0;
    background: none;
    border: none;
    color: rgba(255,255,255,.7);
    cursor: pointer;
    padding: .5rem;
    min-width: 44px;
    min-height: 44px;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-transition: color .2s;
    transition: color .2s;
}
.vti-search-close:hover { color: #fff; }

/* ── FAQ ACCORDÉON ────────────────────────────── */
.vti-faq {
    margin: 3rem 0;
    border-top: 2px solid var(--vti-secondary);
    padding-top: 2rem;
}
.vti-faq-title {
    font-family: var(--vti-serif);
    font-size: clamp(1.375rem,2.5vw,1.75rem);
    font-weight: 700;
    color: var(--vti-black);
    margin: 0 0 1.5rem;
    letter-spacing: -.015em;
}
.vti-faq-list {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--vti-border);
}
.vti-faq-item {
    border-bottom: 1px solid var(--vti-border);
}
.vti-faq-item:last-child { border-bottom: none; }
.vti-faq-q {
    width: 100%;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--vti-sans);
    font-size: 1rem;
    font-weight: 600;
    color: var(--vti-black);
    line-height: 1.4;
    -webkit-transition: background .15s, color .15s;
    transition: background .15s, color .15s;
    min-height: 44px;
}
.vti-faq-q:hover {
    background: var(--vti-bg-alt);
    color: var(--vti-secondary);
}
.vti-faq-q[aria-expanded="true"] {
    color: var(--vti-secondary);
    background: var(--vti-bg-alt);
}
.vti-faq-chevron {
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
    color: var(--vti-light);
    -webkit-transition: -webkit-transform .25s var(--vti-ease);
    transition: transform .25s var(--vti-ease);
}
.vti-faq-q[aria-expanded="true"] .vti-faq-chevron {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
    color: var(--vti-secondary);
}
.vti-faq-a {
    padding: 0 1.5rem 1.5rem;
    font-family: var(--vti-sans);
    font-size: .9375rem;
    color: var(--vti-body);
    line-height: 1.75;
    background: var(--vti-bg-alt);
}
.vti-faq-a[hidden] { display: none; }
.vti-faq-a p { margin: 0 0 1rem; }
.vti-faq-a p:last-child { margin-bottom: 0; }
.vti-faq-a a { color: var(--vti-link); text-underline-offset: 3px; }

/* ── RÉSEAUX SOCIAUX FOOTER ───────────────────── */
.vti-footer-social {
    display: -webkit-flex;
    display: flex;
    gap: .75rem;
    -webkit-align-items: center;
    align-items: center;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}
.vti-footer-social-link {
    display: -webkit-inline-flex;
    display: inline-flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--vti-bg-alt);
    color: var(--vti-muted);
    text-decoration: none;
    -webkit-transition: background .2s, color .2s, -webkit-transform .2s;
    transition: background .2s, color .2s, transform .2s;
    border: 1px solid var(--vti-border);
}
.vti-footer-social-link:hover {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
    color: #fff;
}
.vti-footer-social-link:hover,
.vti-footer-social-facebook:hover { background: #1877F2; border-color: #1877F2; }
.vti-footer-social-twitter:hover  { background: #000; border-color: #000; }
.vti-footer-social-linkedin:hover { background: #0A66C2; border-color: #0A66C2; }
.vti-footer-social-rss:hover      { background: #F26522; border-color: #F26522; }

/* Dark mode pour les icônes */
@media (prefers-color-scheme: dark) {
    .vti-footer-social-link {
        background: rgba(255,255,255,.08);
        border-color: rgba(255,255,255,.12);
        color: rgba(255,255,255,.6);
    }
}


/* ═══════════════════════════════════════════════
   V1.8 — COMPATIBILITÉ ELEMENTOR FREE (HYBRIDE)
   ═══════════════════════════════════════════════ */

/* ── 1. RESET pour les pages Elementor ───────────
   Quand Elementor prend la main, on retire les
   styles de mise en page du thème pour laisser
   Elementor contrôler complètement l'apparence.
*/

/* Page avec Elementor : pas de padding de container sur le contenu */
.vti-page--elementor .vti-page-content--elementor {
    padding: 0;
    max-width: none;
}

/* Article avec Elementor : le corps pleine largeur */
.vti-single--elementor .vti-single-body {
    /* Conserver le layout sidebar/contenu mais laisser Elementor gérer la typo */
}
.vti-single--elementor .vti-prose--elementor {
    /* Retirer les styles typographiques du thème — Elementor les gère */
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}
/* Mais garder les styles de l'éditeur Elementor lui-même */
.vti-single--elementor .elementor,
.vti-single--elementor .elementor-section,
.vti-single--elementor .elementor-widget {
    max-width: none;
}

/* ── 2. COMPATIBILITÉ ÉDITEUR ELEMENTOR ──────────
   Styles nécessaires pour que l'éditeur Elementor
   affiche correctement le header/footer du thème
   en mode prévisualisation.
*/
.elementor-editor-active .vti-header {
    position: relative !important;
    z-index: 999;
}

/* ── 3. TEMPLATE PLEINE LARGEUR ──────────────────
   Le contenu prend toute la largeur disponible
   (pas de container centré du thème).
*/
.vti-elementor-full-width {
    width: 100%;
    padding: 0;
}
.vti-elementor-full-width .elementor-section-boxed > .elementor-container {
    max-width: 1200px;
}

/* ── 4. STYLES ELEMENTOR QUI S'INTÈGRENT AU THÈME ─
   Les widgets Elementor héritent de la palette
   de couleurs et des variables CSS du thème.
*/
.elementor-widget-heading .elementor-heading-title {
    font-family: var(--vti-serif, 'Playfair Display', Georgia, serif);
}
.elementor-widget-text-editor {
    font-family: var(--vti-sans, 'Inter', sans-serif);
    color: var(--vti-text-color, #2D2D2D);
    line-height: 1.75;
}
.elementor-button.elementor-button-link,
.elementor-button {
    font-family: var(--vti-sans, 'Inter', sans-serif);
}
/* Liens Elementor : couleur du thème */
.elementor-widget-text-editor a {
    color: var(--vti-link, #009BAA);
}
.elementor-widget-text-editor a:hover {
    color: var(--vti-accent, #FF6600);
}
/* Accordion/FAQ Elementor : compatible avec le style thème */
.elementor-accordion .elementor-tab-title {
    font-family: var(--vti-sans);
    color: var(--vti-dark, #1A1A2E);
}
.elementor-accordion .elementor-tab-title.elementor-active {
    color: var(--vti-secondary, #009BAA);
}
.elementor-accordion .elementor-tab-content {
    font-family: var(--vti-sans);
    color: var(--vti-text-color);
}

/* ── 5. SEPARATEUR VISUEL ELEMENTOR/THÈME ────────
   Espace entre les sections Elementor et les éléments
   du thème (partage, articles liés, commentaires).
*/
.vti-single--elementor .vti-share-bottom {
    margin-top: 2rem;
    border-top: 2px solid var(--vti-secondary, #009BAA);
}
.vti-single--elementor .vti-author-card-wrap {
    margin-top: 0;
}

/* ── 6. BOUTON "ÉDITER AVEC ELEMENTOR" ───────────
   Style de la barre d'admin Elementor qui n'entre
   pas en conflit avec la topbar du thème.
*/
#elementor-preview-iframe {
    /* Rien à surcharger */
}
.admin-bar .vti-header {
    top: 32px;
}
@media (max-width: 782px) {
    .admin-bar .vti-header { top: 46px; }
}

/* ── 7. PAGE DE PAGE (page.php par défaut) ────────*/
.vti-page-header {
    padding: 3rem 0 2rem;
    border-bottom: 1px solid var(--vti-border, #e5e7eb);
    margin-bottom: 3rem;
}
.vti-page-title {
    font-family: var(--vti-serif);
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 700;
    color: var(--vti-dark);
    letter-spacing: -.02em;
    margin: 0;
}
.vti-page-content {
    padding-top: 0;
    padding-bottom: 4rem;
}
.vti-page-content p { margin-bottom: 1.5rem; line-height: 1.75; }
.vti-page-content h2 {
    font-family: var(--vti-serif);
    font-size: 1.5rem;
    font-weight: 700;
    margin: 2.5rem 0 1rem;
    color: var(--vti-dark);
}
.vti-page-content a { color: var(--vti-link); }
.vti-page-content a:hover { color: var(--vti-accent); }


/* ═══════════════════════════════════════════════
   V1.9.2 — NAVIGATION PREMIUM & SOUS-MENUS
   ═══════════════════════════════════════════════ */
.vti-nav-desktop {
    position: relative;
    z-index: 210;
}

.vti-nav-desktop-list {
    gap: clamp(1rem, 1.8vw, 2.4rem);
}

.vti-nav-desktop-list > li {
    position: relative;
}

.vti-nav-desktop-list > li > a {
    padding-inline: 0.2rem;
}

.vti-nav-desktop-list > li.menu-item-has-children > a,
.vti-nav-desktop-list > li.vti-menu-item-has-children > a {
    padding-right: 1rem;
}

.vti-nav-desktop-list > li.menu-item-has-children > a::before,
.vti-nav-desktop-list > li.vti-menu-item-has-children > a::before {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    width: 0.4rem;
    height: 0.4rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-65%) rotate(45deg);
    opacity: 0.8;
}

.vti-nav-desktop-list .sub-menu {
    position: absolute;
    top: calc(100% - 1px);
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    min-width: 220px;
    max-width: 320px;
    margin: 0;
    padding: 0.75rem 0;
    list-style: none;
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 18px 40px rgba(0,0,0,0.12);
    border-radius: 0 0 14px 14px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s var(--vti-ease), transform .22s var(--vti-ease), visibility .22s var(--vti-ease);
    z-index: 300;
}

.vti-nav-desktop-list li:hover > .sub-menu,
.vti-nav-desktop-list li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.vti-nav-desktop-list .sub-menu li {
    display: block;
}

.vti-nav-desktop-list .sub-menu a {
    color: var(--vti-dark, #1A1A2E) !important;
    min-height: 0;
    width: 100%;
    padding: 0.7rem 1rem;
    justify-content: flex-start;
    letter-spacing: 0.08em;
    font-size: 0.7rem;
    line-height: 1.4;
}

.vti-nav-desktop-list .sub-menu a::after,
.vti-nav-desktop-list .sub-menu a::before {
    display: none;
}

.vti-nav-desktop-list .sub-menu a:hover,
.vti-nav-desktop-list .sub-menu .current-menu-item > a,
.vti-nav-desktop-list .sub-menu .current-menu-ancestor > a {
    background: rgba(255,102,0,0.08);
    color: var(--vti-accent, #FF6600) !important;
}

.vti-nav-mobile-list .sub-menu {
    list-style: none;
    margin: 0.35rem 0 0.85rem;
    padding: 0 0 0 1rem;
    border-left: 1px solid rgba(255,255,255,0.08);
}

.vti-nav-mobile-list .sub-menu a {
    padding: 0.75rem 0.5rem 0.75rem 0.85rem;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.72);
}

.vti-nav-mobile-list > li > a {
    border-radius: 12px;
}

.vti-nav-mobile-list > li.current-menu-item > a,
.vti-nav-mobile-list > li.current-menu-ancestor > a,
.vti-nav-mobile-list > li.current-menu-parent > a {
    color: var(--vti-accent);
    background: rgba(255,102,0,0.08);
}

.vti-nav-mobile-brand {
    letter-spacing: 0.02em;
}

@media (max-width: 1024px) {
    .vti-nav-desktop-list {
        gap: 0.9rem;
        padding-inline: 1rem;
    }

    .vti-nav-desktop-list > li > a {
        font-size: 0.69rem;
        letter-spacing: 0.1em;
    }
}


/* =============================================================
   v1.9.3 — ajustements header / homepage / archives / responsive
   ============================================================= */
:root {
    --vti-header-max: 1680px;
    --vti-header-gutter: 2rem;
    --vti-header-border: #e8ebf0;
    --vti-hero-title-color: #d8d4ff;
}

.vti-topbar {
    padding: 0;
    background: #0d1736;
    color: rgba(255,255,255,.78);
    letter-spacing: .18em;
}
.vti-topbar-inner,
.vti-header-main,
.vti-nav-desktop-inner {
    max-width: var(--vti-header-max);
    margin: 0 auto;
    width: 100%;
}
.vti-topbar-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height: 40px;
    padding: 0 var(--vti-header-gutter);
    gap: 1rem;
}
.vti-header {
    background: rgba(255,255,255,.97);
    border-bottom: 1px solid var(--vti-header-border);
    -webkit-backdrop-filter: blur(10px) saturate(180%);
    backdrop-filter: blur(10px) saturate(180%);
}
.vti-header-main {
    position: relative;
    padding: 0 var(--vti-header-gutter);
    height: max(var(--vti-header-height, 88px), 96px) !important;
}
.vti-header-left, .vti-header-right {
    min-width: 260px;
}
.vti-search-btn {
    color: #8d95a3;
    font-size: .9rem;
    letter-spacing: .16em;
    padding: 0;
}
.vti-search-btn svg { width: 18px; height: 18px; }
.vti-logo {
    display:flex;
    align-items:center;
    justify-content:center;
    padding: .25rem 1rem;
}
.vti-logo a {
    font-size: clamp(2.35rem, 3.4vw, 4.4rem);
    letter-spacing: -0.05em;
    color: #10162f;
}
.vti-logo-img {
    width: min(var(--vti-logo-width, 180px), 100%);
    height: auto;
    max-height: 86px;
}
.vti-logo-dot, .vti-logo-it { color: #6d63ff; }
.vti-btn-subscribe {
    background: #0f1735;
    padding: 1rem 2rem;
    border-radius: 0;
    font-size: .8rem;
    letter-spacing: .14em;
    box-shadow: none;
}
.vti-nav-desktop {
    background: #fff;
    border-top: 1px solid var(--vti-header-border);
}
.vti-nav-desktop-list {
    min-height: 56px;
    padding: 0 var(--vti-header-gutter);
    gap: clamp(1.25rem, 2.1vw, 3rem);
    justify-content: center;
}
.vti-nav-desktop-list > li { position: relative; }
.vti-nav-desktop-list > li > a {
    display:inline-flex;
    align-items:center;
    min-height: 56px;
    padding: .25rem 0;
    color: #6f7787;
    font-size: .86rem;
    letter-spacing: .18em;
}
.vti-nav-desktop-list > li > a::after {
    bottom: 0;
    height: 2px;
    background: #c6c9cf;
}
.vti-nav-desktop-list > li:hover > a,
.vti-nav-desktop-list > li.current-menu-item > a,
.vti-nav-desktop-list > li.current-menu-ancestor > a,
.vti-nav-desktop-list > li.current-category-ancestor > a {
    color: #12182d;
}
.vti-nav-desktop-list > li.current-menu-item > a::after,
.vti-nav-desktop-list > li.current-menu-ancestor > a::after,
.vti-nav-desktop-list > li.current-category-ancestor > a::after,
.vti-nav-desktop-list > li:hover > a::after {
    width: 100%;
    background: #cfd3d9;
}
.vti-nav-desktop .sub-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    min-width: 240px;
    list-style: none;
    margin: 0;
    padding: .9rem 0;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(15,23,53,.08);
    box-shadow: 0 14px 36px rgba(15,23,53,.12);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: .2s ease;
    z-index: 20;
}
.vti-nav-desktop li:hover > .sub-menu,
.vti-nav-desktop li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    top: 100%;
}
.vti-nav-desktop .sub-menu li { display:block; }
.vti-nav-desktop .sub-menu a {
    display:block;
    padding: .8rem 1.2rem;
    min-height: auto;
    color: #111827;
    font-size: .8rem;
    letter-spacing: .08em;
}
.vti-nav-desktop .sub-menu a::after { display:none; }
.vti-nav-desktop .sub-menu a:hover { background: #f5f7fb; color: #0f1735; }

.vti-hero {
    min-height: 76vh;
    max-height: 980px;
}
.vti-hero-gradient {
    background: linear-gradient(90deg, rgba(8,15,34,.70) 0%, rgba(8,15,34,.58) 34%, rgba(8,15,34,.20) 62%, rgba(8,15,34,.42) 100%), linear-gradient(180deg, rgba(12,22,43,.10) 0%, rgba(9,16,36,.54) 100%);
}
.vti-hero-content {
    max-width: var(--vti-header-max);
    padding: 0 var(--vti-header-gutter) 4rem;
}
.vti-hero-kicker { margin-bottom: 1.35rem; }
.vti-label--hero {
    color: rgba(220,228,255,.76);
    border-color: rgba(220,228,255,.18);
    background: rgba(16,22,47,.18);
}
.vti-hero-title {
    max-width: 980px;
    color: var(--vti-hero-title-color);
    font-size: clamp(3rem, 5.8vw, 6.25rem);
    line-height: .98;
    letter-spacing: -0.055em;
    margin-bottom: 1.6rem;
}
.vti-hero-excerpt {
    max-width: 760px;
    color: rgba(255,255,255,.9);
    font-size: clamp(1.05rem, 1.7vw, 1.55rem);
    line-height: 1.5;
}
.vti-hero-meta { gap: 1rem; }
.vti-hero-date, .vti-hero-time, .vti-hero-author span { color: rgba(255,255,255,.92); }
.vti-hero-strip { background: #fff; }
.vti-hero-strip-inner { max-width: var(--vti-header-max); }
.vti-hero-strip-item { padding: 1.65rem 1.8rem; }
.vti-section-header h2, .vti-premium-header h2, .vti-archive-title { letter-spacing: -.04em; }

.vti-archive-header {
    padding: 3.5rem 0 2.5rem;
    background: linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
}
.vti-archive-desc { max-width: 740px; }
.vti-archive-layout { gap: 3rem; }
.vti-archive-grid { gap: 2rem; }
.vti-archive-card { flex: 1 1 calc(50% - 1rem); }
.vti-archive-card .vti-card-title { font-size: clamp(1.1rem, 1.7vw, 1.35rem); }
.vti-archive-sidebar { top: 140px; }

@media (max-width: 1200px) {
    :root { --vti-header-gutter: 1.5rem; }
    .vti-header-left, .vti-header-right { min-width: 220px; }
    .vti-logo a { font-size: clamp(2rem, 3vw, 3.4rem); }
    .vti-nav-desktop-list { gap: 1.4rem; }
    .vti-nav-desktop-list > li > a { font-size: .78rem; }
    .vti-hero-title { font-size: clamp(2.8rem, 6.2vw, 5rem); }
}

@media (max-width: 1024px) {
    .vti-header { border-bottom-color: #e6e9ef; }
    .vti-header-main { height: 82px !important; }
    .vti-logo { margin: 0 auto; }
    .vti-logo a { font-size: 2.3rem; }
    .vti-search-btn-mobile, .vti-hamburger { color: #0f1735; }
    .vti-nav-mobile { width: min(380px, 92vw); }
    .vti-nav-mobile-header { padding: 1.25rem 1.25rem 1rem; }
    .vti-nav-mobile-body { padding: 0 1.25rem 1.5rem; }
    .vti-nav-mobile-list a { font-size: .95rem; padding: 1rem 0; }
    .vti-hero { min-height: 68vh; }
    .vti-hero-content { padding-bottom: 3rem; }
    .vti-hero-strip-inner { padding: 0 1.25rem; }
    .vti-archive-header { padding: 2.75rem 0 2rem; }
    .vti-archive-featured .vti-card-title { font-size: clamp(1.4rem, 3vw, 2rem); }
}

@media (max-width: 768px) {
    :root { --vti-header-gutter: 1rem; }
    .vti-header-main { height: 72px !important; padding: 0 var(--vti-header-gutter); }
    .vti-logo a { font-size: 1.85rem; }
    .vti-logo-img { max-height: 52px; }
    .vti-nav-mobile-brand { font-size: 1rem; }
    .vti-hero { min-height: 540px; height: auto; }
    .vti-hero-content { padding: 0 1rem 2rem; }
    .vti-hero-title { font-size: clamp(2.3rem, 11vw, 3.5rem); line-height: 1.02; }
    .vti-hero-excerpt { font-size: 1rem; max-width: 100%; }
    .vti-hero-meta { align-items:flex-start; gap:.65rem; }
    .vti-hero-meta-sep { display:none; }
    .vti-hero-author { width: 100%; }
    .vti-hero-date, .vti-hero-time { font-size: .72rem; }
    .vti-hero-strip-item { padding: 1.15rem 0; }
    .vti-trending-main .vti-card-title,
    .vti-premium-card-title { font-size: clamp(1.35rem, 6vw, 1.8rem); }
    .vti-archive-card { flex-basis: 100%; }
    .vti-archive-header-inner { gap: 1rem; }
    .vti-archive-count-wrap { text-align: left; }
}

@media (max-width: 560px) {
    .vti-topbar-inner { min-height: 34px; font-size: .56rem; letter-spacing: .12em; }
    .vti-topbar-inner span:last-child { display:none; }
    .vti-btn-subscribe { padding: .82rem 1.1rem; font-size: .68rem; }
    .vti-logo a { font-size: 1.6rem; }
    .vti-header-main { grid-template-columns: 44px 1fr 44px; }
    .vti-nav-mobile { width: 100%; max-width: none; }
}


/* =============================================================
   v1.9.4 — correction nav orange + hero home plus mesuré + rubriques magazine
   ============================================================= */
.vti-nav-desktop {
    background: var(--vti-nav-bg, #ff6600);
    border-top: 0;
    border-bottom: 0;
}
.vti-nav-desktop-list {
    min-height: var(--vti-nav-height, 60px);
}
.vti-nav-desktop-list > li > a {
    min-height: var(--vti-nav-height, 60px);
    color: rgba(255,255,255,.9);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .14em;
}
.vti-nav-desktop-list > li > a::after {
    background: rgba(255,255,255,.92);
    height: 2px;
}
.vti-nav-desktop-list > li:hover > a,
.vti-nav-desktop-list > li.current-menu-item > a,
.vti-nav-desktop-list > li.current-menu-ancestor > a,
.vti-nav-desktop-list > li.current-category-ancestor > a {
    color: #fff;
}
.vti-nav-desktop-list > li.current-menu-item > a::after,
.vti-nav-desktop-list > li.current-menu-ancestor > a::after,
.vti-nav-desktop-list > li.current-category-ancestor > a::after,
.vti-nav-desktop-list > li:hover > a::after {
    background: #fff;
}
.vti-nav-desktop .sub-menu {
    top: 100%;
    left: 0;
    transform: none;
    background: #fff;
}
.vti-nav-desktop .sub-menu a {
    color: #141b31;
}

.vti-hero {
    min-height: 64vh;
    max-height: 860px;
}
.vti-hero-content {
    padding-bottom: 3rem;
}
.vti-hero-title {
    max-width: 860px;
    font-size: clamp(2.45rem, 4.65vw, 4.95rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
}
.vti-hero-excerpt {
    max-width: 700px;
    font-size: clamp(1rem, 1.35vw, 1.22rem);
}

.vti-archive--category .vti-archive-body {
    padding-top: 3.25rem;
}
.vti-archive-header--category {
    background: linear-gradient(180deg, #07102a 0%, #050b21 100%);
    border-bottom: 0;
    color: #fff;
    padding: 4.5rem 0 4rem;
}
.vti-archive-header-inner--category {
    display: block;
    max-width: 1280px;
    padding: 0 2rem;
}
.vti-archive-crumbs {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: 2rem;
    font-family: var(--vti-sans);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(216,225,255,.76);
}
.vti-archive-crumbs a {
    text-decoration: none;
    color: rgba(216,225,255,.76);
}
.vti-archive-kicker-row {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
}
.vti-archive-kicker-line {
    width: 72px;
    height: 2px;
    background: #7988ff;
}
.vti-archive-kicker-text {
    font-family: var(--vti-sans);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #8ea0ff;
}
.vti-archive-title--category {
    max-width: 760px;
    color: #f7f7fb;
    font-size: clamp(3.25rem, 7vw, 7rem);
    line-height: .9;
    letter-spacing: -.06em;
    margin-bottom: 1.5rem;
}
.vti-archive-title--category em,
.vti-archive-title--category span {
    color: #8491ff;
}
.vti-archive-desc--category {
    max-width: 980px;
    font-family: var(--vti-serif);
    font-style: italic;
    font-size: clamp(1.15rem, 1.8vw, 1.6rem);
    line-height: 1.55;
    color: rgba(241,244,255,.92);
    margin: 0;
}
.vti-archive-layout--category {
    display: block;
    max-width: 1280px;
}
.vti-archive-featured--category {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: 2rem;
    align-items: stretch;
    margin-bottom: 3rem;
    padding-bottom: 3rem;
}
.vti-archive-featured--category .vti-img-featured {
    aspect-ratio: 16/10;
}
.vti-archive-featured--category .vti-archive-featured-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 0;
}
.vti-archive-featured--category .vti-card-title {
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.05;
    margin-top: .65rem;
}
.vti-archive-grid--category {
    gap: 2.25rem;
}
.vti-archive-card--category {
    flex: 1 1 calc(33.333% - 1.5rem);
}
.vti-archive-card--category .vti-card-title {
    font-size: clamp(1.15rem, 1.55vw, 1.45rem);
    line-height: 1.15;
}
.vti-archive-card--category .vti-meta,
.vti-archive-featured--category .vti-meta {
    color: #61697a;
}
.vti-archive-card--category .vti-img-wrap {
    aspect-ratio: 4 / 3;
}

@media (max-width: 1024px) {
    .vti-hero {
        min-height: 60vh;
    }
    .vti-hero-title {
        font-size: clamp(2.3rem, 6vw, 4rem);
    }
    .vti-archive-header--category {
        padding: 3.5rem 0 3rem;
    }
    .vti-archive-title--category {
        font-size: clamp(2.7rem, 8vw, 5rem);
    }
    .vti-archive-featured--category {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .vti-archive-card--category {
        flex: 1 1 calc(50% - 1.2rem);
    }
}

@media (max-width: 767px) {
    .vti-topbar-inner {
        padding-inline: 1rem;
    }
    .vti-header-main {
        height: 74px !important;
    }
    .vti-hero {
        min-height: 520px;
    }
    .vti-hero-title {
        font-size: clamp(2rem, 10vw, 3.35rem);
    }
    .vti-archive-header-inner--category,
    .vti-archive-layout--category {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .vti-archive-crumbs {
        gap: .5rem;
        font-size: .68rem;
        margin-bottom: 1.35rem;
    }
    .vti-archive-kicker-row {
        margin-bottom: 1.35rem;
    }
    .vti-archive-kicker-line {
        width: 48px;
    }
    .vti-archive-kicker-text {
        font-size: .68rem;
        letter-spacing: .1em;
    }
    .vti-archive-title--category {
        font-size: clamp(2.3rem, 15vw, 3.8rem);
        line-height: .95;
    }
    .vti-archive-desc--category {
        font-size: 1.04rem;
    }
    .vti-archive-card--category {
        flex-basis: 100%;
    }
}

/* ─────────────────────────────────────────────
   19. CATEGORY SHOWCASE v1.9.5
   ───────────────────────────────────────────── */

.vti-category-shell {
    background: #f7f7f4;
    padding: 0 0 5rem;
}
.vti-category-shell-inner {
    max-width: 1240px;
    margin: -42px auto 0;
    padding: 0 28px;
    position: relative;
    z-index: 5;
}
.vti-category-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
    align-items: center;
    padding: 1rem 1.5rem 0.9rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    border-bottom-color: var(--vti-border);
    box-shadow: 0 10px 28px rgba(7, 12, 30, 0.05);
    margin-bottom: 2.35rem;
}
.vti-category-tabs a {
    position: relative;
    font-family: var(--vti-sans);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #8991a3;
    text-decoration: none;
    padding: 0 0 0.8rem;
}
.vti-category-tabs a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--vti-accent);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.25s var(--vti-ease);
}
.vti-category-tabs a:hover,
.vti-category-tabs a.is-current {
    color: var(--vti-black);
}
.vti-category-tabs a:hover::after,
.vti-category-tabs a.is-current::after {
    transform: scaleX(1);
}
.vti-category-section-heading {
    display: block;
    margin-bottom: 1.15rem;
}
.vti-category-section-heading--spaced {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--vti-border);
}
.vti-category-section-kicker {
    display: inline-block;
    font-family: var(--vti-sans);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #7d8392;
    margin-bottom: 0.35rem;
}
.vti-category-section-title {
    margin: 0;
    font-family: var(--vti-sans);
    font-size: clamp(1.9rem, 2.3vw, 2.5rem);
    font-weight: 700;
    line-height: 1.04;
    color: var(--vti-black);
    letter-spacing: -0.03em;
}
.vti-category-lead-wrap {
    margin-bottom: 2rem;
}
.vti-category-lead {
    display: grid;
    grid-template-columns: minmax(0, 1.52fr) minmax(300px, 0.86fr);
    gap: 1.7rem;
    align-items: start;
}
.vti-category-featured,
.vti-category-secondary-card,
.vti-category-grid-card {
    background: transparent;
}
.vti-category-featured a,
.vti-category-secondary-card a,
.vti-category-grid-card a {
    text-decoration: none;
    color: inherit;
    display: block;
}
.vti-category-featured-media,
.vti-category-secondary-media,
.vti-category-grid-media {
    background: #ececec;
    overflow: hidden;
}
.vti-category-featured-media img,
.vti-category-secondary-media img,
.vti-category-grid-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s var(--vti-ease);
}
.vti-category-featured a:hover img,
.vti-category-secondary-card a:hover img,
.vti-category-grid-card a:hover img {
    transform: scale(1.025);
}
.vti-category-featured-media {
    aspect-ratio: 1.56 / 1;
    margin-bottom: 1rem;
}
.vti-category-featured-copy {
    max-width: 92%;
}
.vti-category-featured .vti-label,
.vti-category-secondary-card .vti-label,
.vti-category-grid-card .vti-label {
    display: inline-block;
    margin-bottom: 0.6rem;
    font-size: 0.58rem;
    letter-spacing: 0.16em;
}
.vti-category-featured .vti-card-title {
    font-size: clamp(2.25rem, 3.2vw, 3.55rem);
    line-height: 0.96;
    letter-spacing: -0.045em;
    margin-bottom: 0.75rem;
    color: #181629;
}
.vti-category-featured a:hover .vti-card-title,
.vti-category-secondary-card a:hover .vti-card-title,
.vti-category-grid-card a:hover .vti-card-title {
    color: #ee5d18;
}
.vti-category-featured .vti-excerpt {
    max-width: 88%;
    font-size: 0.96rem;
    line-height: 1.58;
    color: #6c7280;
    margin-bottom: 0.9rem;
}
.vti-category-secondary-list {
    display: grid;
    gap: 1.15rem;
}
.vti-category-secondary-card {
    border-bottom: 1px solid var(--vti-border);
    padding-bottom: 1.15rem;
}
.vti-category-secondary-card:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.vti-category-secondary-media {
    aspect-ratio: 1.48 / 1;
    margin-bottom: 0.75rem;
}
.vti-category-secondary-card .vti-card-title {
    font-size: clamp(1.18rem, 1.65vw, 1.5rem);
    line-height: 1.08;
    letter-spacing: -0.03em;
    margin-bottom: 0.45rem;
}
.vti-category-grid-wrap {
    margin-top: 2rem;
}
.vti-category-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem 1.6rem;
}
.vti-category-grid-media {
    aspect-ratio: 1.38 / 1;
    margin-bottom: 0.85rem;
}
.vti-category-grid-card .vti-card-title {
    font-size: clamp(1.22rem, 1.55vw, 1.5rem);
    line-height: 1.1;
    letter-spacing: -0.03em;
    margin-bottom: 0.45rem;
}
.vti-category-grid-card .vti-excerpt {
    font-size: 0.92rem;
    line-height: 1.55;
    color: #6c7280;
    margin-bottom: 0.65rem;
}
.vti-category-grid-card .vti-meta,
.vti-category-secondary-card .vti-meta,
.vti-category-featured .vti-meta {
    font-size: 0.64rem;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: #7d8392;
}
.vti-category-grid-card .vti-meta strong,
.vti-category-secondary-card .vti-meta strong,
.vti-category-featured .vti-meta strong {
    color: var(--vti-black);
}
.vti-archive-header--category {
    padding: 5.6rem 0 7rem;
}
.vti-archive-header-inner--category {
    max-width: 1240px;
    padding: 0 28px;
}
.vti-archive-title--category {
    max-width: 720px;
    font-size: clamp(3.7rem, 6.2vw, 6rem);
    line-height: 0.92;
    letter-spacing: -0.05em;
}
.vti-archive-desc--category {
    max-width: 680px;
    margin-top: 1rem;
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    line-height: 1.52;
    color: rgba(255,255,255,0.92);
    font-style: normal;
}
@media (max-width: 1200px) {
    .vti-category-featured-copy,
    .vti-category-featured .vti-excerpt,
    .vti-archive-title--category,
    .vti-archive-desc--category {
        max-width: 100%;
    }
    .vti-category-lead {
        grid-template-columns: minmax(0, 1.28fr) minmax(280px, 0.92fr);
    }
    .vti-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 900px) {
    .vti-archive-header--category {
        padding: 4rem 0 5.4rem;
    }
    .vti-archive-header-inner--category,
    .vti-category-shell-inner {
        padding: 0 20px;
    }
    .vti-category-shell-inner {
        margin-top: -28px;
    }
    .vti-category-tabs {
        gap: 1rem;
        padding: 0.85rem 1rem 0.7rem;
        margin-bottom: 2rem;
    }
    .vti-category-section-heading {
        display: block;
    }
    .vti-category-section-title {
        margin-top: 0.25rem;
    }
    .vti-category-lead,
    .vti-category-grid {
        grid-template-columns: 1fr;
    }
    .vti-category-featured .vti-card-title {
        font-size: clamp(2rem, 8vw, 3rem);
    }
    .vti-archive-title--category {
        font-size: clamp(3rem, 12vw, 4.8rem);
    }
}
@media (max-width: 640px) {
    .vti-category-shell {
        padding-bottom: 4rem;
    }
    .vti-category-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }
    .vti-category-tabs a {
        white-space: nowrap;
    }
    .vti-category-featured-media,
    .vti-category-secondary-media,
    .vti-category-grid-media {
        aspect-ratio: 1.18 / 1;
    }
    .vti-category-featured .vti-card-title {
        font-size: 2rem;
    }
}


/* v2.1.3 — header search + footer refresh */
.vti-header-left { position: relative; }
.vti-header-search { position: relative; display:flex; flex-direction:column; align-items:flex-start; }
.vti-header-search-panel {
    position: absolute;
    top: calc(100% + 0.75rem);
    left: 0;
    width: min(34rem, 82vw);
    background: #fff;
    border: 1px solid rgba(15,23,53,.12);
    box-shadow: 0 24px 70px rgba(15,23,53,.14);
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    z-index: 40;
}
.vti-header-search-panel.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.vti-header-search-form { display:flex; gap:.75rem; align-items:center; margin:0; }
.vti-header-search-input {
    flex:1;
    min-width:0;
    border: 1px solid rgba(15,23,53,.16);
    background:#fff;
    color:#10162f;
    padding:.9rem 1rem;
    font: 500 .95rem/1.2 var(--vti-sans);
}
.vti-header-search-input:focus { outline:none; border-color: var(--vti-accent); box-shadow:0 0 0 3px rgba(255,102,0,.12); }
.vti-header-search-submit {
    border:none; background:#0f1735; color:#fff; padding:.9rem 1.1rem; font:700 .72rem/1 var(--vti-sans);
    letter-spacing:.14em; text-transform:uppercase; cursor:pointer;
}
.vti-header-search-results { margin-top:.85rem; display:grid; gap:.5rem; max-height:24rem; overflow:auto; }
.vti-search-suggestion {
    display:grid; grid-template-columns:84px 1fr; gap:.85rem; align-items:start; text-decoration:none; color:inherit;
    padding:.65rem; border:1px solid transparent; background:#fff;
}
.vti-search-suggestion:hover { border-color: rgba(15,23,53,.08); background:#f8fafc; }
.vti-search-suggestion-media { width:84px; height:64px; display:block; background:#eef2f6; overflow:hidden; }
.vti-search-suggestion-media img, .vti-search-suggestion-placeholder { width:100%; height:100%; object-fit:cover; display:block; }
.vti-search-suggestion-body { min-width:0; display:grid; gap:.22rem; }
.vti-search-suggestion-type { font:700 .62rem/1.2 var(--vti-sans); letter-spacing:.16em; text-transform:uppercase; color:var(--vti-secondary); }
.vti-search-suggestion-title { font:700 1rem/1.2 var(--vti-serif); color:#10162f; }
.vti-search-suggestion-excerpt { font:500 .78rem/1.45 var(--vti-sans); color:#6b7280; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.vti-search-suggestion-message { font:500 .82rem/1.5 var(--vti-sans); color:#6b7280; padding:.4rem 0; }
.vti-search-suggestion-more a { display:inline-block; margin-top:.35rem; font:700 .72rem/1 var(--vti-sans); letter-spacing:.14em; text-transform:uppercase; color:#10162f; text-decoration:none; }
.vti-search-suggestion-more a:hover { color: var(--vti-accent); }
.vti-footer-cols { align-items:flex-start; }
.vti-footer-col--image { flex: 1.2 1 220px; display:flex; justify-content:flex-end; }
.vti-footer-image { width:auto !important; max-width:100% !important; height:auto !important; max-height:var(--vti-footer-image-max-height, 300px) !important; object-fit:contain; display:block; }
.vti-footer-image-placeholder {
    width:100%; max-width:260px; aspect-ratio:4 / 5; border:1px dashed rgba(15,23,53,.16); color:#8b93a3;
    display:flex; align-items:center; justify-content:center; text-align:center; padding:1rem; font:600 .78rem/1.5 var(--vti-sans);
}
.vti-footer-social { gap:.85rem; }
@media (max-width: 1024px) {
    .vti-header-search-panel { width:min(30rem, 88vw); }
}
@media (max-width: 768px) {
    .vti-header-search-panel { display:none; }
    .vti-footer-col--image { justify-content:flex-start; }
    .vti-footer-image { max-width:100%; }
    .vti-footer-image-placeholder { max-width:220px; }
}


/* =============================================================
   v2.1.4.1 — réglages admin réellement appliqués
   ============================================================= */
.vti-topbar {
    background: var(--vti-dark-surface, var(--vti-dark, #1A1A2E)) !important;
    color: var(--vti-dark-muted, rgba(255,255,255,.78)) !important;
}

.vti-topbar a,
.vti-topbar .vti-topbar-inner,
.vti-topbar .vti-topbar-inner span {
    color: inherit;
}

.vti-nav-desktop {
    background: var(--vti-nav-bg, #FF6600) !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
}

.vti-nav-desktop-list,
.vti-nav-desktop-list > li > a {
    min-height: var(--vti-nav-height, 60px) !important;
}

.vti-nav-desktop-list > li > a {
    color: var(--vti-nav-text, #FFFFFF) !important;
}

.vti-nav-desktop-list > li:hover > a,
.vti-nav-desktop-list > li.current-menu-item > a,
.vti-nav-desktop-list > li.current-menu-ancestor > a,
.vti-nav-desktop-list > li.current-category-ancestor > a,
.vti-nav-desktop-list > li.current-menu-parent > a,
.vti-nav-desktop-list > li.current-post-ancestor > a {
    color: var(--vti-nav-text, #FFFFFF) !important;
    opacity: .82;
}

.vti-nav-desktop-list > li > a::after {
    background: color-mix(in srgb, var(--vti-nav-text, #FFFFFF) 78%, transparent) !important;
}

.vti-nav-desktop .sub-menu a {
    color: var(--vti-dark, #1A1A2E) !important;
}

.vti-footer-brand-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .85rem;
    margin-top: .75rem;
}

.vti-footer-linkedin {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: inherit;
    text-decoration: none;
    font-size: .82rem;
    letter-spacing: .04em;
}

.vti-footer-linkedin:hover {
    color: var(--vti-secondary);
}

.vti-footer-linkedin svg {
    flex: 0 0 auto;
}


/* =============================================================
   v2.1.5 — sticky premium, recherche fullscreen, micro-interactions,
   mobile amélioré, nettoyage footer
   ============================================================= */
.vti-header{
    position: sticky;
    top: 0;
    z-index: 1000;
    transition: transform .32s ease, box-shadow .32s ease, background-color .32s ease, backdrop-filter .32s ease;
    will-change: transform;
}
body.vti-scrolled .vti-header{
    background: color-mix(in srgb, #ffffff 88%, var(--vti-nav-bg) 12%);
    backdrop-filter: saturate(180%) blur(14px);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    box-shadow: 0 14px 40px rgba(15, 23, 42, 0.08);
}
body.vti-scroll-down.vti-scrolled-deep .vti-header{
    transform: translateY(-42px);
}
body.vti-menu-open .vti-header,
body.vti-search-open .vti-header,
body.vti-scroll-up .vti-header{
    transform: translateY(0);
}
.vti-header-main{
    transition: min-height .28s ease, height .28s ease, padding .28s ease;
}
body.vti-scrolled .vti-header-main{
    min-height: 72px;
}
body.vti-scrolled .vti-logo a{
    transform: scale(.96);
}
.vti-logo a{
    transition: transform .28s ease, opacity .2s ease;
}
.vti-nav-desktop,
.vti-topbar{
    transition: background-color .28s ease, border-color .28s ease, transform .28s ease, opacity .28s ease;
}
body.vti-scrolled .vti-nav-desktop{
    box-shadow: inset 0 -1px 0 rgba(15, 23, 42, 0.06);
}
.vti-header-search-panel{ display:none !important; }
.vti-search-overlay{
    background:
        radial-gradient(circle at top, rgba(255,255,255,.07), transparent 32%),
        linear-gradient(180deg, rgba(15,23,42,.92) 0%, rgba(15,23,42,.98) 100%);
}
.vti-search-overlay-inner{
    width: min(920px, calc(100vw - 2rem));
    padding: clamp(1.25rem, 2vw, 2rem);
}
.vti-search-overlay .search-form{
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .875rem;
    align-items: center;
}
.vti-search-overlay .search-field{
    min-height: 72px;
    font-size: clamp(1.1rem, 2vw, 1.5rem);
    border-radius: 22px;
    padding-inline: 1.4rem;
    box-shadow: 0 18px 60px rgba(0,0,0,.18);
}
.vti-search-overlay .search-submit{
    min-height: 72px;
    padding: 0 1.6rem;
    border-radius: 22px;
    font-weight: 700;
}
.vti-search-overlay-inner p{
    letter-spacing: .08em;
    text-transform: uppercase;
}
.vti-trending-main,
.vti-trending-side-item,
.vti-cat-main-article,
.vti-premium-card,
.vti-archive-card,
.vti-related-card,
.vti-editorial-item,
.vti-hero-strip-item,
.vti-search-result,
.vti-404-cat-item{
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, background-color .28s ease;
    transform-origin: center center;
}
.vti-trending-main:hover,
.vti-trending-side-item:hover,
.vti-cat-main-article:hover,
.vti-premium-card:hover,
.vti-archive-card:hover,
.vti-related-card:hover,
.vti-editorial-item:hover,
.vti-hero-strip-item:hover,
.vti-search-result:hover,
.vti-404-cat-item:hover{
    transform: translateY(-4px);
    box-shadow: 0 18px 34px rgba(15,23,42,.08);
}
.vti-card-title,
.vti-editorial-title,
.vti-hero-strip-title,
.vti-related-card-title,
.vti-search-result-title,
.vti-sidebar-recent-title,
.vti-sidebar-pop-title,
.vti-post-nav-title{
    transition: color .22s ease, transform .22s ease, letter-spacing .22s ease;
}
a:hover .vti-card-title,
a:focus .vti-card-title,
.vti-editorial-item:hover .vti-editorial-title,
.vti-related-card:hover .vti-related-card-title,
.vti-search-result:hover .vti-search-result-title,
.vti-post-nav-item:hover .vti-post-nav-title{
    transform: translateX(2px);
}
.vti-img-wrap img,
.vti-card img,
.vti-archive-card img,
.vti-related-card img{
    transition: transform .45s ease, filter .32s ease;
}
.vti-img-wrap:hover img,
.vti-card:hover img,
.vti-archive-card:hover img,
.vti-related-card:hover img{
    transform: scale(1.035);
    filter: saturate(1.04) contrast(1.02);
}
.vti-footer-brand-meta,
.vti-footer-linkedin{
    display:none !important;
}
@media (max-width: 1024px){
    body.vti-scroll-down.vti-scrolled-deep .vti-header{ transform:none; }
    .vti-search-overlay-inner{ width:min(100vw - 1.25rem, 920px); }
    .vti-search-overlay .search-field,
    .vti-search-overlay .search-submit{ min-height:64px; }
    .vti-header-main{ padding-inline: 1rem !important; }
    .vti-nav-mobile-body{ padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 1.5rem); }
    .vti-nav-mobile-list a,
    .vti-nav-mobile .sub-menu a,
    .vti-btn-subscribe,
    .vti-search-btn-mobile,
    .vti-hamburger,
    .vti-nav-mobile-close{
        min-height: 44px;
    }
}
@media (max-width: 768px){
    .vti-header-main{
        height: 72px !important;
        gap: .5rem;
    }
    .vti-logo{ max-width: calc(100vw - 124px); }
    .vti-logo a{
        font-size: clamp(1.55rem, 7vw, 2rem);
        line-height: 1;
    }
    .vti-search-overlay-inner{
        padding: 1rem;
        width: calc(100vw - 1rem);
    }
    .vti-search-overlay .search-form{
        grid-template-columns: 1fr;
    }
    .vti-search-overlay .search-field,
    .vti-search-overlay .search-submit{
        width: 100%;
        min-height: 58px;
        border-radius: 18px;
    }
    .vti-nav-mobile{
        width: min(92vw, 420px);
        border-top-left-radius: 24px;
        border-bottom-left-radius: 24px;
        box-shadow: -24px 0 60px rgba(15,23,42,.16);
    }
    .vti-nav-mobile-list > li > a{
        padding-block: .95rem;
        font-size: 1rem;
    }
    .vti-footer-top{
        gap: 1.25rem;
    }
    .vti-footer-brand-tag{
        max-width: 30ch;
    }
}
@media (max-width: 480px){
    .vti-topbar-inner{
        font-size: .68rem;
        gap: .4rem;
        line-height: 1.4;
    }
    .vti-header-main{
        height: 66px !important;
        padding-inline: .8rem !important;
    }
    .vti-hamburger,
    .vti-search-btn-mobile{
        width: 42px;
        height: 42px;
        border-radius: 14px;
    }
    .vti-btn-subscribe{ padding-inline: .95rem; }
    .vti-footer-cols{
        gap: 1.5rem;
    }
    .vti-footer-col--image{ display:none; }
}
@media (prefers-reduced-motion: reduce){
    .vti-header,
    .vti-header-main,
    .vti-logo a,
    .vti-trending-main,
    .vti-trending-side-item,
    .vti-cat-main-article,
    .vti-premium-card,
    .vti-archive-card,
    .vti-related-card,
    .vti-editorial-item,
    .vti-hero-strip-item,
    .vti-search-result,
    .vti-404-cat-item,
    .vti-card-title,
    .vti-editorial-title,
    .vti-hero-strip-title,
    .vti-related-card-title,
    .vti-search-result-title,
    .vti-sidebar-recent-title,
    .vti-sidebar-pop-title,
    .vti-post-nav-title,
    .vti-img-wrap img,
    .vti-card img,
    .vti-archive-card img,
    .vti-related-card img{
        transition: none !important;
        animation: none !important;
        transform: none !important;
    }
}


/* =============================================================
   v2.1.6 — premium search, dark mode, sticky refinement, lazy load
   ============================================================= */
.vti-theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.2rem;width:44px;height:44px;border-radius:999px;border:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.82);color:var(--vti-dark);cursor:pointer;transition:transform .24s var(--vti-ease), background-color .24s var(--vti-ease), border-color .24s var(--vti-ease), color .24s var(--vti-ease);margin-right:.75rem;}
.vti-theme-toggle:hover{transform:translateY(-1px);} .vti-theme-toggle span:last-child{opacity:.58;}
body.vti-dark-mode .vti-theme-toggle{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#fff;} body.vti-dark-mode .vti-theme-toggle .vti-theme-toggle-sun{opacity:.5;} body.vti-dark-mode .vti-theme-toggle .vti-theme-toggle-moon{opacity:1;}
body.vti-dark-mode{--vti-bg:#0b1020;--vti-bg-alt:#121a2f;--vti-border:rgba(255,255,255,.08);--vti-black:#f8fafc;--vti-ink:#e5e7eb;--vti-body:#d1d5db;--vti-muted:#94a3b8;--vti-light:#64748b;--vti-dark:#050814;--vti-dark-surface:#060b18;--vti-dark-text:#e5eefb;--vti-dark-muted:rgba(229,238,251,.78);color-scheme:dark;}
body.vti-dark-mode .vti-header,body.vti-dark-mode .vti-page,body.vti-dark-mode .vti-footer,body.vti-dark-mode .vti-nav-mobile{background:var(--vti-bg);} body.vti-dark-mode .vti-search-overlay{background:rgba(3,7,18,.78);} body.vti-dark-mode .vti-search-overlay-inner{background:linear-gradient(180deg, rgba(9,14,29,.96), rgba(6,11,24,.98));border-color:rgba(255,255,255,.08);box-shadow:0 30px 80px rgba(0,0,0,.45);} body.vti-dark-mode .vti-search-overlay .search-field{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);color:#fff;} body.vti-dark-mode .vti-search-suggestion,body.vti-dark-mode .vti-trending-main,body.vti-dark-mode .vti-trending-side-item,body.vti-dark-mode .vti-search-result{background:rgba(255,255,255,.02);border-color:var(--vti-border);} body.vti-dark-mode .vti-search-suggestion-title,body.vti-dark-mode .vti-card-title,body.vti-dark-mode .vti-logo a,body.vti-dark-mode .vti-page-title{color:#fff !important;} body.vti-dark-mode .vti-search-suggestion-excerpt,body.vti-dark-mode .vti-meta,body.vti-dark-mode .vti-footer-col a{color:var(--vti-muted);}
.vti-search-overlay{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s var(--vti-ease), visibility .28s var(--vti-ease), backdrop-filter .28s var(--vti-ease);} .vti-search-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto;}
.vti-search-overlay-inner{width:min(1040px, calc(100vw - 2rem));border:1px solid rgba(15,23,42,.08);border-radius:28px;padding:2.25rem;background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,250,251,.98));box-shadow:0 40px 90px rgba(15,23,42,.18);transform:translateY(18px) scale(.985);transition:transform .32s var(--vti-ease), opacity .32s var(--vti-ease);position:relative;} .vti-search-overlay.is-open .vti-search-overlay-inner{transform:translateY(0) scale(1);} .vti-search-overlay-topbar{margin-bottom:1.4rem;padding-right:3rem;} .vti-search-overlay-kicker{margin:0 0 .35rem;font:800 .7rem/1 var(--vti-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--vti-secondary);} .vti-search-overlay-title{display:block;margin:0;font:700 clamp(2rem, 4vw, 3.5rem)/1.02 var(--vti-serif);color:var(--vti-dark);} .vti-search-overlay .search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:stretch;} .vti-search-overlay .search-field{min-height:78px;padding:0 1.35rem;border-radius:22px;font:600 clamp(1.05rem,2vw,1.25rem)/1.2 var(--vti-sans);} .vti-search-overlay .search-submit{min-height:78px;padding:0 1.5rem;border-radius:22px;} .vti-search-status{min-height:1.25rem;margin-top:.85rem;font:700 .8rem/1.4 var(--vti-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--vti-muted);} .vti-search-overlay-results{margin-top:1.5rem;display:grid;gap:1rem;}
.vti-search-discovery{display:grid;gap:1.25rem;} .vti-search-discovery-group{border-top:1px solid var(--vti-border);padding-top:1rem;} .vti-search-discovery-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem;} .vti-search-discovery-head h3{margin:0;font:800 .76rem/1 var(--vti-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--vti-muted);} .vti-search-discovery-list{display:grid;gap:.7rem;}
.vti-search-suggestion{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem;align-items:center;border:1px solid rgba(15,23,42,.06);border-radius:20px;padding:.7rem;background:rgba(255,255,255,.72);transition:transform .22s var(--vti-ease), box-shadow .22s var(--vti-ease), border-color .22s var(--vti-ease), background-color .22s var(--vti-ease);} .vti-search-suggestion:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(15,23,42,.08);border-color:rgba(15,23,42,.12);} .vti-search-suggestion-media{width:96px;height:72px;border-radius:16px;overflow:hidden;} .vti-search-suggestion-media img{transition:transform .45s var(--vti-ease);} .vti-search-suggestion:hover .vti-search-suggestion-media img{transform:scale(1.04);} .vti-search-suggestion-title{transition:color .2s var(--vti-ease), transform .2s var(--vti-ease);} .vti-search-suggestion:hover .vti-search-suggestion-title{color:var(--vti-accent);transform:translateX(2px);} .vti-search-suggestion-meta{font:700 .68rem/1 var(--vti-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--vti-light);margin-top:.3rem;display:block;} .vti-search-suggestion-message{min-height:96px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--vti-border);border-radius:22px;background:rgba(255,255,255,.45);} .vti-search-overlay.is-loading .vti-search-overlay-results{opacity:.65;} .vti-search-overlay.is-loading .vti-search-overlay-results::before{content:'';display:block;width:42px;height:42px;border-radius:999px;border:3px solid rgba(15,23,42,.12);border-top-color:var(--vti-accent);margin:0 auto 1rem;animation:vti-spin .7s linear infinite;} @keyframes vti-spin{to{transform:rotate(360deg);}}
body.vti-scrolled .vti-header-main{height:max(68px, calc(var(--vti-header-height, 88px) - 14px)) !important;} body.vti-scrolled .vti-nav-desktop{box-shadow:0 10px 30px rgba(15,23,42,.08);} .vti-header:not(.elementskit){isolation:isolate;}
.vti-img-wrap img,.vti-search-suggestion-media img{opacity:.01;transform:scale(1.02);transition:opacity .45s var(--vti-ease), transform .45s var(--vti-ease);} .vti-img-wrap img.is-inview,.vti-search-suggestion-media img.is-inview,img[loading="eager"]{opacity:1;transform:none;}
@media (max-width:980px){.vti-theme-toggle{margin-right:.5rem;}.vti-search-overlay-inner{width:min(100vw - 1rem, 980px);padding:1.25rem;border-radius:22px;}.vti-search-overlay .search-form{grid-template-columns:1fr;}.vti-search-overlay .search-field,.vti-search-overlay .search-submit{min-height:64px;}}
@media (max-width:640px){.vti-header-right .vti-btn-subscribe{display:none;}.vti-theme-toggle{width:40px;height:40px;}.vti-search-overlay-title{font-size:1.9rem;}.vti-search-suggestion{grid-template-columns:78px minmax(0,1fr);gap:.8rem;border-radius:18px;}.vti-search-suggestion-media{width:78px;height:64px;border-radius:14px;}}


/* v2.1.6-r2 — réglages dark mode / recherche fullscreen / compteur vues */
.vti-header-search-form--inline{display:flex;align-items:center;gap:.6rem;max-width:34rem;width:100%;}
.vti-header-search-form--inline .vti-header-search-input{min-width:0;width:min(24rem, 100%);}
@media (max-width:980px){.vti-header-search-form--inline{display:none;}}


/* =============================================================
   v2.1.6-r3 — footer resserré
   ============================================================= */
.vti-footer {
    padding: 3rem 0 1.75rem;
    padding-bottom: calc(1.75rem + var(--vti-safe-bottom));
}
.vti-footer-top {
    padding-bottom: 1.4rem;
    margin-bottom: 1.8rem;
    gap: 1.25rem;
}
.vti-footer-brand a {
    font-size: clamp(2rem, 4vw, 2.8rem);
    margin-bottom: 0.3rem;
}
.vti-footer-brand-tag {
    margin: 0;
}
.vti-footer-next-label {
    margin: 0 0 0.2rem;
}
.vti-footer-next-date {
    margin: 0;
    font-size: clamp(1.05rem, 2vw, 1.45rem);
}
.vti-footer-cols {
    gap: 2rem;
    margin-bottom: 2rem;
}
.vti-footer-col-title {
    margin-bottom: 1rem;
}
.vti-footer-col ul {
    gap: 0.55rem;
}
.vti-footer-col a {
    min-height: 0;
    line-height: 1.45;
}
.vti-footer-bottom {
    padding-top: 1.15rem;
}
@media (max-width: 768px) {
    .vti-footer {
        padding: 2.25rem 0 1.35rem;
        padding-bottom: calc(1.35rem + var(--vti-safe-bottom));
    }
    .vti-footer-top {
        padding-bottom: 1rem;
        margin-bottom: 1.25rem;
    }
    .vti-footer-cols {
        gap: 1.35rem;
        margin-bottom: 1.35rem;
    }
}

/* =============================================================
   v2.1.6-r6 — template Nos bons plans
   ============================================================= */
.vti-bons-plans-page {
    background:
        radial-gradient(circle at top right, rgba(0,155,170,0.08), transparent 28%),
        linear-gradient(180deg, #fbfcfe 0%, #ffffff 30%, #f7f9fc 100%);
}
.vti-bons-hero {
    padding: clamp(3.5rem, 8vw, 6rem) 0 2rem;
}
.vti-bons-hero-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .85fr);
    gap: 1.5rem;
    align-items: stretch;
}
.vti-bons-hero-copy,
.vti-bons-hero-panel,
.vti-bons-editorial-inner,
.vti-bons-card,
.vti-bons-empty {
    border: 1px solid rgba(15,23,42,.07);
    background: rgba(255,255,255,.86);
    box-shadow: 0 24px 64px rgba(15,23,42,.08);
    backdrop-filter: blur(14px);
}
.vti-bons-hero-copy {
    position: relative;
    overflow: hidden;
    border-radius: 32px;
    padding: clamp(2rem, 5vw, 3.5rem);
}
.vti-bons-hero-copy::after {
    content: '';
    position: absolute;
    inset: auto -8% -12% auto;
    width: 240px;
    height: 240px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(255,102,0,.18), rgba(255,102,0,0));
    pointer-events: none;
}
.vti-bons-kicker,
.vti-bons-section-kicker,
.vti-bons-panel-label,
.vti-bons-price-label,
.vti-bons-card-label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font: 800 .76rem/1 var(--vti-sans);
    letter-spacing: .18em;
    text-transform: uppercase;
}
.vti-bons-kicker,
.vti-bons-section-kicker,
.vti-bons-panel-label {
    color: var(--vti-secondary);
}
.vti-bons-title {
    margin: .85rem 0 1rem;
    font: 800 clamp(2.8rem, 6vw, 5.2rem)/.96 var(--vti-serif);
    color: var(--vti-black);
    letter-spacing: -.03em;
}
.vti-bons-intro {
    margin: 0;
    max-width: 48rem;
    font-size: clamp(1.05rem, 1.6vw, 1.24rem);
    line-height: 1.75;
    color: var(--vti-body);
}
.vti-bons-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
    align-items: center;
    margin-top: 1.6rem;
}
.vti-bons-hero-btn,
.vti-bons-card-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 52px;
    border-radius: 999px;
    padding: 0 1.35rem;
    text-decoration: none;
    font: 700 .92rem/1 var(--vti-sans);
    transition: transform .24s var(--vti-ease), box-shadow .24s var(--vti-ease), background-color .24s var(--vti-ease), color .24s var(--vti-ease);
}
.vti-bons-hero-btn {
    background: var(--vti-accent);
    color: #fff;
    box-shadow: 0 18px 36px rgba(255,102,0,.24);
}
.vti-bons-hero-btn:hover,
.vti-bons-card-cta:hover {
    transform: translateY(-2px);
}
.vti-bons-hero-meta {
    color: var(--vti-muted);
    font: 700 .82rem/1.2 var(--vti-sans);
    letter-spacing: .08em;
    text-transform: uppercase;
}
.vti-bons-hero-panel {
    border-radius: 28px;
    padding: 1.75rem;
    align-self: center;
}
.vti-bons-hero-panel p {
    margin: .9rem 0 1rem;
    line-height: 1.75;
}
.vti-bons-hero-panel ul {
    margin: 0;
    padding-left: 1.1rem;
    color: var(--vti-body);
}
.vti-bons-hero-panel li + li {
    margin-top: .65rem;
}
.vti-bons-editorial {
    padding: 0 0 1.25rem;
}
.vti-bons-editorial-inner {
    border-radius: 28px;
    padding: clamp(1.5rem, 4vw, 2.4rem);
}
.vti-bons-editorial-inner > *:first-child {
    margin-top: 0;
}
.vti-bons-grid-section {
    padding: 1rem 0 clamp(3rem, 7vw, 5rem);
}
.vti-bons-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem 2rem;
    margin-bottom: 1.5rem;
}
.vti-bons-section-head h2 {
    margin: .5rem 0 0;
    font: 800 clamp(2rem, 4vw, 3.2rem)/1.02 var(--vti-serif);
    color: var(--vti-black);
}
.vti-bons-section-head p {
    margin: 0;
    max-width: 34rem;
    color: var(--vti-muted);
    line-height: 1.7;
}
.vti-bons-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem;
}
.vti-bons-card {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    transition: transform .3s var(--vti-ease), box-shadow .3s var(--vti-ease), border-color .3s var(--vti-ease);
}
.vti-bons-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 28px 54px rgba(15,23,42,.14);
    border-color: rgba(255,102,0,.18);
}
.vti-bons-card.is-featured {
    grid-column: span 2;
}
.vti-bons-card-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(255,102,0,.08), rgba(0,155,170,.08));
}
.vti-bons-card-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s var(--vti-ease);
}
.vti-bons-card:hover .vti-bons-card-image {
    transform: scale(1.05);
}
.vti-bons-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 .8rem;
    border-radius: 999px;
    background: rgba(255,102,0,.96);
    color: #fff;
    font: 800 .78rem/1 var(--vti-sans);
    letter-spacing: .08em;
    text-transform: uppercase;
    box-shadow: 0 14px 24px rgba(255,102,0,.28);
}
.vti-bons-card-body {
    display: grid;
    gap: 1rem;
    padding: 1.3rem 1.3rem 1.4rem;
}
.vti-bons-card-topline {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .6rem;
    color: var(--vti-light);
    font: 700 .76rem/1.4 var(--vti-sans);
    letter-spacing: .08em;
    text-transform: uppercase;
}
.vti-bons-card-label {
    color: var(--vti-secondary);
    letter-spacing: .14em;
}
.vti-bons-card-title {
    margin: 0;
    font: 800 clamp(1.35rem, 2vw, 2rem)/1.08 var(--vti-serif);
}
.vti-bons-card-title a {
    color: var(--vti-black);
    text-decoration: none;
}
.vti-bons-card-excerpt {
    margin: 0;
    color: var(--vti-body);
    line-height: 1.7;
}
.vti-bons-card-footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    padding-top: .15rem;
}
.vti-bons-price-wrap {
    display: grid;
    gap: .25rem;
}
.vti-bons-price-label {
    color: var(--vti-light);
}
.vti-bons-price {
    font: 800 clamp(1.1rem, 2vw, 1.5rem)/1 var(--vti-sans);
    color: var(--vti-black);
}
.vti-bons-card-cta {
    background: var(--vti-black);
    color: #fff;
    flex-shrink: 0;
}
.vti-bons-card-cta:hover {
    background: var(--vti-accent);
    color: #fff;
    box-shadow: 0 18px 36px rgba(255,102,0,.22);
}
.vti-bons-empty {
    border-radius: 28px;
    padding: clamp(1.75rem, 5vw, 2.5rem);
}
.vti-bons-empty h2 {
    margin: 0 0 .8rem;
    font: 800 clamp(1.8rem, 3.4vw, 2.6rem)/1.04 var(--vti-serif);
    color: var(--vti-black);
}
.vti-bons-empty p,
.vti-bons-empty ol {
    margin: 0;
    color: var(--vti-body);
    line-height: 1.75;
}
.vti-bons-empty ol {
    margin-top: 1rem;
    padding-left: 1.1rem;
}
.vti-bons-empty code {
    background: rgba(15,23,42,.06);
    border-radius: 8px;
    padding: .15rem .4rem;
    font-size: .92em;
}
body.vti-dark-mode .vti-bons-plans-page {
    background:
        radial-gradient(circle at top right, rgba(0,155,170,.14), transparent 24%),
        linear-gradient(180deg, rgba(6,11,24,1) 0%, rgba(9,14,29,1) 100%);
}
body.vti-dark-mode .vti-bons-hero-copy,
body.vti-dark-mode .vti-bons-hero-panel,
body.vti-dark-mode .vti-bons-editorial-inner,
body.vti-dark-mode .vti-bons-card,
body.vti-dark-mode .vti-bons-empty {
    background: rgba(255,255,255,.03);
    border-color: rgba(255,255,255,.08);
    box-shadow: 0 24px 64px rgba(0,0,0,.26);
}
body.vti-dark-mode .vti-bons-hero-btn {
    color: #fff;
}
body.vti-dark-mode .vti-bons-card-cta {
    background: rgba(255,255,255,.08);
    color: #fff;
}
body.vti-dark-mode .vti-bons-empty code {
    background: rgba(255,255,255,.08);
}
@media (max-width: 1100px) {
    .vti-bons-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 980px) {
    .vti-bons-hero-shell,
    .vti-bons-section-head,
    .vti-bons-card-footer {
        grid-template-columns: 1fr;
        display: grid;
        align-items: start;
    }
    .vti-bons-section-head {
        gap: .85rem;
    }
    .vti-bons-card.is-featured {
        grid-column: span 1;
    }
}
@media (max-width: 720px) {
    .vti-bons-grid {
        grid-template-columns: 1fr;
    }
    .vti-bons-hero {
        padding-top: 2.5rem;
    }
    .vti-bons-hero-copy,
    .vti-bons-hero-panel,
    .vti-bons-editorial-inner,
    .vti-bons-empty {
        border-radius: 22px;
    }
    .vti-bons-card {
        border-radius: 24px;
    }
    .vti-bons-card-body {
        padding: 1.1rem 1.05rem 1.2rem;
    }
    .vti-bons-card-footer {
        display: grid;
        justify-content: stretch;
    }
    .vti-bons-card-cta,
    .vti-bons-hero-btn {
        width: 100%;
    }
}


/* v2.1.7-r1 — bons plans premium */
.vti-bons-section-head.is-compact {
    margin-top: 2.5rem;
}
.vti-bons-ribbon {
    position: absolute;
    right: -3.25rem;
    top: 1.1rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 12rem;
    padding: .55rem 1rem;
    transform: rotate(34deg);
    background: linear-gradient(135deg, rgba(15,23,42,.98), rgba(255,102,0,.98));
    color: #fff;
    font: 800 .68rem/1 var(--vti-sans);
    letter-spacing: .16em;
    text-transform: uppercase;
    box-shadow: 0 16px 34px rgba(15,23,42,.24);
}
.vti-bons-compare,
.vti-bons-disclaimer {
    margin-top: 2rem;
    padding: clamp(1.2rem, 3vw, 1.8rem);
    border-radius: 28px;
    background: rgba(255,255,255,.9);
    border: 1px solid rgba(15,23,42,.08);
    box-shadow: 0 22px 50px rgba(15,23,42,.08);
}
.vti-bons-compare-table-wrap {
    overflow-x: auto;
}
.vti-bons-compare-table {
    width: 100%;
    border-collapse: collapse;
}
.vti-bons-compare-table th,
.vti-bons-compare-table td {
    padding: 1rem .95rem;
    border-bottom: 1px solid rgba(15,23,42,.08);
    text-align: left;
    vertical-align: top;
}
.vti-bons-compare-table th {
    font: 800 .82rem/1.4 var(--vti-sans);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--vti-light);
}
.vti-bons-compare-table td strong {
    display: block;
    margin-bottom: .25rem;
    color: var(--vti-black);
}
.vti-bons-compare-table td span {
    display: block;
    color: var(--vti-body);
    line-height: 1.6;
}
.vti-bons-compare-table a {
    font-weight: 800;
}
.vti-bons-disclaimer p {
    margin: 0;
    color: var(--vti-body);
    line-height: 1.75;
}
body.vti-dark-mode .vti-bons-compare,
body.vti-dark-mode .vti-bons-disclaimer {
    background: rgba(255,255,255,.03);
    border-color: rgba(255,255,255,.08);
    box-shadow: 0 24px 64px rgba(0,0,0,.26);
}
body.vti-dark-mode .vti-bons-compare-table th,
body.vti-dark-mode .vti-bons-compare-table td {
    border-bottom-color: rgba(255,255,255,.08);
}
@media (max-width: 720px) {
    .vti-bons-ribbon {
        right: -4rem;
        top: 1rem;
        min-width: 13rem;
        font-size: .62rem;
    }
    .vti-bons-compare,
    .vti-bons-disclaimer {
        border-radius: 22px;
    }
}


/* v2.1.7-r3 — ajustements page Nos bons plans */
.vti-bons-archive-hero {
    margin-bottom: 0;
}
.vti-bons-archive-hero + .vti-bons-editorial {
    padding-top: 1.5rem;
}
.vti-bons-compare-table th:nth-child(2),
.vti-bons-compare-table th:nth-child(3),
.vti-bons-compare-table th:nth-child(4),
.vti-bons-compare-table td:nth-child(2),
.vti-bons-compare-table td:nth-child(3),
.vti-bons-compare-table td:nth-child(4) {
    text-align: center;
    vertical-align: middle;
}


/* SEO / GEO v2.2.4 */
.vti-homepage-heading {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.vti-home-lead,
.vti-page-lead {
    max-width: 760px;
    margin: .9rem 0 0;
    font-size: 1.05rem;
    line-height: 1.7;
    color: rgba(0,0,0,.76);
}
.vti-section-title,
.vti-premium-title,
.vti-cat-block-title {
    margin: 0;
    font-weight: 800;
    line-height: 1.2;
}
.vti-cat-sub-title {
    margin: 0 0 .35rem;
    font-size: 1rem;
    line-height: 1.45;
}


/* v2.2.5 — SEO/GEO Nos bons plans */
.vti-bons-section-intro {
    max-width: 70ch;
    margin: .75rem 0 0;
    color: var(--vti-body);
    line-height: 1.7;
}
.vti-bons-faq {
    margin-top: 2rem;
    padding: clamp(1.2rem, 3vw, 1.8rem);
    border-radius: 28px;
    background: rgba(255,255,255,.9);
    border: 1px solid rgba(15,23,42,.08);
    box-shadow: 0 22px 50px rgba(15,23,42,.08);
}
.vti-bons-faq-list {
    display: grid;
    gap: .9rem;
}
.vti-bons-faq-item {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 20px;
    background: #fff;
    overflow: hidden;
}
.vti-bons-faq-question {
    cursor: pointer;
    list-style: none;
    padding: 1rem 1.15rem;
    font-weight: 800;
    line-height: 1.5;
}
.vti-bons-faq-question::-webkit-details-marker {
    display: none;
}
.vti-bons-faq-answer {
    padding: 0 1.15rem 1.1rem;
    color: var(--vti-body);
    line-height: 1.75;
}
.vti-bons-faq-answer p {
    margin: 0;
}
body.vti-dark-mode .vti-bons-faq {
    background: rgba(255,255,255,.03);
    border-color: rgba(255,255,255,.08);
    box-shadow: 0 24px 64px rgba(0,0,0,.26);
}
body.vti-dark-mode .vti-bons-faq-item {
    background: rgba(255,255,255,.02);
    border-color: rgba(255,255,255,.08);
}


.vti-article-faq {
    margin: 2.5rem 0 0;
    padding: 1.4rem;
    border: 1px solid var(--vti-border);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,248,250,.98) 100%);
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.05);
}
.vti-article-faq-head {
    margin-bottom: 1rem;
}
.vti-article-faq-kicker {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .38rem .75rem;
    border-radius: 999px;
    background: rgba(0,155,170,.10);
    color: var(--vti-secondary);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.vti-article-faq h2 {
    margin: .85rem 0 0 !important;
    padding-top: 0 !important;
    border-top: 0 !important;
    font-size: clamp(1.3rem, 2.4vw, 1.7rem);
}
.vti-article-faq-list {
    display: grid;
    gap: .75rem;
}
.vti-article-faq-item {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
.vti-article-faq-question {
    list-style: none;
    cursor: pointer;
    padding: 1rem 1.1rem;
    font-weight: 700;
    color: var(--vti-black);
}
.vti-article-faq-question::-webkit-details-marker {
    display: none;
}
.vti-article-faq-answer {
    padding: 0 1.1rem 1rem;
    color: var(--vti-body);
}
.vti-article-faq-answer p {
    margin: 0;
    line-height: 1.7;
}
body.vti-dark-mode .vti-article-faq {
    background: rgba(255,255,255,.03);
    border-color: rgba(255,255,255,.08);
    box-shadow: 0 24px 64px rgba(0,0,0,.26);
}
body.vti-dark-mode .vti-article-faq-item {
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.08);
}


/* Homepage H1 helpers */
.vti-homepage-heading .vti-homepage-heading-mobile {
  display: none;
}

@media (max-width: 767px) {
  .vti-homepage-heading .vti-homepage-heading-desktop.vti-homepage-heading-has-mobile {
    display: none;
  }

  .vti-homepage-heading .vti-homepage-heading-mobile {
    display: inline;
  }
}

/* v2.5.4 — force IA category title on one line on desktop */
.vti-archive--term-ia .vti-archive-header-copy {
    max-width: none;
    width: 100%;
}
.vti-archive--term-ia .vti-archive-title--category {
    max-width: none;
    display: inline-block;
    white-space: nowrap;
    font-size: clamp(2.9rem, 4.6vw, 5.2rem);
    line-height: 0.92;
    letter-spacing: -0.055em;
}
@media (max-width: 900px) {
    .vti-archive--term-ia .vti-archive-title--category {
        display: block;
        white-space: normal;
        font-size: clamp(2.7rem, 10vw, 4.4rem);
        line-height: 0.95;
    }
}


/* v2.5.5 — article TOC sidebar without scrollbars */
.vti-single-layout {
    align-items: flex-start;
}
.vti-article-sidebar {
    width: 320px;
    max-height: none;
    overflow: visible;
    scrollbar-width: auto;
}
.vti-toc-premium {
    overflow: visible;
}
#vti-toc-list {
    overflow: visible;
}
#vti-toc-list li {
    align-items: flex-start;
}
#vti-toc-list li::before {
    flex: 0 0 1.7rem;
}
#vti-toc-list a {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
}
@media (max-width: 1120px) {
    .vti-single-layout {
        gap: 2.5rem;
    }
    .vti-article-sidebar {
        width: 300px;
    }
}
@media (max-width: 980px) {
    .vti-article-sidebar {
        width: 100%;
        max-height: none;
        overflow: visible;
    }
}


/* v2.5.7 — TOC cleanup + mobile collapsible */
.vti-toc-head {
    margin-bottom: .4rem;
}
.vti-toc-current-label {
    font-family: var(--vti-sans);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--vti-dark);
}
.vti-toc-mobile-top {
    display: flex;
    align-items: center;
    min-width: 0;
}
.vti-toc-mobile-toggle {
    display: none;
}
@media (max-width: 980px) {
    .vti-toc-current-label {
        display: inline-block;
        max-width: calc(100% - 1.5rem);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}


/* v2.5.8 — remove persistent mobile TOC header */
@media (max-width: 980px) {
    .vti-toc-mobile-toggle {
        display: none !important;
    }
    .vti-toc-head {
        display: block;
        margin-bottom: .75rem;
    }
    #vti-toc-list {
        display: block !important;
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
        max-height: none;
        overflow: visible;
    }
}


/* v2.5.9 — remove duplicate TOC sticky header/button everywhere */
.vti-toc-mobile-toggle,
.vti-toc-mobile-top,
.vti-toc-mobile-icon,
.vti-toc-current-label {
    display: none !important;
}
.vti-toc-head {
    display: block !important;
}
#vti-toc-list {
    display: block !important;
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    max-height: none;
}


/* v2.5.13 — media guidance handled in admin; no front CSS needed */


/* === v2.5.14 — Homepage image rhythm + premium cards ====================== */
.vti-hero {
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: 16 / 9;
}
.vti-hero-bg img {
    object-position: center center;
}
.vti-trending-main .vti-img-wrap,
.vti-trending-side-item .vti-img-wrap,
.vti-cat-main-article .vti-img-wrap {
    aspect-ratio: 16 / 9;
    border-radius: 18px;
}
.vti-trending-main a,
.vti-trending-side-item a,
.vti-cat-main-article a {
    display: block;
}
.vti-trending-main,
.vti-trending-side-item,
.vti-cat-main-article a,
.vti-premium-card {
    border-radius: 24px;
}
.vti-trending-main a,
.vti-trending-side-item a,
.vti-cat-main-article a {
    padding: 0 0 .25rem;
    transition: transform .32s var(--vti-ease-back), box-shadow .32s var(--vti-ease), background-color .25s ease;
}
.vti-trending-main a:hover,
.vti-trending-main a:focus-visible,
.vti-trending-side-item a:hover,
.vti-trending-side-item a:focus-visible,
.vti-cat-main-article a:hover,
.vti-cat-main-article a:focus-visible {
    transform: translateY(-4px);
}
.vti-trending-main .vti-img-wrap,
.vti-trending-side-item .vti-img-wrap,
.vti-cat-main-article .vti-img-wrap,
.vti-premium-card {
    box-shadow: 0 18px 38px rgba(15, 23, 42, .08);
}
.vti-trending-main .vti-img-wrap img,
.vti-trending-side-item .vti-img-wrap img,
.vti-cat-main-article .vti-img-wrap img {
    aspect-ratio: 16 / 9;
}
.vti-trending-main .vti-card-title {
    font-size: clamp(1.65rem, 2.75vw, 2.55rem);
    margin-bottom: 1rem;
}
.vti-trending-side-item .vti-card-title,
.vti-cat-main-article .vti-card-title {
    line-height: 1.28;
}
.vti-trending-side-item {
    padding: 1.1rem 1.1rem 1.25rem;
    border: 1px solid var(--vti-border);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(248,250,252,1) 100%);
    transition: transform .3s var(--vti-ease-back), box-shadow .3s var(--vti-ease), border-color .2s ease;
}
.vti-trending-side-item + .vti-trending-side-item {
    margin-top: 1.25rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--vti-border);
}
.vti-trending-side-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .08);
    border-color: rgba(255,107,27,.28);
}
.vti-categories-grid {
    gap: 3rem;
}
.vti-cat-main-article a {
    padding: 0 0 .5rem;
}
.vti-cat-sub-list {
    padding-top: 1.75rem;
    gap: 1.15rem;
}
.vti-cat-sub-item {
    padding: .35rem 0;
}
.vti-card-title,
.vti-cat-sub-title,
.vti-premium-card-title {
    text-wrap: pretty;
}
.vti-premium-grid {
    gap: 1.5rem;
}
.vti-premium-card {
    padding: 2rem 1.75rem 1.85rem;
    border-radius: 22px;
}
.vti-premium-card-title {
    margin-bottom: 1rem;
    line-height: 1.24;
}
.vti-premium-card-desc {
    margin-bottom: 1.35rem;
}
.vti-premium-card:hover {
    box-shadow: 0 24px 48px rgba(15, 23, 42, .11);
}
@media (max-width: 1024px) {
    .vti-hero {
        aspect-ratio: 16 / 10;
    }
    .vti-categories-grid {
        gap: 2rem;
    }
}
@media (max-width: 767px) {
    .vti-hero {
        aspect-ratio: 16 / 11;
    }
    .vti-trending-side-item {
        padding: .95rem .95rem 1.05rem;
    }
    .vti-premium-card {
        padding: 1.5rem 1.25rem 1.4rem;
    }
    .vti-trending-main .vti-img-wrap,
    .vti-trending-side-item .vti-img-wrap,
    .vti-cat-main-article .vti-img-wrap {
        border-radius: 16px;
    }
}


/* v2.5.16 — smartphone article readability improvements */
@media (max-width: 767px) {
  .vti-single-header-inner,
  .vti-single-layout,
  .vti-author-card,
  .vti-related-inner,
  .vti-comments-wrap {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .vti-single-header {
    padding-top: 1.1rem;
  }

  .vti-breadcrumb {
    font-size: .72rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }

  .vti-single-title {
    font-size: clamp(2rem, 8vw, 2.7rem);
    line-height: 1.08;
    letter-spacing: -.03em;
    margin-bottom: .85rem;
  }

  .vti-single-lead {
    font-size: 1rem;
    line-height: 1.75;
    margin-bottom: 1.15rem;
  }

  .vti-single-meta {
    display: grid;
    grid-template-columns: 1fr;
    gap: .8rem;
    align-items: start;
    padding: 1rem 0;
  }

  .vti-single-author {
    align-items: center;
  }

  .vti-single-meta-sep {
    display: none;
  }

  .vti-share-inline {
    margin-left: 0;
    flex-wrap: wrap;
    gap: .55rem;
  }

  .vti-share-btn {
    width: 2.5rem;
    height: 2.5rem;
    min-width: 44px;
    min-height: 44px;
  }

  .vti-single-hero-img {
    padding: 1rem 1rem 0;
  }

  .vti-single-hero-img img {
    border-radius: 16px;
  }

  .vti-single-body {
    padding: 1.6rem 0 3rem;
  }

  .vti-single-layout {
    gap: 1.35rem;
  }

  .vti-prose,
  .vti-article-content .elementor-widget-text-editor,
  .vti-article-content .elementor-widget-theme-post-content {
    font-size: 1rem;
    line-height: 1.82;
  }

  .vti-prose p,
  .vti-article-content p {
    margin-bottom: 1.1rem;
  }

  .vti-prose h2,
  .vti-article-content h2 {
    font-size: clamp(1.45rem, 6.2vw, 1.9rem);
    line-height: 1.18;
    margin: 2.2rem 0 .9rem;
    padding-top: 1.1rem;
    scroll-margin-top: 88px;
  }

  .vti-prose h3,
  .vti-article-content h3 {
    font-size: clamp(1.16rem, 5vw, 1.45rem);
    line-height: 1.25;
    margin: 1.5rem 0 .7rem;
    scroll-margin-top: 88px;
  }

  .vti-prose blockquote,
  .vti-article-content blockquote {
    margin: 1.6rem 0;
    padding-left: 1rem;
    font-size: 1.1rem;
    line-height: 1.55;
  }

  .vti-prose ul,
  .vti-prose ol,
  .vti-article-content ul,
  .vti-article-content ol {
    padding-left: 1.2rem;
    margin-bottom: 1.35rem;
  }

  .vti-prose li,
  .vti-article-content li {
    margin-bottom: .55rem;
  }

  .vti-article-content img,
  .vti-prose img,
  .vti-article-content iframe,
  .vti-prose iframe,
  .vti-article-content table,
  .vti-prose table {
    max-width: 100%;
    height: auto;
  }

  .vti-article-content iframe,
  .vti-prose iframe {
    width: 100%;
    min-height: 220px;
  }

  .vti-article-content table,
  .vti-prose table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .vti-key-points {
    padding: 1rem;
    border-radius: 16px;
    margin-bottom: 1.2rem;
  }

  .vti-key-points h2,
  .vti-article-faq h2 {
    font-size: 1.35rem;
    line-height: 1.2;
  }

  .vti-article-faq {
    padding: 1.15rem;
    border-radius: 16px;
  }

  .vti-share-bottom {
    padding: 1.1rem;
    border-radius: 16px;
  }

  .vti-share-bottom-btns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .65rem;
  }

  .vti-share-bottom-btn {
    width: 100%;
    justify-content: center;
    padding: .85rem 1rem;
  }

  .vti-single-tags {
    gap: .45rem;
    margin-top: 2rem;
    padding-top: 1.2rem;
  }

  .vti-tag {
    font-size: .66rem;
    letter-spacing: .08em;
    padding: .3rem .7rem;
    line-height: 1.15;
    min-height: 0;
  }

  .vti-author-card-wrap,
  .vti-comments-section {
    padding-top: 2.2rem;
  }

  .vti-related-grid {
    gap: 1.15rem;
  }
}

@media (max-width: 480px) {
  .vti-single-title {
    font-size: clamp(1.8rem, 8.8vw, 2.35rem);
  }

  .vti-single-author {
    align-items: flex-start;
  }

  .vti-single-author-info span {
    display: block;
    line-height: 1.5;
  }

  .vti-share-bottom-btns {
    grid-template-columns: 1fr;
  }

  .vti-prose pre,
  .vti-article-content pre {
    padding: 1rem;
    font-size: .82rem;
  }
}


/* =============================================================
   v2.5.17 — homepage mobile hero readability / clickability
   ============================================================= */
@media (max-width: 768px) {
    .vti-hero {
        min-height: auto;
    }
    .vti-hero-bg img {
        min-height: 440px;
        object-fit: cover;
        object-position: center center;
    }
    .vti-hero-content {
        position: relative;
        z-index: 3;
        padding: 0 1rem 1.35rem;
    }
    .vti-hero-kicker {
        margin-bottom: .75rem;
    }
    .vti-label--hero {
        padding: .45rem .65rem;
        font-size: .64rem;
        letter-spacing: .12em;
    }
    .vti-hero-title {
        max-width: 100%;
        font-size: clamp(1.7rem, 7.8vw, 2.35rem);
        line-height: 1.08;
        letter-spacing: -.03em;
        margin: 0 0 .95rem;
        text-wrap: pretty;
    }
    .vti-hero-title a {
        display: inline;
        position: relative;
        z-index: 2;
    }
    .vti-hero-excerpt {
        max-width: 100%;
        font-size: .96rem;
        line-height: 1.55;
        margin: 0 0 1rem;
        text-shadow: 0 1px 2px rgba(0,0,0,.18);
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        overflow: hidden;
    }
    .vti-hero-author img {
        width: 32px;
        height: 32px;
    }
    .vti-hero-meta {
        gap: .45rem .8rem;
    }
    .vti-hero-date,
    .vti-hero-time,
    .vti-hero-author span {
        font-size: .72rem;
        line-height: 1.35;
    }
    .vti-hero-strip-inner {
        padding: 0 1rem;
    }
    .vti-hero-strip-item {
        padding: 1rem 0;
    }
    .vti-hero-strip-title {
        font-size: 1rem;
        line-height: 1.28;
        margin: .45rem 0 .75rem;
    }
}

@media (max-width: 480px) {
    .vti-hero-bg img {
        min-height: 400px;
    }
    .vti-hero-content {
        padding: 0 .9rem 1.1rem;
    }
    .vti-hero-title {
        font-size: clamp(1.5rem, 7.2vw, 1.95rem);
        line-height: 1.1;
        margin-bottom: .85rem;
    }
    .vti-hero-excerpt {
        font-size: .92rem;
        -webkit-line-clamp: 2;
    }
}


/* =============================================================
   v2.5.19 — smartphone portrait fix for Elementor article content
   ============================================================= */
@media (max-width: 767px) {
    .vti-single--elementor .vti-article-content,
    .vti-single--elementor .vti-prose--elementor,
    .vti-single--elementor .elementor,
    .vti-single--elementor .elementor-section,
    .vti-single--elementor .elementor-container,
    .vti-single--elementor .elementor-column,
    .vti-single--elementor .elementor-widget,
    .vti-single--elementor .elementor-widget-wrap,
    .vti-single--elementor .elementor-element,
    .vti-single--elementor .e-con,
    .vti-single--elementor .e-child {
        max-width: 100%;
        min-width: 0;
        width: 100%;
        box-sizing: border-box;
    }

    .vti-single--elementor .elementor-section .elementor-container,
    .vti-single--elementor .elementor-widget-wrap,
    .vti-single--elementor .e-con {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .vti-single--elementor .elementor-column {
        flex: 0 0 100% !important;
    }

    .vti-single--elementor .elementor-section,
    .vti-single--elementor .e-con {
        overflow: visible;
    }

    .vti-single--elementor .elementor-widget-text-editor,
    .vti-single--elementor .elementor-heading-title,
    .vti-single--elementor .elementor-text-editor,
    .vti-single--elementor .elementor-widget-theme-post-content {
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .vti-single--elementor .elementor img,
    .vti-single--elementor .elementor video,
    .vti-single--elementor .elementor iframe {
        max-width: 100%;
        height: auto;
    }

    .vti-single--elementor .elementor-widget-container {
        max-width: 100%;
        overflow: visible;
    }
}


/* v2.5.19 — desktop single hero image more measured */
@media (min-width: 1024px) {
  .vti-single-hero-img {
    max-width: 920px;
    padding-top: 1.5rem;
  }

  .vti-single-hero-img img {
    aspect-ratio: 16 / 8.8;
    max-height: 520px;
    border-radius: 18px;
  }
}

/* =============================================================
   v2.6.0 — homepage + category redesign from 2.5.19 base
   Header / footer untouched. Articles untouched.
   ============================================================= */

.vti-homepage {
    background: #f4f4f2;
}
.vti-homepage-builder-content:empty {
    display: none;
}
.vti-home-lead {
    padding: 1.9rem 0 0.75rem;
}
.vti-home-lead-container,
.vti-home-spotlight .vti-container,
.vti-trending--refined .vti-container,
.vti-categories--refined .vti-container,
.vti-editorial .vti-container,
.vti-premium .vti-container {
    max-width: 1180px;
}
.vti-home-lead-card {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
    gap: 1.75rem;
    align-items: stretch;
    background: #fff;
    border: 1px solid rgba(15,23,42,0.08);
    border-radius: 22px;
    padding: 0.9rem;
    box-shadow: 0 18px 40px rgba(15,23,42,0.05);
}
.vti-home-lead-media {
    display: block;
    overflow: hidden;
    border-radius: 16px;
    min-height: 100%;
    text-decoration: none;
}
.vti-home-lead-media img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
    transition: transform .45s var(--vti-ease);
}
.vti-home-lead-card:hover .vti-home-lead-media img {
    transform: scale(1.025);
}
.vti-home-lead-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.75rem 0.4rem 0.75rem 0;
}
.vti-label--solid {
    background: #0f172a;
    color: #fff;
    border-color: #0f172a;
}
.vti-home-lead-title {
    margin: 1rem 0 1rem;
    font-family: var(--vti-sans);
    font-size: clamp(2rem, 3.2vw, 3.3rem);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.04em;
    color: #1592e6;
}
.vti-home-lead-title a {
    color: inherit;
    text-decoration: none;
}
.vti-home-lead-title a:hover {
    color: #0d7cc6;
}
.vti-home-lead-excerpt {
    margin: 0 0 1.4rem;
    color: #475569;
    font-size: 1.03rem;
    line-height: 1.75;
    max-width: 58ch;
}
.vti-home-lead-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1.25rem;
    color: #64748b;
    font-size: 0.92rem;
}
.vti-home-lead-meta strong { color: #0f172a; }

.vti-home-section-heading {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1.25rem;
}
.vti-home-section-heading h2 {
    margin: 0;
    font-family: var(--vti-sans);
    font-size: clamp(1.7rem, 2.2vw, 2.4rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.04em;
    color: #0f172a;
}
.vti-home-section-heading::before {
    content: '';
    width: 6px;
    height: 1.6rem;
    border-radius: 999px;
    background: #1592e6;
}
.vti-home-spotlight {
    padding: 1.2rem 0 3.5rem;
}
.vti-home-spotlight-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.35rem;
}
.vti-home-spotlight-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.vti-home-spotlight-card,
.vti-trending-main--refined,
.vti-trending-side-item--refined,
.vti-home-category-block,
.vti-premium-card,
.vti-category-post-card,
.vti-category-sidebar-card,
.vti-category-featured-card {
    background: #fff;
    border: 1px solid rgba(15,23,42,0.08);
    border-radius: 20px;
    box-shadow: 0 12px 30px rgba(15,23,42,0.04);
}
.vti-home-spotlight-card a,
.vti-trending-main--refined a,
.vti-trending-side-item--refined a,
.vti-category-featured-card a,
.vti-category-post-card a {
    display: block;
    color: inherit;
    text-decoration: none;
}
.vti-home-spotlight-media,
.vti-trending-main-media,
.vti-trending-side-media,
.vti-cat-main-media,
.vti-category-featured-card-media,
.vti-category-post-media {
    overflow: hidden;
    border-radius: 16px;
    background: #edf2f7;
}
.vti-home-spotlight-media { aspect-ratio: 16/10; margin: 0.95rem 0.95rem 0; }
.vti-home-spotlight-media img,
.vti-trending-main-media img,
.vti-trending-side-media img,
.vti-cat-main-media img,
.vti-category-featured-card-media img,
.vti-category-post-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s var(--vti-ease);
}
.vti-home-spotlight-card:hover img,
.vti-trending-main--refined:hover img,
.vti-trending-side-item--refined:hover img,
.vti-category-featured-card:hover img,
.vti-category-post-card:hover img,
.vti-home-category-block:hover img {
    transform: scale(1.025);
}
.vti-home-spotlight-copy {
    padding: 0.95rem 1rem 1.15rem;
}
.vti-home-spotlight-card .vti-card-title {
    margin: 0.6rem 0 0.7rem;
    font-family: var(--vti-sans);
    font-size: clamp(1.22rem, 1.5vw, 1.55rem);
    line-height: 1.2;
    letter-spacing: -0.03em;
}
.vti-home-spotlight-card .vti-excerpt {
    margin-bottom: 0.75rem;
    color: #64748b;
    font-size: 0.94rem;
}

.vti-trending--refined {
    padding: 0.25rem 0 4rem;
}
.vti-section-header--soft {
    margin-bottom: 1.4rem;
}
.vti-trending-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
    gap: 1.5rem;
}
.vti-trending-main--refined {
    padding: 0.95rem;
}
.vti-trending-main-media { aspect-ratio: 16/10; }
.vti-trending-main-copy { padding: 1rem 0.3rem 0.2rem; }
.vti-trending-main--refined .vti-card-title {
    margin: 0.65rem 0 0.85rem;
    font-size: clamp(2rem, 2.65vw, 3rem);
    line-height: 1.06;
    letter-spacing: -0.04em;
}
.vti-trending-main--refined .vti-excerpt { color: #64748b; max-width: 58ch; }
.vti-trending-side--refined {
    display: grid;
    gap: 1rem;
}
.vti-trending-side-item--refined {
    padding: 0.85rem;
}
.vti-trending-side-item--refined a {
    display: grid;
    grid-template-columns: 148px minmax(0,1fr);
    gap: 0.85rem;
    align-items: start;
}
.vti-trending-side-media { aspect-ratio: 4/3; }
.vti-trending-side-copy { min-width: 0; }
.vti-trending-side-item--refined .vti-card-title {
    margin: 0.5rem 0 0.5rem;
    font-size: 1.06rem;
    line-height: 1.22;
}
.vti-trending-side-item--refined .vti-excerpt {
    color: #64748b;
    font-size: 0.9rem;
    line-height: 1.55;
    margin-bottom: 0.5rem;
}

.vti-categories--refined {
    padding: 0.5rem 0 4.75rem;
}
.vti-categories-centred-header {
    margin-bottom: 2.2rem;
}
.vti-categories-grid--refined {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.9rem;
}
.vti-home-category-block {
    padding: 1.05rem;
}
.vti-cat-block-header {
    margin-bottom: 1rem;
}
.vti-cat-main-article--refined {
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    margin-bottom: 1rem;
}
.vti-cat-main-article--refined a {
    display: block;
    text-decoration: none;
    color: inherit;
}
.vti-cat-main-media { aspect-ratio: 16/10; margin-bottom: 0.95rem; }
.vti-cat-main-copy .vti-card-title {
    margin: 0.55rem 0 0.65rem;
    font-size: clamp(1.5rem, 2.1vw, 2rem);
    line-height: 1.1;
}
.vti-cat-main-copy .vti-excerpt { color: #64748b; margin-bottom: 0.7rem; }
.vti-cat-sub-list--refined {
    display: grid;
    gap: 0;
}
.vti-cat-sub-item {
    align-items: start;
    padding: 0.9rem 0;
    border-top: 1px solid rgba(15,23,42,0.08);
}
.vti-cat-sub-num {
    color: #b0b8c5;
}
.vti-cat-sub-title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    line-height: 1.3;
}
.vti-cat-sub-excerpt { color: #64748b; margin: 0 0 0.35rem; }

.vti-premium {
    padding-top: 0.5rem;
}
.vti-premium-grid {
    gap: 1.25rem;
}
.vti-premium-card {
    min-height: 100%;
}
.vti-premium-card:hover {
    transform: translateY(-4px);
}

.vti-archive-header--category {
    background: linear-gradient(180deg, #284979 0%, #23446f 100%);
    padding: 3.9rem 0 4.25rem;
}
.vti-archive-header-inner--category {
    max-width: 1180px;
}
.vti-archive-crumbs,
.vti-archive-kicker-text { color: rgba(237,244,255,.8); }
.vti-archive-title--category {
    max-width: 860px;
    font-family: var(--vti-sans);
    font-size: clamp(3rem, 5.2vw, 4.4rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.05em;
}
.vti-archive-desc--category {
    max-width: 760px;
    font-family: var(--vti-sans);
    font-style: normal;
    font-size: clamp(1rem, 1.25vw, 1.25rem);
    line-height: 1.6;
}
.vti-category-shell--premium {
    background: #f4f4f2;
    padding: 2.2rem 0 5rem;
}
.vti-category-shell-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 20px;
}
.vti-category-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 2rem;
    align-items: start;
}
.vti-category-main-column { min-width: 0; }
.vti-category-toolbar-wrap {
    margin-bottom: 1.4rem;
}
.vti-category-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    background: #fff;
    border: 1px solid rgba(15,23,42,0.08);
    border-radius: 18px;
    padding: 1rem 1.2rem;
    box-shadow: 0 12px 30px rgba(15,23,42,0.04);
}
.vti-category-toolbar-left {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}
.vti-category-filter-label {
    font-size: .95rem;
    font-weight: 700;
    color: #334155;
}
.vti-category-toolbar select {
    min-width: 210px;
    border: 1px solid rgba(15,23,42,0.12);
    border-radius: 12px;
    background: #fff;
    color: #0f172a;
    padding: 0.72rem 0.95rem;
}
.vti-category-toolbar-right {
    display: inline-flex;
    gap: 0.55rem;
}
.vti-category-toolbar-right a {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    border: 1px solid rgba(15,23,42,0.12);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    background: #fff;
    color: #0f172a;
    font-size: 1.05rem;
}
.vti-category-toolbar-right a.is-current {
    background: #0f172a;
    color: #fff;
    border-color: #0f172a;
}
.vti-category-featured-card {
    overflow: hidden;
}
.vti-category-featured-card a {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    gap: 1.1rem;
    padding: 0.95rem;
}
.vti-category-featured-card-media {
    border-radius: 16px;
    overflow: hidden;
    background: #edf2f7;
}
.vti-category-featured-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.vti-category-featured-card-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 0.2rem 0.3rem 0.2rem 0;
}
.vti-category-featured-card .vti-card-title {
    margin: 0.7rem 0 0.8rem;
    font-size: clamp(2rem, 2.5vw, 3rem);
    line-height: 1.06;
}
.vti-category-posts {
    display: grid;
    gap: 1.35rem;
}
.vti-category-posts--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.vti-category-posts--list {
    grid-template-columns: 1fr;
}
.vti-category-post-card {
    overflow: hidden;
}
.vti-category-post-card a {
    height: 100%;
}
.vti-category-post-media {
    aspect-ratio: 16/10;
    margin: 0.95rem 0.95rem 0;
}
.vti-category-post-copy {
    padding: 0.95rem 1rem 1.15rem;
}
.vti-category-post-card .vti-card-title {
    margin: 0.55rem 0 0.65rem;
    font-size: clamp(1.18rem, 1.45vw, 1.45rem);
    line-height: 1.2;
}
.vti-category-posts--list .vti-category-post-card a {
    display: grid;
    grid-template-columns: 260px minmax(0,1fr);
    gap: 1rem;
    align-items: stretch;
}
.vti-category-posts--list .vti-category-post-media {
    aspect-ratio: auto;
    height: 100%;
    margin: 0.95rem 0 0.95rem 0.95rem;
}
.vti-category-posts--list .vti-category-post-copy {
    padding-left: 0;
}
.vti-category-sidebar {
    position: sticky;
    top: 128px;
    display: grid;
    gap: 1.2rem;
}
.vti-category-sidebar-card {
    padding: 1.2rem;
}
.vti-category-sidebar-card h3 {
    margin: 0 0 1rem;
    font-family: var(--vti-sans);
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
}
.vti-category-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}
.vti-category-tag-list a {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(15,23,42,0.08);
    background: #f8fafc;
    color: #475569;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 600;
}
.vti-category-tag-list a.is-current,
.vti-category-tag-list a:hover {
    color: #0f172a;
    border-color: rgba(21,146,230,0.25);
    background: rgba(21,146,230,0.08);
}
.vti-category-search-form {
    display: grid;
    grid-template-columns: minmax(0,1fr) 48px;
    gap: 0.6rem;
}
.vti-category-search-form input {
    border: 1px solid rgba(15,23,42,0.12);
    border-radius: 12px;
    padding: 0.8rem 0.95rem;
    min-width: 0;
}
.vti-category-search-form button {
    border: 0;
    border-radius: 12px;
    background: #0f172a;
    color: #fff;
    cursor: pointer;
}
.vti-category-sidebar-card--newsletter {
    background: linear-gradient(180deg, #1f4374 0%, #1a3457 100%);
    color: #fff;
}
.vti-category-sidebar-card--newsletter h3,
.vti-category-sidebar-card--newsletter p,
.vti-category-sidebar-card--newsletter .vti-category-sidebar-eyebrow {
    color: inherit;
}
.vti-category-sidebar-eyebrow {
    display: inline-block;
    margin-bottom: 0.7rem;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
    opacity: .8;
}
.vti-category-sidebar-card--newsletter .vti-btn-subscribe {
    margin-top: 0.6rem;
    background: #fff;
    color: #0f172a;
}

@media (max-width: 1180px) {
    .vti-home-lead-card,
    .vti-category-featured-card a {
        grid-template-columns: 1fr;
    }
    .vti-home-lead-copy,
    .vti-category-featured-card-copy {
        padding-right: 0;
    }
    .vti-trending-grid,
    .vti-category-layout {
        grid-template-columns: 1fr;
    }
    .vti-category-sidebar {
        position: static;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 1024px) {
    .vti-home-spotlight-grid,
    .vti-categories-grid--refined,
    .vti-category-posts--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .vti-trending-side-item--refined a {
        grid-template-columns: 132px minmax(0,1fr);
    }
}
@media (max-width: 768px) {
    .vti-homepage {
        background: #f7f7f4;
    }
    .vti-home-lead {
        padding-top: 1rem;
    }
    .vti-home-lead-card {
        padding: 0.7rem;
        border-radius: 18px;
        gap: 0.95rem;
    }
    .vti-home-lead-media img {
        min-height: 240px;
    }
    .vti-home-lead-title {
        font-size: clamp(1.8rem, 8vw, 2.55rem);
    }
    .vti-home-lead-excerpt {
        font-size: 0.98rem;
        line-height: 1.65;
    }
    .vti-home-spotlight-grid,
    .vti-categories-grid--refined,
    .vti-category-sidebar {
        grid-template-columns: 1fr;
    }
    .vti-trending-grid {
        gap: 1rem;
    }
    .vti-trending-side-item--refined a,
    .vti-category-posts--list .vti-category-post-card a {
        grid-template-columns: 1fr;
    }
    .vti-trending-side-media,
    .vti-category-posts--list .vti-category-post-media {
        margin: 0.85rem 0.85rem 0;
        aspect-ratio: 16/10;
        height: auto;
    }
    .vti-category-posts--list .vti-category-post-copy,
    .vti-category-post-copy {
        padding: 0.95rem 0.9rem 1.05rem;
    }
    .vti-category-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .vti-category-toolbar-left,
    .vti-category-toolbar-right {
        width: 100%;
        justify-content: space-between;
    }
    .vti-category-toolbar select {
        flex: 1;
        min-width: 0;
    }
    .vti-archive-header--category {
        padding: 3rem 0 3.25rem;
    }
    .vti-archive-title--category {
        font-size: clamp(2.5rem, 12vw, 3.4rem);
    }
}


/* =============================================================
   v2.6.1 — ajustements homepage + catégories
   ============================================================= */
.vti-home-lead {
    padding: 1.6rem 0 0.9rem;
}
.vti-home-lead-card {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
    gap: 1.4rem;
    align-items: center;
    padding: 1rem;
}
.vti-home-lead-media {
    aspect-ratio: 16 / 10;
}
.vti-home-lead-media img {
    min-height: 0;
}
.vti-home-lead-copy {
    padding: 0.25rem 0.45rem 0.25rem 0;
}
.vti-home-lead-copy-inner {
    max-width: 33rem;
    margin: 0 auto;
}
.vti-home-lead-title {
    margin: 0.9rem 0 0.95rem;
    font-size: clamp(2rem, 2.8vw, 3rem);
    color: #111827;
}
.vti-home-lead-meta {
    margin-bottom: 1rem;
}
.vti-home-lead-excerpt {
    margin: 0 0 1.1rem;
    font-size: 1rem;
    line-height: 1.72;
}
.vti-home-lead-actions {
    margin-top: 0.15rem;
}
.vti-home-lead-link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-weight: 800;
    text-decoration: none;
    color: #f25f2c;
    letter-spacing: -0.01em;
}
.vti-home-lead-link:hover {
    color: #d94f1f;
}
.vti-categories-grid--refined {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.vti-home-category-block {
    min-width: 0;
}
.vti-archive-header--category {
    padding: 2.8rem 0 0;
}
.vti-category-hero-banner {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px 3rem;
    text-align: center;
}
.vti-category-hero-kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0.95rem;
    border-radius: 999px;
    background: #ff6b4a;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 1.15rem;
}
.vti-archive-title--category {
    max-width: none;
    margin: 0 0 1rem;
    font-size: clamp(2.7rem, 5vw, 4.1rem);
}
.vti-archive-desc--category {
    max-width: 760px;
    margin: 0 auto;
}
.vti-category-hero-count {
    margin-top: 1.35rem;
    color: rgba(237,244,255,.86);
    font-size: 0.98rem;
}
.vti-category-shell--premium {
    padding-top: 2rem;
}
@media (max-width: 1180px) {
    .vti-home-lead-card {
        grid-template-columns: 1fr;
    }
    .vti-home-lead-copy {
        padding-right: 0;
    }
    .vti-home-lead-copy-inner {
        max-width: none;
        margin: 0;
    }
}
@media (max-width: 1024px) {
    .vti-categories-grid--refined {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 768px) {
    .vti-home-lead-card {
        padding: 0.8rem;
    }
    .vti-home-lead-media {
        aspect-ratio: 16 / 9;
    }
    .vti-home-lead-title {
        font-size: clamp(1.7rem, 8vw, 2.35rem);
    }
    .vti-home-lead-meta {
        gap: 0.5rem 0.9rem;
        margin-bottom: 0.85rem;
    }
    .vti-categories-grid--refined {
        grid-template-columns: 1fr;
    }
    .vti-category-hero-banner {
        padding-bottom: 2.4rem;
    }
    .vti-category-hero-kicker {
        font-size: 0.64rem;
    }
    .vti-category-hero-count {
        font-size: 0.9rem;
    }
}


/* =============================================================
   v2.6.2 — hero homepage stabilisé + réglages H1/H2/H3
   ============================================================= */
.home .vti-home-lead {
    padding: 1.45rem 0 1rem;
}
.home .vti-home-lead-card {
    display: grid !important;
    grid-template-columns: minmax(0, 58%) minmax(0, 42%) !important;
    align-items: stretch !important;
    gap: 1.35rem;
    overflow: hidden;
}
.home .vti-home-lead-media,
.home .vti-home-lead-copy {
    min-width: 0;
    position: relative;
    z-index: 1;
}
.home .vti-home-lead-media {
    display: block;
    width: 100%;
    align-self: stretch;
    aspect-ratio: 4 / 3;
    border-radius: 18px;
    overflow: hidden;
    background: #edf2f7;
}
.home .vti-home-lead-media img {
    display: block;
    width: 100%;
    height: 100% !important;
    min-height: 100% !important;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center center;
}
.home .vti-home-lead-copy {
    display: flex !important;
    align-items: center !important;
    justify-content: center;
    padding: 0.35rem 0.45rem 0.35rem 0;
}
.home .vti-home-lead-copy-inner {
    width: min(100%, 34rem);
    max-width: 34rem;
    margin: 0 auto;
}
.home .vti-home-lead-title {
    margin: 0.9rem 0 1rem;
    color: #111827;
    overflow-wrap: anywhere;
    word-break: normal;
    text-wrap: balance;
}
.home .vti-home-lead-title a {
    color: inherit;
}
.home .vti-home-lead-meta {
    gap: 0.55rem 1rem;
    margin-bottom: 1rem;
}
.home .vti-home-lead-excerpt {
    margin: 0 0 1rem;
    max-width: 60ch;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}
.home .vti-home-lead-actions {
    margin-top: auto;
}
@media (max-width: 1180px) {
    .home .vti-home-lead-card {
        grid-template-columns: 1fr !important;
    }
    .home .vti-home-lead-copy {
        padding-right: 0;
    }
    .home .vti-home-lead-copy-inner {
        width: 100%;
        max-width: none;
        margin: 0;
    }
}
@media (max-width: 767px) {
    .home .vti-home-lead-card {
        gap: 0.95rem;
        padding: 0.8rem;
    }
    .home .vti-home-lead-media {
        aspect-ratio: 16 / 9;
    }
    .home .vti-home-lead-media img {
        aspect-ratio: 16 / 9;
    }
    .home .vti-home-lead-meta {
        gap: 0.45rem 0.8rem;
    }
    .home .vti-home-lead-excerpt {
        -webkit-line-clamp: 4;
    }
}


/* =============================================================
   v2.6.3 — hero homepage resserré et mieux hiérarchisé
   ============================================================= */
.home .vti-home-lead-container {
    max-width: 1100px;
}
.home .vti-home-lead-card {
    grid-template-columns: minmax(0, 47%) minmax(0, 53%) !important;
    gap: 1.75rem;
    align-items: center !important;
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.1rem;
}
.home .vti-home-lead-media {
    aspect-ratio: 5 / 4;
    max-height: 430px;
    border-radius: 20px;
}
.home .vti-home-lead-media img {
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover;
    object-position: left center;
    transform: none !important;
}
.home .vti-home-lead-copy {
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 0.2rem 0.9rem 0.2rem 0.1rem;
}
.home .vti-home-lead-copy-inner {
    width: 100%;
    max-width: 31rem;
    margin: 0;
}
.home .vti-home-lead-title {
    margin: 0.85rem 0 0.95rem;
    font-size: clamp(2rem, 3vw, 3.45rem);
    line-height: 1.04;
    letter-spacing: -0.045em;
    max-width: 12ch;
}
.home .vti-home-lead-meta {
    font-size: 0.9rem;
    gap: 0.45rem 0.9rem;
}
.home .vti-home-lead-excerpt {
    max-width: 48ch;
    -webkit-line-clamp: 4;
}
@media (max-width: 1180px) {
    .home .vti-home-lead-card {
        grid-template-columns: minmax(0, 44%) minmax(0, 56%) !important;
    }
    .home .vti-home-lead-title {
        font-size: clamp(1.9rem, 3.2vw, 3rem);
        max-width: 13ch;
    }
}
@media (max-width: 980px) {
    .home .vti-home-lead-card {
        grid-template-columns: 1fr !important;
    }
    .home .vti-home-lead-media {
        aspect-ratio: 16 / 9;
        max-height: none;
    }
    .home .vti-home-lead-copy {
        padding: 0.2rem 0 0.1rem;
    }
    .home .vti-home-lead-copy-inner {
        max-width: none;
    }
    .home .vti-home-lead-title {
        max-width: none;
    }
}
@media (max-width: 767px) {
    .home .vti-home-lead-card {
        gap: 1rem;
        padding: 0.85rem;
    }
    .home .vti-home-lead-title {
        font-size: clamp(1.75rem, 8vw, 2.45rem);
        line-height: 1.06;
    }
    .home .vti-home-lead-meta {
        font-size: 0.84rem;
    }
    .home .vti-home-lead-excerpt {
        font-size: 0.98rem;
        -webkit-line-clamp: 4;
    }
}

/* =============================================================
   v2.6.4 — hero déplacé dans "À la une" + application complète H1/H2/H3 sur la homepage
   ============================================================= */
.home .vti-home-spotlight {
    padding-top: 1.35rem;
}
.home .vti-home-spotlight-lead-wrap {
    margin: 0 0 2rem;
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead {
    padding: 0;
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead-card {
    max-width: 1100px;
    margin: 0;
}
.home .vti-home-spotlight > .vti-container > .vti-home-section-heading {
    margin-top: 0;
}

.home :where(h1:not(.screen-reader-text), .vti-home-lead-title) {
    font-family: var(--vti-h1-font) !important;
    font-size: var(--vti-h1-size) !important;
    font-weight: var(--vti-h1-weight) !important;
    line-height: var(--vti-h1-line-height) !important;
    letter-spacing: var(--vti-h1-letter-spacing) !important;
    text-transform: var(--vti-h1-transform) !important;
}

.home :where(
    .vti-home-section-heading h2,
    .vti-section-header h2,
    .vti-section-title,
    .vti-cat-block-title,
    .vti-premium-header h2,
    .vti-categories-centred-header span,
    .vti-selection-header h2,
    .vti-home-category-block > h2,
    h2:not(.screen-reader-text)
) {
    font-family: var(--vti-h2-font) !important;
    font-size: var(--vti-h2-size) !important;
    font-weight: var(--vti-h2-weight) !important;
    line-height: var(--vti-h2-line-height) !important;
    letter-spacing: var(--vti-h2-letter-spacing) !important;
    text-transform: var(--vti-h2-transform) !important;
}

.home :where(
    .vti-card-title,
    .vti-home-spotlight-card h3,
    .vti-trending-main h3,
    .vti-trending-side h3,
    .vti-category-post-card h3,
    h3:not(.screen-reader-text)
) {
    font-family: var(--vti-h3-font) !important;
    font-size: var(--vti-h3-size) !important;
    font-weight: var(--vti-h3-weight) !important;
    line-height: var(--vti-h3-line-height) !important;
    letter-spacing: var(--vti-h3-letter-spacing) !important;
    text-transform: var(--vti-h3-transform) !important;
}

@media (max-width: 1024px) {
    .home :where(h1:not(.screen-reader-text), .vti-home-lead-title) {
        font-size: var(--vti-h1-size-tablet) !important;
    }
    .home :where(
        .vti-home-section-heading h2,
        .vti-section-header h2,
        .vti-section-title,
        .vti-cat-block-title,
        .vti-premium-header h2,
        .vti-categories-centred-header span,
        .vti-selection-header h2,
        .vti-home-category-block > h2,
        h2:not(.screen-reader-text)
    ) {
        font-size: var(--vti-h2-size-tablet) !important;
    }
    .home :where(
        .vti-card-title,
        .vti-home-spotlight-card h3,
        .vti-trending-main h3,
        .vti-trending-side h3,
        .vti-category-post-card h3,
        h3:not(.screen-reader-text)
    ) {
        font-size: var(--vti-h3-size-tablet) !important;
    }
}

@media (max-width: 767px) {
    .home .vti-home-spotlight-lead-wrap {
        margin-bottom: 1.5rem;
    }
    .home :where(h1:not(.screen-reader-text), .vti-home-lead-title) {
        font-size: var(--vti-h1-size-mobile) !important;
    }
    .home :where(
        .vti-home-section-heading h2,
        .vti-section-header h2,
        .vti-section-title,
        .vti-cat-block-title,
        .vti-premium-header h2,
        .vti-categories-centred-header span,
        .vti-selection-header h2,
        .vti-home-category-block > h2,
        h2:not(.screen-reader-text)
    ) {
        font-size: var(--vti-h2-size-mobile) !important;
    }
    .home :where(
        .vti-card-title,
        .vti-home-spotlight-card h3,
        .vti-trending-main h3,
        .vti-trending-side h3,
        .vti-category-post-card h3,
        h3:not(.screen-reader-text)
    ) {
        font-size: var(--vti-h3-size-mobile) !important;
    }
}


/* =============================================================
   v2.6.5 — homepage lead 2/3 image + 1/3 text after user feedback
   ============================================================= */
.vti-home-lead-card {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(300px, 0.9fr);
    gap: 1.35rem;
}
.vti-home-lead-media {
    grid-column: 1 / span 2;
    aspect-ratio: 16 / 9;
}
.vti-home-lead-copy {
    grid-column: 3;
    min-width: 0;
    padding: 0.65rem 0.35rem 0.65rem 0;
}
.vti-home-lead-copy-inner {
    max-width: 34ch;
}
.vti-home-lead-title {
    margin-top: 0.75rem;
    font-size: clamp(1.9rem, 2.8vw, 3.1rem);
}
.vti-home-lead-excerpt {
    max-width: 34ch;
}

@media (max-width: 1100px) {
    .vti-home-lead-card {
        grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
    }
    .vti-home-lead-media {
        grid-column: 1;
    }
    .vti-home-lead-copy {
        grid-column: 2;
    }
    .vti-home-lead-copy-inner,
    .vti-home-lead-excerpt {
        max-width: 100%;
    }
}

@media (max-width: 820px) {
    .vti-home-lead-card {
        grid-template-columns: 1fr;
    }
    .vti-home-lead-media,
    .vti-home-lead-copy {
        grid-column: auto;
    }
    .vti-home-lead-copy {
        padding: 0.4rem 0.2rem 0.2rem;
    }
}


/* =============================================================
   v2.6.6 — homepage lead aligned to the 3-card spotlight grid
   image spans columns 1-2, text occupies column 3
   ============================================================= */
.home .vti-home-spotlight-lead-wrap {
    margin: 0 0 1.35rem;
}
.home .vti-home-spotlight-lead-card {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.35rem !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    align-items: stretch !important;
}
.home .vti-home-lead-media {
    grid-column: 1 / span 2 !important;
    display: block;
    align-self: stretch;
    min-height: 100%;
    border-radius: 20px;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(15,23,42,0.08);
    box-shadow: 0 12px 30px rgba(15,23,42,0.04);
    padding: 1rem;
}
.home .vti-home-lead-media img {
    width: 100%;
    height: 100% !important;
    min-height: 430px;
    object-fit: cover;
    object-position: center top;
    border-radius: 16px;
}
.home .vti-home-lead-copy {
    grid-column: 3 !important;
    display: block !important;
    min-width: 0;
    align-self: stretch;
    padding: 0 !important;
    background: #fff;
    border: 1px solid rgba(15,23,42,0.08);
    border-radius: 20px;
    box-shadow: 0 12px 30px rgba(15,23,42,0.04);
}
.home .vti-home-lead-copy-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    max-width: none;
    min-height: 100%;
    padding: 1.1rem 1.1rem 1.2rem;
    margin: 0;
}
.home .vti-home-lead-title {
    max-width: 100%;
    margin: 0.75rem 0 0.9rem;
}
.home .vti-home-lead-excerpt {
    max-width: 100%;
}
.home .vti-home-lead-actions {
    margin-top: auto;
}

@media (max-width: 1100px) {
    .home .vti-home-lead-card {
        grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) !important;
    }
    .home .vti-home-lead-media {
        grid-column: 1 !important;
    }
    .home .vti-home-lead-copy {
        grid-column: 2 !important;
    }
    .home .vti-home-lead-media img {
        min-height: 380px;
    }
}

@media (max-width: 820px) {
    .home .vti-home-lead-card {
        grid-template-columns: 1fr !important;
    }
    .home .vti-home-lead-media,
    .home .vti-home-lead-copy {
        grid-column: auto !important;
    }
    .home .vti-home-lead-media {
        padding: 0.85rem;
    }
    .home .vti-home-lead-media img {
        min-height: 0;
        aspect-ratio: 16 / 9;
    }
}


/* =============================================================
   v2.6.7 — corrected homepage hero grid hooks
   The previous rules targeted .vti-home-spotlight-lead-card only,
   but the markup rendered .vti-home-lead-card. We now target both
   and lock the hero to the same 3-column grid as "À la une".
   ============================================================= */
.home .vti-home-spotlight > .vti-container {
    display: block;
}
.home .vti-home-spotlight-lead-wrap {
    margin: 0 0 1.35rem;
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead,
.home .vti-home-spotlight-lead-wrap .vti-home-lead-card,
.home .vti-home-spotlight-lead-wrap .vti-home-spotlight-lead-card {
    width: 100%;
    max-width: none;
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead-card,
.home .vti-home-spotlight-lead-wrap .vti-home-spotlight-lead-card {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.35rem !important;
    align-items: stretch !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead-media {
    grid-column: 1 / span 2 !important;
    min-width: 0;
    align-self: stretch;
    display: block;
    margin: 0 !important;
    padding: 0.95rem;
    background: #fff;
    border: 1px solid rgba(15,23,42,0.08);
    border-radius: 20px;
    box-shadow: 0 12px 30px rgba(15,23,42,0.04);
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead-media img {
    display: block;
    width: 100%;
    height: 100% !important;
    min-height: 430px;
    object-fit: cover;
    object-position: center top;
    border-radius: 16px;
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead-copy {
    grid-column: 3 !important;
    min-width: 0;
    align-self: stretch;
    display: flex !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff;
    border: 1px solid rgba(15,23,42,0.08);
    border-radius: 20px;
    box-shadow: 0 12px 30px rgba(15,23,42,0.04);
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead-copy-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    min-height: 100%;
    max-width: none;
    padding: 1.15rem 1.15rem 1.25rem;
    margin: 0;
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead-title,
.home .vti-home-spotlight-lead-wrap .vti-home-lead-excerpt {
    max-width: 100%;
}
.home .vti-home-spotlight-lead-wrap .vti-home-lead-actions {
    margin-top: auto;
}

@media (max-width: 1100px) {
    .home .vti-home-spotlight-lead-wrap .vti-home-lead-card,
    .home .vti-home-spotlight-lead-wrap .vti-home-spotlight-lead-card {
        grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) !important;
    }
    .home .vti-home-spotlight-lead-wrap .vti-home-lead-media {
        grid-column: 1 !important;
    }
    .home .vti-home-spotlight-lead-wrap .vti-home-lead-copy {
        grid-column: 2 !important;
    }
    .home .vti-home-spotlight-lead-wrap .vti-home-lead-media img {
        min-height: 380px;
    }
}

@media (max-width: 820px) {
    .home .vti-home-spotlight-lead-wrap .vti-home-lead-card,
    .home .vti-home-spotlight-lead-wrap .vti-home-spotlight-lead-card {
        grid-template-columns: 1fr !important;
    }
    .home .vti-home-spotlight-lead-wrap .vti-home-lead-media,
    .home .vti-home-spotlight-lead-wrap .vti-home-lead-copy {
        grid-column: auto !important;
    }
    .home .vti-home-spotlight-lead-wrap .vti-home-lead-media img {
        min-height: 0;
        aspect-ratio: 16 / 9;
    }
}


/* ─────────────────────────────────────────────
   v2.6.8 — nouveaux intitulés homepage + newsletter background token
   ───────────────────────────────────────────── */
.vti-home-section-heading + .vti-home-lead-wrap{margin-top:.4rem;}
.vti-home-spotlight .vti-home-section-heading h2{margin-bottom:0;}
.vti-newsletter,.vti-category-sidebar-card--newsletter{background:var(--vti-newsletter-bg,var(--vti-dark-surface));}


/* v2.6.9 — homepage adjustments */
.vti-home-spotlight > .vti-container > .vti-home-section-heading:first-child { margin-top: 20px; }

/* v2.6.11 — newsletter lisibilité + espacement homepage */
.vti-newsletter,
.vti-newsletter * {
    color: #fff;
}
.vti-newsletter-label,
.vti-newsletter-title,
.vti-newsletter-desc,
.vti-newsletter-legal {
    color: #fff;
}
.vti-newsletter-desc {
    opacity: 1;
}
.vti-newsletter-form input[type="email"] {
    color: #fff;
}
.vti-newsletter-form input[type="email"]::placeholder {
    color: rgba(255,255,255,0.95);
    opacity: 1;
}
.home .vti-home-spotlight > .vti-container > .vti-home-section-heading:first-child {
    margin-top: 48px;
}
@media (max-width: 767px) {
    .home .vti-home-spotlight > .vti-container > .vti-home-section-heading:first-child {
        margin-top: 32px;
    }
}

/* =========================================================
   Catégories v2.6.12
   ========================================================= */
.vti-category-page{
    background:#f3f5f7;
    padding-bottom:48px;
}
.vti-category-hero{
    background:linear-gradient(180deg,#244875 0%,#213f67 100%);
    color:#fff;
    padding:72px 0 64px;
}
.vti-category-hero__inner{
    max-width:760px;
    margin:0 auto;
    text-align:center;
}
.vti-category-hero__eyebrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:18px;
}
.vti-category-hero__title{
    color:#fff;
    margin:0;
}
.vti-category-hero__desc{
    margin:18px auto 0;
    max-width:680px;
    color:rgba(255,255,255,.82);
    font-size:1.05rem;
    line-height:1.75;
}
.vti-category-hero__count{
    margin-top:24px;
    color:rgba(255,255,255,.68);
    font-size:.92rem;
}
.vti-category-page__container{
    margin-top:28px;
}
.vti-category-page__layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:28px;
    align-items:start;
}
.vti-category-toolbar-card,
.vti-category-sidebar-box,
.vti-category-card-v2{
    background:#fff;
    border:1px solid rgba(17,24,39,.08);
    border-radius:18px;
    box-shadow:0 10px 30px rgba(15,23,42,.05);
}
.vti-category-toolbar-v2{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding:14px 18px;
}
.vti-category-toolbar-v2__group{
    display:flex;
    align-items:center;
    gap:10px;
    color:#5f6b7a;
    font-size:.95rem;
}
.vti-category-toolbar-v2__group label,
.vti-category-toolbar-v2__views span{
    font-weight:700;
}
.vti-category-toolbar-v2 select{
    min-width:190px;
    border:1px solid rgba(17,24,39,.12);
    border-radius:10px;
    background:#fff;
    color:#1f2937;
    padding:10px 12px;
}
.vti-category-toolbar-v2__views{
    display:flex;
    align-items:center;
    gap:8px;
    color:#5f6b7a;
}
.vti-category-toolbar-v2__views a{
    width:40px;
    height:40px;
    border:1px solid rgba(17,24,39,.12);
    border-radius:10px;
    display:grid;
    place-items:center;
    background:#fff;
}
.vti-category-toolbar-v2__views a.is-current{
    background:#111827;
    border-color:#111827;
}
.vti-category-toolbar-v2__views a span{
    display:block;
    background:#111827;
}
.vti-category-toolbar-v2__views a.is-current span{
    background:#fff;
}
.vti-category-toolbar-v2__views a:first-of-type{
    grid-template-columns:repeat(2,6px);
    gap:4px;
}
.vti-category-toolbar-v2__views a:first-of-type span{
    width:6px;
    height:6px;
    border-radius:1px;
}
.vti-category-toolbar-v2__views a:last-of-type{
    gap:4px;
}
.vti-category-toolbar-v2__views a:last-of-type span{
    width:14px;
    height:2px;
    border-radius:999px;
}
.vti-category-loop{
    margin-top:18px;
}
.vti-category-loop--grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.vti-category-loop--list{
    display:flex;
    flex-direction:column;
    gap:18px;
}
.vti-category-card-v2{
    overflow:hidden;
}
.vti-category-card-v2__link{
    display:flex;
    flex-direction:column;
    height:100%;
    color:inherit;
    text-decoration:none;
}
.vti-category-loop--list .vti-category-card-v2__link{
    flex-direction:row;
}
.vti-category-card-v2__media{
    position:relative;
    aspect-ratio:16/10;
    overflow:hidden;
    background:#dfe5ec;
}
.vti-category-loop--list .vti-category-card-v2__media{
    width:38%;
    min-width:240px;
    aspect-ratio:auto;
}
.vti-category-card-v2__media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.vti-category-card-v2__content{
    padding:18px 20px 20px;
}
.vti-category-card-v2__badge,
.vti-category-popular-item__badge{
    display:inline-flex;
    align-items:center;
    padding:4px 8px;
    border-radius:999px;
    background:#1f3f6c;
    color:#fff;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.03em;
    text-transform:none;
}
.vti-category-card-v2__title{
    font-size:1.35rem;
    line-height:1.25;
    margin:14px 0 10px;
    color:#162033;
}
.vti-category-card-v2__excerpt{
    margin:0 0 16px;
    color:#5f6b7a;
    line-height:1.7;
}
.vti-category-card-v2__meta,
.vti-category-popular-item__meta{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    color:#6b7280;
    font-size:.84rem;
}
.vti-category-page__sidebar{
    display:flex;
    flex-direction:column;
    gap:18px;
}
.vti-category-sidebar-box{
    padding:20px;
}
.vti-category-sidebar-box h3{
    margin:0 0 16px;
    font-size:1.1rem;
    color:#162033;
}
.vti-category-sidebar-box__tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.vti-category-sidebar-box__tags a{
    display:inline-flex;
    align-items:center;
    padding:7px 10px;
    border-radius:999px;
    background:#f2f5f8;
    color:#405066;
    font-size:.8rem;
    text-decoration:none;
}
.vti-category-sidebar-box__popular-list{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.vti-category-popular-item + .vti-category-popular-item{
    padding-top:14px;
    border-top:1px solid rgba(17,24,39,.08);
}
.vti-category-popular-item a{
    color:inherit;
    text-decoration:none;
}
.vti-category-popular-item h4{
    margin:10px 0 8px;
    font-size:1rem;
    line-height:1.45;
    color:#162033;
}
@media (max-width: 1024px){
    .vti-category-page__layout{
        grid-template-columns:minmax(0,1fr);
    }
}
@media (max-width: 767px){
    .vti-category-hero{
        padding:56px 0 48px;
    }
    .vti-category-toolbar-v2{
        flex-direction:column;
        align-items:stretch;
    }
    .vti-category-toolbar-v2__views{
        justify-content:space-between;
    }
    .vti-category-loop--grid{
        grid-template-columns:1fr;
    }
    .vti-category-loop--list .vti-category-card-v2__link{
        flex-direction:column;
    }
    .vti-category-loop--list .vti-category-card-v2__media{
        width:100%;
        min-width:0;
        aspect-ratio:16/10;
    }
}


/* v2.6.13 — toolbar catégories + image newsletter configurable */
.vti-category-toolbar-v2__group label,
.vti-category-toolbar-v2__views > span{
    font-weight:700;
    color:#475569;
    line-height:1;
}
.vti-category-toolbar-v2__group{
    gap:14px;
}
.vti-category-toolbar-v2__group label{
    margin:0;
    display:inline-flex;
    align-items:center;
    min-height:40px;
}
.vti-category-toolbar-v2 select{
    height:50px;
    padding:0 14px;
}
.vti-category-toolbar-v2__views{
    gap:10px;
}
.vti-category-toolbar-v2__views a{
    transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
    color:#0f172a;
}
.vti-category-toolbar-v2__views a:hover{
    transform:translateY(-1px);
    border-color:rgba(15,23,42,.24);
}
.vti-category-toolbar-v2__views a svg{
    width:18px;
    height:18px;
    display:block;
}
.vti-category-toolbar-v2__views a svg rect,
.vti-category-toolbar-v2__views a svg line{
    stroke:currentColor;
    fill:none;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.vti-category-toolbar-v2__views a.is-current{
    color:#fff;
}
.vti-category-toolbar-v2__views a.is-current svg rect{
    fill:currentColor;
    stroke:currentColor;
}
.vti-category-toolbar-v2__views a.is-current svg line{
    stroke:currentColor;
}
.vti-newsletter-mockup{
    overflow:hidden;
}
.vti-newsletter-mockup-image{
    display:block;
    width:100%;
    height:auto;
    max-width:100%;
    object-fit:contain;
}
@media (max-width: 767px){
    .vti-category-toolbar-v2__group{
        width:100%;
    }
    .vti-category-toolbar-v2__group label{
        min-height:auto;
    }
}


/* v2.6.14 — corrections responsive et icônes affichage catégories */
@media (max-width: 1024px){
    .vti-hamburger{
        display:-webkit-flex !important;
        display:flex !important;
        visibility:visible;
        opacity:1;
    }
    .vti-search-btn-mobile{
        display:-webkit-flex !important;
        display:flex !important;
        visibility:visible;
        opacity:1;
    }
    .vti-header-main{
        display:grid;
        grid-template-columns:44px 1fr 44px;
        align-items:center;
    }
    .vti-logo{
        justify-self:center;
        margin:0;
    }
}

.vti-category-toolbar-v2__views .vti-view-toggle{
    width:46px;
    height:46px;
    border-radius:14px;
    border:1px solid rgba(15,23,42,.12);
    background:#fff !important;
    color:#0f172a;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:0;
    box-shadow:none;
}
.vti-category-toolbar-v2__views .vti-view-toggle:hover{
    background:#f8fafc !important;
}
.vti-category-toolbar-v2__views .vti-view-toggle svg{
    width:20px;
    height:20px;
}
.vti-category-toolbar-v2__views .vti-view-toggle svg rect,
.vti-category-toolbar-v2__views .vti-view-toggle svg circle,
.vti-category-toolbar-v2__views .vti-view-toggle svg line{
    stroke:currentColor;
    fill:none;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.vti-category-toolbar-v2__views .vti-view-toggle--grid svg rect{
    fill:currentColor;
    stroke:none;
}
.vti-category-toolbar-v2__views .vti-view-toggle.is-current{
    background:#0f172a !important;
    border-color:#0f172a;
    color:#fff;
}
.vti-category-toolbar-v2__views .vti-view-toggle--grid.is-current svg rect{
    fill:currentColor;
}
.vti-category-toolbar-v2__views .vti-view-toggle--list.is-current svg circle{
    fill:currentColor;
    stroke:none;
}
.vti-category-toolbar-v2__views .vti-view-toggle--list svg circle{
    fill:currentColor;
    stroke:none;
}


/* v2.6.15 — menu slide-in premium + hamburger noir + icônes affichage catégories */
@media (max-width: 1024px){
    .vti-hamburger{
        display:-webkit-flex !important;
        display:flex !important;
        width:48px;
        height:48px;
        min-width:48px;
        min-height:48px;
        padding:0;
        color:#111827 !important;
    }
    .vti-hamburger-box{
        width:28px;
        height:20px;
    }
    .vti-hamburger-inner,
    .vti-hamburger-inner::before,
    .vti-hamburger-inner::after{
        width:28px;
        height:3px;
        border-radius:999px;
        background:#111827 !important;
        box-shadow:0 0 0 0.25px rgba(17,24,39,.55);
    }
    .vti-hamburger-inner{ margin-top:-1.5px; }
    .vti-hamburger-inner::before{ top:-8px; }
    .vti-hamburger-inner::after{ top:8px; }

    .vti-nav-overlay{
        background:rgba(15,23,42,.42);
        -webkit-backdrop-filter:blur(10px);
        backdrop-filter:blur(10px);
        transition:opacity .3s ease;
    }

    .vti-nav-mobile{
        width:min(420px, 92vw);
        background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
        border-right:1px solid rgba(15,23,42,.08);
        box-shadow:0 24px 70px rgba(15,23,42,.18);
        border-top-right-radius:24px;
        border-bottom-right-radius:24px;
        transform:translateX(-104%);
        transition:transform .38s cubic-bezier(.22,1,.36,1), box-shadow .38s ease;
    }
    .vti-nav-mobile.is-open{
        transform:translateX(0);
    }
    .vti-nav-mobile-header{
        padding:1.25rem 1.25rem 1rem;
        border-bottom:1px solid rgba(15,23,42,.08);
        background:rgba(255,255,255,.88);
        -webkit-backdrop-filter:blur(14px);
        backdrop-filter:blur(14px);
    }
    .vti-nav-mobile-brand{
        font-size:1.05rem;
        font-weight:800;
        letter-spacing:-.02em;
        color:#0f172a;
    }
    .vti-nav-mobile-close{
        width:44px;
        height:44px;
        min-width:44px;
        min-height:44px;
        padding:0;
        border-radius:14px;
        background:#f3f6fb;
        color:#111827;
        border:1px solid rgba(15,23,42,.08);
    }
    .vti-nav-mobile-body{
        padding:1rem 1.25rem 1.5rem;
        gap:1rem;
    }
    .vti-nav-mobile-list{
        display:flex;
        flex-direction:column;
        gap:.35rem;
    }
    .vti-nav-mobile-list > li{
        border-bottom:none;
    }
    .vti-nav-mobile-list > li > a{
        display:flex;
        align-items:center;
        justify-content:space-between;
        min-height:56px;
        padding:1rem 1rem;
        border:1px solid rgba(15,23,42,.08);
        border-radius:18px;
        background:#fff;
        box-shadow:0 8px 20px rgba(15,23,42,.05);
        color:#0f172a;
        font-size:1rem;
        font-weight:700;
        line-height:1.25;
    }
    .vti-nav-mobile-list > li > a::after{
        content:'›';
        position:static;
        width:auto;
        height:auto;
        background:none;
        font-size:1.2rem;
        font-weight:700;
        color:#94a3b8;
        margin-left:1rem;
        transition:transform .2s ease,color .2s ease;
    }
    .vti-nav-mobile-list > li > a:hover,
    .vti-nav-mobile-list > li.current-menu-item > a,
    .vti-nav-mobile-list > li.current-menu-parent > a,
    .vti-nav-mobile-list > li.current-menu-ancestor > a{
        color:#0f172a;
        background:#eff6ff;
        border-color:rgba(37,99,235,.18);
        box-shadow:0 12px 26px rgba(37,99,235,.08);
    }
    .vti-nav-mobile-list > li > a:hover::after,
    .vti-nav-mobile-list > li.current-menu-item > a::after,
    .vti-nav-mobile-list > li.current-menu-parent > a::after,
    .vti-nav-mobile-list > li.current-menu-ancestor > a::after{
        color:#2563eb;
        transform:translateX(3px);
    }
    .vti-nav-mobile .sub-menu{
        margin:.55rem 0 0 .85rem;
        padding:.35rem 0 0 .85rem;
        border-left:2px solid rgba(37,99,235,.12);
    }
    .vti-nav-mobile .sub-menu a{
        padding:.7rem 0;
        color:#475569;
        font-size:.92rem;
    }
    .vti-nav-mobile-footer{
        margin-top:1rem;
        padding-top:1rem;
        border-top:1px solid rgba(15,23,42,.08);
    }
    .vti-nav-mobile-edition{
        margin-top:.9rem;
        color:#64748b;
        font-size:.72rem;
        letter-spacing:.12em;
    }
}

@media (max-width: 560px){
    .vti-nav-mobile{
        width:min(100vw, 100%);
        border-radius:0 22px 22px 0;
    }
}

.vti-category-toolbar-v2__views .vti-view-toggle{
    width:48px;
    height:48px;
    padding:0;
    border-radius:14px;
    border:1px solid rgba(15,23,42,.12);
    background:#fff !important;
    color:#0f172a;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    box-shadow:none;
}
.vti-category-toolbar-v2__views .vti-view-toggle:hover{
    background:#f8fafc !important;
    border-color:rgba(15,23,42,.18);
}
.vti-view-toggle__icon{
    display:inline-grid;
    align-items:center;
    justify-items:center;
    color:currentColor;
}
.vti-view-toggle__icon--grid{
    grid-template-columns:repeat(2, 7px);
    gap:3px;
}
.vti-view-toggle__icon--grid span{
    display:block;
    width:7px;
    height:7px;
    border-radius:2px;
    background:currentColor;
}
.vti-view-toggle__icon--list{
    gap:4px;
}
.vti-view-toggle__icon--list span{
    display:block;
    width:16px;
    height:2px;
    border-radius:999px;
    background:currentColor;
    position:relative;
}
.vti-view-toggle__icon--list span::before{
    content:'';
    position:absolute;
    left:-6px;
    top:50%;
    width:3px;
    height:3px;
    border-radius:50%;
    background:currentColor;
    transform:translateY(-50%);
}
.vti-category-toolbar-v2__views .vti-view-toggle.is-current{
    background:#0f172a !important;
    border-color:#0f172a;
    color:#fff;
}


/* v2.6.16 — catégories + newsletter */
.vti-newsletter-mockup.has-custom-image{
    background:#fff !important;
}
.vti-newsletter-mockup.has-custom-image .vti-newsletter-mockup-image{
    background:#fff;
}

/* v2.6.19 - CTA Contact sticky mobile + hamburger renforce */
.vti-hamburger-inner,
.vti-hamburger-inner::before,
.vti-hamburger-inner::after {
    height: 3px;
    background-color: #000 !important;
    box-shadow: 0 0 0 0.35px #000;
}
.vti-hamburger-inner { margin-top: -1.5px; }

.vti-mobile-sticky-contact {
    display: none;
}

@media (max-width: 768px) {
    body {
        padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    }

    .vti-mobile-sticky-contact {
        position: fixed;
        left: 1rem;
        right: 1rem;
        bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
        z-index: 9998;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 54px;
        border-radius: 999px;
        background: #111827;
        color: #fff !important;
        font-family: var(--vti-sans);
        font-size: .78rem;
        font-weight: 900;
        letter-spacing: .16em;
        text-transform: uppercase;
        text-decoration: none;
        box-shadow: 0 18px 45px rgba(15, 23, 42, .28);
        border: 1px solid rgba(255, 255, 255, .16);
    }

    .vti-mobile-sticky-contact::after {
        content: '→';
        margin-left: .7rem;
        font-size: 1rem;
        line-height: 1;
    }

    .vti-mobile-sticky-contact:hover,
    .vti-mobile-sticky-contact:focus-visible {
        background: var(--vti-accent);
        color: #fff !important;
        outline: none;
        transform: translateY(-1px);
    }

    .vti-nav-mobile.is-open ~ .vti-mobile-sticky-contact,
    .vti-search-overlay.is-open ~ .vti-mobile-sticky-contact {
        display: none;
    }
}

@media (min-width: 769px) {
    .vti-mobile-sticky-contact { display: none !important; }
}

/* ─────────────────────────────────────────────
   Correctif formulaires — champs lisibles sur Chrome/Safari
   Force les champs texte en fond blanc et texte sombre, y compris
   quand un style tiers ou l'autofill navigateur injecte un fond sombre.
   ───────────────────────────────────────────── */
:where(
    .vti-site,
    .site,
    .entry-content,
    .page-content,
    .post-content,
    .elementor,
    .wpcf7,
    form
) :where(
    input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]),
    textarea,
    select
) {
    background-color: #ffffff !important;
    color: #1f2937 !important;
    border: 1px solid rgba(15, 23, 42, 0.28) !important;
    border-radius: 14px;
    box-shadow: none !important;
    caret-color: #111827;
    -webkit-text-fill-color: #1f2937 !important;
}

:where(
    .vti-site,
    .site,
    .entry-content,
    .page-content,
    .post-content,
    .elementor,
    .wpcf7,
    form
) :where(
    input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]),
    textarea,
    select
)::placeholder {
    color: #8b95a5 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #8b95a5 !important;
}

:where(
    .vti-site,
    .site,
    .entry-content,
    .page-content,
    .post-content,
    .elementor,
    .wpcf7,
    form
) :where(
    input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]),
    textarea,
    select
):focus {
    background-color: #ffffff !important;
    color: #111827 !important;
    border-color: rgba(20, 158, 169, 0.75) !important;
    outline: none;
    box-shadow: 0 0 0 3px rgba(20, 158, 169, 0.14) !important;
    -webkit-text-fill-color: #111827 !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
    box-shadow: 0 0 0 1000px #ffffff inset !important;
    -webkit-text-fill-color: #1f2937 !important;
    caret-color: #111827 !important;
}

/* Préserve les boutons/CTA et les champs newsletter qui ont leur propre design. */
.vti-newsletter input,
.vti-newsletter-field,
.vti-newsletter-form input[type="email"] {
    border-color: rgba(255, 255, 255, 0.22) !important;
}

/* =============================================================
   v2.6.24 — Bons plans pro : fiches, comparateur, état vide propre
   ============================================================= */
.vti-bons-section-head h2 { font-size: clamp(1.55rem, 2.6vw, 2.35rem); line-height: 1.08; }
.vti-bons-empty { max-width: 880px; padding: clamp(1.4rem, 3vw, 2rem); }
.vti-bons-empty h2 { font-size: clamp(1.35rem, 2.3vw, 1.9rem); line-height: 1.12; }
.vti-bons-empty p { font-size: 1rem; max-width: 42rem; }
.vti-bons-meta-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.vti-bons-meta-chips span { display: inline-flex; align-items: center; min-height: 30px; border-radius: 999px; padding: 0 .72rem; background: rgba(0,155,170,.09); color: var(--vti-secondary); font: 800 .72rem/1 var(--vti-sans); letter-spacing: .04em; }
.vti-bons-old-price { color: var(--vti-muted); font: 700 .88rem/1 var(--vti-sans); text-decoration: line-through; }
.vti-bons-compare, .vti-bons-disclaimer, .vti-bons-faq { margin-top: clamp(2rem, 4vw, 3rem); }
.vti-bons-compare-table-wrap { overflow-x: auto; border: 1px solid rgba(15,23,42,.08); border-radius: 24px; background: #fff; box-shadow: 0 18px 48px rgba(15,23,42,.07); }
.vti-bons-compare-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.vti-bons-compare-table th, .vti-bons-compare-table td { padding: 1rem; border-bottom: 1px solid rgba(15,23,42,.08); text-align: left; vertical-align: top; }
.vti-bons-compare-table th { color: var(--vti-black); font: 800 .78rem/1 var(--vti-sans); letter-spacing: .12em; text-transform: uppercase; background: rgba(15,23,42,.03); }
.vti-bons-compare-table td strong, .vti-bons-compare-table td span { display: block; }
.vti-bons-compare-table td span { margin-top: .35rem; color: var(--vti-muted); line-height: 1.5; }
.vti-bons-compare-table a { color: var(--vti-secondary); font-weight: 800; text-decoration: none; }
.vti-bons-disclaimer { border-radius: 22px; padding: 1rem 1.2rem; background: rgba(0,155,170,.08); color: var(--vti-body); }
.vti-bons-disclaimer p { margin: 0; }
.vti-bons-faq-list { display: grid; gap: .8rem; }
.vti-bons-faq-item { border: 1px solid rgba(15,23,42,.08); border-radius: 18px; background: #fff; padding: 1rem 1.1rem; }
.vti-bons-faq-question { cursor: pointer; color: var(--vti-black); font-weight: 800; }
.vti-bons-faq-answer p { margin: .8rem 0 0; color: var(--vti-body); line-height: 1.7; }
body.vti-dark-mode .vti-bons-meta-chips span, body.vti-dark-mode .vti-bons-compare-table-wrap, body.vti-dark-mode .vti-bons-faq-item, body.vti-dark-mode .vti-bons-disclaimer { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.08); }


/* V2.6.27 - FAQ : chaque question est un H3 tout en conservant l'apparence accordéon */
.vti-faq-q-heading,
.vti-article-faq-question h3,
.vti-bons-faq-question h3 {
    margin: 0 !important;
    padding: 0 !important;
    font: inherit !important;
    color: inherit !important;
    line-height: inherit !important;
}

.vti-faq-q-heading .vti-faq-q {
    font: inherit;
}


/* ======================================================
   V2.6.29 - FAQ : questions H3 lisibles, non grasses
   Scope strict : rubriques FAQ uniquement
   ====================================================== */

.vti-article-faq .vti-article-faq-question h3,
.vti-bons-faq .vti-bons-faq-question h3,
.vti-faq .vti-faq-q-heading {
    font-family: var(--vti-sans) !important;
    font-size: 1.125rem !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    letter-spacing: normal !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
}

.vti-article-faq .vti-article-faq-question,
.vti-bons-faq .vti-bons-faq-question {
    font-weight: 400 !important;
}

.vti-article-faq .vti-article-faq-answer,
.vti-bons-faq .vti-bons-faq-answer,
.vti-faq .vti-faq-a {
    font-size: 1rem;
}

@media (max-width: 640px) {
    .vti-article-faq .vti-article-faq-question h3,
    .vti-bons-faq .vti-bons-faq-question h3,
    .vti-faq .vti-faq-q-heading {
        font-size: 1.05rem !important;
    }
}

/* ======================================================
   V2.6.30 - Typographie backoffice + FAQ stricte
   ====================================================== */

body .vti-prose h1,
body .vti-single-content h1,
body .entry-content h1 {
    font-family: var(--vti-h1-font) !important;
    font-size: var(--vti-h1-size) !important;
    font-weight: var(--vti-h1-weight) !important;
    line-height: var(--vti-h1-line-height) !important;
    letter-spacing: var(--vti-h1-letter-spacing) !important;
    text-transform: var(--vti-h1-transform) !important;
}

body .vti-prose h2,
body .vti-single-content h2,
body .entry-content h2 {
    font-family: var(--vti-h2-font) !important;
    font-size: var(--vti-h2-size) !important;
    font-weight: var(--vti-h2-weight) !important;
    line-height: var(--vti-h2-line-height) !important;
    letter-spacing: var(--vti-h2-letter-spacing) !important;
    text-transform: var(--vti-h2-transform) !important;
}

body .vti-prose h3,
body .vti-single-content h3,
body .entry-content h3 {
    font-family: var(--vti-h3-font) !important;
    font-size: var(--vti-h3-size) !important;
    font-weight: var(--vti-h3-weight) !important;
    line-height: var(--vti-h3-line-height) !important;
    letter-spacing: var(--vti-h3-letter-spacing) !important;
    text-transform: var(--vti-h3-transform) !important;
}

body .vti-article-faq .vti-article-faq-title,
body .vti-bons-faq .vti-bons-faq-title,
body .vti-faq .vti-faq-title-heading {
    font-family: var(--vti-h2-font) !important;
    font-size: var(--vti-h2-size) !important;
    font-weight: var(--vti-h2-weight) !important;
    line-height: var(--vti-h2-line-height) !important;
    letter-spacing: var(--vti-h2-letter-spacing) !important;
    text-transform: var(--vti-h2-transform) !important;
}

body .vti-article-faq .vti-article-faq-question,
body .vti-bons-faq .vti-bons-faq-question {
    font-weight: 400 !important;
}

body .vti-article-faq .vti-article-faq-question h3.vti-faq-question-heading,
body .vti-bons-faq .vti-bons-faq-question h3.vti-faq-question-heading,
body .vti-faq .vti-faq-question-heading {
    font-family: var(--vti-h3-font) !important;
    font-size: min(var(--vti-h3-size), 1.25rem) !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body .vti-article-faq .vti-article-faq-answer p,
body .vti-bons-faq .vti-bons-faq-answer p,
body .vti-faq .vti-faq-a {
    font-size: 1rem !important;
    line-height: 1.7 !important;
}

@media (max-width:1024px) {
    body .vti-prose h1, body .vti-single-content h1, body .entry-content h1 { font-size: var(--vti-h1-size-tablet) !important; }
    body .vti-prose h2, body .vti-single-content h2, body .entry-content h2 { font-size: var(--vti-h2-size-tablet) !important; }
    body .vti-prose h3, body .vti-single-content h3, body .entry-content h3 { font-size: var(--vti-h3-size-tablet) !important; }
    body .vti-article-faq .vti-article-faq-title, body .vti-bons-faq .vti-bons-faq-title, body .vti-faq .vti-faq-title-heading { font-size: var(--vti-h2-size-tablet) !important; }
    body .vti-article-faq .vti-article-faq-question h3.vti-faq-question-heading, body .vti-bons-faq .vti-bons-faq-question h3.vti-faq-question-heading, body .vti-faq .vti-faq-question-heading { font-size: min(var(--vti-h3-size-tablet), 1.18rem) !important; }
}

@media (max-width:767px) {
    body .vti-prose h1, body .vti-single-content h1, body .entry-content h1 { font-size: var(--vti-h1-size-mobile) !important; }
    body .vti-prose h2, body .vti-single-content h2, body .entry-content h2 { font-size: var(--vti-h2-size-mobile) !important; }
    body .vti-prose h3, body .vti-single-content h3, body .entry-content h3 { font-size: var(--vti-h3-size-mobile) !important; }
    body .vti-article-faq .vti-article-faq-title, body .vti-bons-faq .vti-bons-faq-title, body .vti-faq .vti-faq-title-heading { font-size: var(--vti-h2-size-mobile) !important; }
    body .vti-article-faq .vti-article-faq-question h3.vti-faq-question-heading, body .vti-bons-faq .vti-bons-faq-question h3.vti-faq-question-heading, body .vti-faq .vti-faq-question-heading { font-size: min(var(--vti-h3-size-mobile), 1.08rem) !important; }
}


.vti-newsletter-section,
.vti-newsletter-banner,
.vti-home-newsletter,
.vti-newsletter-wrap{
    min-height: var(--vti-newsletter-height) !important;
}

@media (max-width: 768px){
    .vti-newsletter-section,
    .vti-newsletter-banner,
    .vti-home-newsletter,
    .vti-newsletter-wrap{
        min-height: auto !important;
    }
}


/* ======================================================
   V2.6.33 - Hauteur forcée du bandeau newsletter
   ====================================================== */
.vti-newsletter,
.vti-newsletter-section,
.vti-newsletter-banner,
.vti-home-newsletter,
.vti-newsletter-wrap{
    height: var(--vti-newsletter-height, 520px) !important;
    min-height: var(--vti-newsletter-height, 520px) !important;
    max-height: var(--vti-newsletter-height, 520px) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
}
.vti-newsletter-grid{
    height: 100% !important;
    align-items: center !important;
}
.vti-newsletter-mockup,
.vti-newsletter-visual,
.vti-newsletter-image{
    max-height: calc(var(--vti-newsletter-height, 520px) - 40px) !important;
}
.vti-newsletter-mockup-image{
    max-height: calc(var(--vti-newsletter-height, 520px) - 70px) !important;
    width: auto !important;
    object-fit: contain !important;
}
@media (max-width: 768px){
    .vti-newsletter,
    .vti-newsletter-section,
    .vti-newsletter-banner,
    .vti-home-newsletter,
    .vti-newsletter-wrap{
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
        padding-top: 2rem !important;
        padding-bottom: 2rem !important;
        overflow: visible !important;
    }
}
