/* LTC Titre Moderne — Élégance professionnelle */

.ltc-tm{
    --tm-text:#1a1a1a;
    --tm-text-light:#6b6b70;
    --tm-primary:#1679BE;
    --tm-secondary:#000000;
    /* Compat anciennes variables */
    --tm-blue:#1a1a1a;
    --tm-orange:#1679BE;
    --tm-orange-light:#000000;
    --tm-green:#000000;
    --tm-dur:900ms;
    --tm-delay:0ms;
    position:relative;
    padding:24px 0;
}

/* EYEBROW */
.ltc-tm__eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:12px;
    font-weight:600;
    letter-spacing:1.8px;
    text-transform:uppercase;
    line-height:1;
}

.ltc-tm__eyebrow-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    line-height:1;
}
.ltc-tm__eyebrow-icon i,
.ltc-tm__eyebrow-icon svg{
    width:1em;
    height:1em;
    font-size:inherit;
}

/* Eyebrow Pill avec gradient animé */
.ltc-tm__eyebrow--pill{
    --tm-eb-from:var(--tm-primary);
    --tm-eb-to:var(--tm-secondary);
    background:linear-gradient(135deg, var(--tm-eb-from) 0%, var(--tm-eb-to) 100%);
    background-size:200% 200%;
    color:#fff;
    padding:10px 22px;
    border-radius:999px;
    box-shadow:0 6px 20px rgba(22,121,190,0.32), inset 0 1px 0 rgba(255,255,255,0.20);
    animation:ltcTmPillGradient 5s ease infinite;
}
@keyframes ltcTmPillGradient{
    0%,100%{background-position:0% 50%;}
    50%{background-position:100% 50%;}
}
.ltc-tm__eyebrow--pill::before{
    content:'';
    width:6px;height:6px;
    background:#fff;
    border-radius:50%;
    box-shadow:0 0 0 4px rgba(255,255,255,0.25);
    animation:ltcTmPulse 2s ease-in-out infinite;
}
@keyframes ltcTmPulse{
    0%,100%{box-shadow:0 0 0 4px rgba(255,255,255,0.25);}
    50%{box-shadow:0 0 0 8px rgba(255,255,255,0.10);}
}

/* Eyebrow Line — trait à gauche */
.ltc-tm__eyebrow--line{
    color:var(--tm-primary);
    padding-left:60px;
    position:relative;
}
.ltc-tm__eyebrow--line::before{
    content:'';
    position:absolute;
    left:0;top:50%;
    transform:translateY(-50%);
    width:48px;height:2px;
    background:linear-gradient(90deg, var(--tm-primary) 0%, var(--tm-secondary) 100%);
    border-radius:2px;
}

/* Eyebrow Plain */
.ltc-tm__eyebrow--plain{color:var(--tm-primary);}

.ltc-tm[style*="text-align:center"] .ltc-tm__eyebrow,
.ltc-tm[style*="text-align: center"] .ltc-tm__eyebrow{
    margin-left:auto;
    margin-right:auto;
}

/* TITRE BASE */
.ltc-tm__title{
    margin:0 0 18px;
    font-size:48px;
    font-weight:700;
    line-height:1.15;
    letter-spacing:-0.025em;
    color:var(--tm-text);
}

.ltc-tm--nowrap .ltc-tm__title{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* STYLES DE DESIGN */

/* Gradient (texte foncé clipped) */
.ltc-tm--gradient .ltc-tm__title{
    background:linear-gradient(135deg, var(--tm-text) 0%, var(--tm-secondary) 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:transparent;
}

/* Gradient 2 (rouge → gris animé) */
.ltc-tm--gradient2 .ltc-tm__title{
    background:linear-gradient(135deg, var(--tm-primary) 0%, var(--tm-secondary) 100%);
    background-size:200% 200%;
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:transparent;
    animation:ltcTmTitleGradient 6s ease infinite;
}
@keyframes ltcTmTitleGradient{
    0%,100%{background-position:0% 50%;}
    50%{background-position:100% 50%;}
}

/* Split — partie en couleur */
.ltc-tm--split .ltc-tm__title{color:var(--tm-text);}
.ltc-tm--split .ltc-tm__highlight{color:var(--tm-primary);}

/* Outline */
.ltc-tm--outline .ltc-tm__title{
    color:transparent;
    -webkit-text-stroke:2px var(--tm-text);
    text-stroke:2px var(--tm-text);
}
.ltc-tm--outline .ltc-tm__highlight{
    color:var(--tm-primary);
    -webkit-text-stroke:0;
    text-stroke:0;
}

/* Underline animé */
.ltc-tm--underline .ltc-tm__title{
    color:var(--tm-text);
    display:inline-block;
    position:relative;
}
.ltc-tm--underline .ltc-tm__title::after{
    content:'';
    position:absolute;
    left:0;bottom:-10px;
    height:3px;
    width:0;
    background:linear-gradient(90deg, var(--tm-primary) 0%, var(--tm-secondary) 100%);
    background-size:200% 100%;
    border-radius:999px;
    transition:width 1.2s cubic-bezier(.25,.8,.25,1) 600ms;
    box-shadow:0 4px 12px rgba(22,121,190,0.28);
    animation:ltcTmUnderlineGradient 4s ease infinite;
}
@keyframes ltcTmUnderlineGradient{
    0%,100%{background-position:0% 50%;}
    50%{background-position:100% 50%;}
}
.ltc-tm--underline.is-animating .ltc-tm__title::after{width:100%;}
.ltc-tm--underline:not(.ltc-tm--pre-anim) .ltc-tm__title::after{width:100%;}
.ltc-tm[style*="text-align:center"] .ltc-tm--underline .ltc-tm__title::after,
.ltc-tm[style*="text-align: center"] .ltc-tm--underline .ltc-tm__title::after{
    left:50%;
    transform:translateX(-50%);
}

/* Highlight (surligné comme un marqueur) */
.ltc-tm--highlight .ltc-tm__title{color:var(--tm-text);}
.ltc-tm--highlight .ltc-tm__highlight{
    background:linear-gradient(120deg, transparent 0%, transparent 10%,
                rgba(22,121,190,0.20) 10%, rgba(0,0,0,0.25) 90%,
                transparent 90%, transparent 100%);
    padding:0 0.15em;
    background-size:100% 60%;
    background-repeat:no-repeat;
    background-position:0 75%;
    color:var(--tm-text);
    font-weight:700;
}

/* Solid */
.ltc-tm--solid .ltc-tm__title{color:var(--tm-text);}

/* SUBTITLE */
.ltc-tm__subtitle{
    margin:0;
    font-size:17px;
    color:var(--tm-text-light);
    line-height:1.7;
    font-weight:400;
    max-width:640px;
}
.ltc-tm[style*="text-align:center"] .ltc-tm__subtitle,
.ltc-tm[style*="text-align: center"] .ltc-tm__subtitle{
    margin-left:auto;
    margin-right:auto;
}

/* ANIMATIONS — état initial via JS (.ltc-tm--pre-anim) */
.ltc-tm--pre-anim .ltc-tm__eyebrow,
.ltc-tm--pre-anim .ltc-tm__title,
.ltc-tm--pre-anim .ltc-tm__subtitle{
    opacity:0;
    will-change:transform, opacity, filter;
    transition:opacity var(--tm-dur) cubic-bezier(.25,.8,.25,1),
                transform var(--tm-dur) cubic-bezier(.25,.8,.25,1),
                filter var(--tm-dur) cubic-bezier(.25,.8,.25,1);
}

.ltc-tm--pre-anim.ltc-tm--anim-fade-up .ltc-tm__eyebrow,
.ltc-tm--pre-anim.ltc-tm--anim-fade-up .ltc-tm__title,
.ltc-tm--pre-anim.ltc-tm--anim-fade-up .ltc-tm__subtitle{transform:translateY(30px);}

.ltc-tm--pre-anim.ltc-tm--anim-slide-right .ltc-tm__eyebrow,
.ltc-tm--pre-anim.ltc-tm--anim-slide-right .ltc-tm__title,
.ltc-tm--pre-anim.ltc-tm--anim-slide-right .ltc-tm__subtitle{transform:translateX(-40px);}

.ltc-tm--pre-anim.ltc-tm--anim-slide-left .ltc-tm__eyebrow,
.ltc-tm--pre-anim.ltc-tm--anim-slide-left .ltc-tm__title,
.ltc-tm--pre-anim.ltc-tm--anim-slide-left .ltc-tm__subtitle{transform:translateX(40px);}

.ltc-tm--pre-anim.ltc-tm--anim-blur-in .ltc-tm__eyebrow,
.ltc-tm--pre-anim.ltc-tm--anim-blur-in .ltc-tm__title,
.ltc-tm--pre-anim.ltc-tm--anim-blur-in .ltc-tm__subtitle{
    filter:blur(20px);
    transform:scale(1.05);
}

.ltc-tm--pre-anim.ltc-tm--anim-zoom-in .ltc-tm__eyebrow,
.ltc-tm--pre-anim.ltc-tm--anim-zoom-in .ltc-tm__title,
.ltc-tm--pre-anim.ltc-tm--anim-zoom-in .ltc-tm__subtitle{transform:scale(0.7);}

/* Reveal — masque qui passe */
.ltc-tm--anim-reveal .ltc-tm__title{
    position:relative;
    overflow:hidden;
    display:inline-block;
}
.ltc-tm--pre-anim.ltc-tm--anim-reveal .ltc-tm__title::before{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, var(--tm-primary) 0%, var(--tm-secondary) 100%);
    transform:translateX(0);
    transition:transform var(--tm-dur) cubic-bezier(.76,0,.24,1);
    z-index:2;
}
.ltc-tm--pre-anim.ltc-tm--anim-reveal.is-animating .ltc-tm__title::before{
    transform:translateX(100%);
}
.ltc-tm--pre-anim.ltc-tm--anim-reveal .ltc-tm__eyebrow,
.ltc-tm--pre-anim.ltc-tm--anim-reveal .ltc-tm__subtitle{transform:translateY(20px);}

/* Typewriter */
.ltc-tm--pre-anim.ltc-tm--anim-typewriter .ltc-tm__title{
    opacity:1;
    display:inline-block;
    white-space:nowrap;
    overflow:hidden;
    border-right:3px solid var(--tm-primary);
    width:0;
    max-width:100%;
}
.ltc-tm--pre-anim.ltc-tm--anim-typewriter.is-animating .ltc-tm__title{
    animation:ltcTmTypewriter var(--tm-dur) steps(var(--tm-tw-steps, 20), end) var(--tm-delay) forwards,
               ltcTmCaret 0.7s step-end infinite var(--tm-delay);
}
@keyframes ltcTmTypewriter{from{width:0;}to{width:var(--tm-tw-width, 100%);}}
@keyframes ltcTmCaret{50%{border-color:transparent;}}
.ltc-tm--pre-anim.ltc-tm--anim-typewriter .ltc-tm__eyebrow,
.ltc-tm--pre-anim.ltc-tm--anim-typewriter .ltc-tm__subtitle{transform:translateY(20px);}

/* État final : is-animating fait jouer l'animation vers visible */
.ltc-tm--pre-anim.is-animating .ltc-tm__eyebrow,
.ltc-tm--pre-anim.is-animating .ltc-tm__title,
.ltc-tm--pre-anim.is-animating .ltc-tm__subtitle{
    opacity:1;
    transform:none;
    filter:none;
}

/* Stagger — apparition séquentielle */
.ltc-tm--pre-anim.ltc-tm--stagger .ltc-tm__eyebrow{transition-delay:calc(var(--tm-delay) + 0ms);}
.ltc-tm--pre-anim.ltc-tm--stagger .ltc-tm__title{transition-delay:calc(var(--tm-delay) + 150ms);}
.ltc-tm--pre-anim.ltc-tm--stagger .ltc-tm__subtitle{transition-delay:calc(var(--tm-delay) + 300ms);}

.ltc-tm--pre-anim:not(.ltc-tm--stagger) .ltc-tm__eyebrow,
.ltc-tm--pre-anim:not(.ltc-tm--stagger) .ltc-tm__title,
.ltc-tm--pre-anim:not(.ltc-tm--stagger) .ltc-tm__subtitle{
    transition-delay:var(--tm-delay);
}

/* RESPONSIVE */
@media (max-width:768px){
    .ltc-tm{padding:18px 0;}
    .ltc-tm__eyebrow{font-size:11px;letter-spacing:1.2px;}
    .ltc-tm__eyebrow--pill{padding:8px 16px;}
    .ltc-tm__title{letter-spacing:-0.015em;}
    .ltc-tm__subtitle{font-size:15.5px;}
}
@media (max-width:480px){
    .ltc-tm--nowrap .ltc-tm__title{white-space:normal;}
}

/* Préférences réduction des animations */
@media (prefers-reduced-motion:reduce){
    .ltc-tm--pre-anim .ltc-tm__eyebrow,
    .ltc-tm--pre-anim .ltc-tm__title,
    .ltc-tm--pre-anim .ltc-tm__subtitle{
        transition:none !important;
        opacity:1 !important;
        transform:none !important;
        filter:none !important;
    }
    .ltc-tm--anim-typewriter .ltc-tm__title{
        width:auto !important;
        animation:none !important;
        border-right:none !important;
    }
}

/* ╔══════════════════════════════════════════════════════════╗
   ║ NOUVEAUX STYLES DESIGN (v2.0.0)                           ║
   ╚══════════════════════════════════════════════════════════╝ */

/* GLITCH — effet décalé moderne, le titre vibre légèrement */
.ltc-tm--glitch .ltc-tm__title{
    color:var(--tm-blue, #0f0f10);
    position:relative;
    display:inline-block;
}
.ltc-tm--glitch .ltc-tm__title::before,
.ltc-tm--glitch .ltc-tm__title::after{
    content:attr(data-text);
    position:absolute;
    top:0; left:0;
    width:100%; height:100%;
    pointer-events:none;
}
.ltc-tm--glitch .ltc-tm__title::before{
    color:var(--tm-orange, #1679BE);
    z-index:-1;
    animation:ltcTmGlitch1 3.5s ease-in-out infinite;
    mix-blend-mode:multiply;
    opacity:0.85;
}
.ltc-tm--glitch .ltc-tm__title::after{
    color:var(--tm-orange-light, #000000);
    z-index:-2;
    animation:ltcTmGlitch2 4s ease-in-out infinite;
    mix-blend-mode:multiply;
    opacity:0.7;
}
@keyframes ltcTmGlitch1{
    0%,90%,100%{transform:translate(0,0);}
    10%{transform:translate(-2px,1px);}
    20%{transform:translate(3px,-1px);}
    30%{transform:translate(-1px,2px);}
}
@keyframes ltcTmGlitch2{
    0%,90%,100%{transform:translate(0,0);}
    15%{transform:translate(2px,-1px);}
    25%{transform:translate(-3px,1px);}
    35%{transform:translate(1px,-2px);}
}

/* NEON — texte avec glow lumineux */
.ltc-tm--neon .ltc-tm__title{
    color:#fff;
    text-shadow:
        0 0 6px var(--tm-orange, #1679BE),
        0 0 14px var(--tm-orange, #1679BE),
        0 0 28px var(--tm-orange, #1679BE),
        0 0 56px rgba(22,121,190,0.50);
    animation:ltcTmNeonPulse 2.5s ease-in-out infinite;
}
@keyframes ltcTmNeonPulse{
    0%,100%{
        text-shadow:
            0 0 6px var(--tm-orange, #1679BE),
            0 0 14px var(--tm-orange, #1679BE),
            0 0 28px var(--tm-orange, #1679BE),
            0 0 56px rgba(22,121,190,0.50);
    }
    50%{
        text-shadow:
            0 0 8px var(--tm-orange, #1679BE),
            0 0 18px var(--tm-orange, #1679BE),
            0 0 36px var(--tm-orange, #1679BE),
            0 0 72px rgba(22,121,190,0.70);
    }
}

/* FRAME — ornement décoratif (lignes avant/après) */
.ltc-tm--frame .ltc-tm__title{
    color:var(--tm-blue, #0f0f10);
    display:inline-block;
    position:relative;
    padding:0 24px;
}
.ltc-tm--frame .ltc-tm__title::before,
.ltc-tm--frame .ltc-tm__title::after{
    content:'';
    position:absolute;
    top:50%;
    width:60px;
    height:2px;
    background:linear-gradient(90deg, transparent 0%, var(--tm-orange, #1679BE) 50%, transparent 100%);
    pointer-events:none;
}
.ltc-tm--frame .ltc-tm__title::before{
    right:100%;
    margin-right:18px;
}
.ltc-tm--frame .ltc-tm__title::after{
    left:100%;
    margin-left:18px;
}
@media(max-width:640px){
    .ltc-tm--frame .ltc-tm__title::before,
    .ltc-tm--frame .ltc-tm__title::after{width:30px;}
}

/* SHADOW — texte avec ombre projetée moderne */
.ltc-tm--shadow .ltc-tm__title{
    color:var(--tm-blue, #0f0f10);
    text-shadow:
        4px 4px 0 var(--tm-orange-light, #000000),
        8px 8px 24px rgba(0,0,0,0.10);
}

/* ╔══════════════════════════════════════════════════════════╗
   ║ NOUVEAUX STYLES EYEBROW (v2.0.0)                          ║
   ╚══════════════════════════════════════════════════════════╝ */

/* BADGE — bordure outline rouge */
.ltc-tm__eyebrow--badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:6px 14px;
    background:rgba(22,121,190,0.04);
    color:var(--tm-orange, #1679BE);
    border:1.5px solid var(--tm-orange, #1679BE);
    border-radius:999px;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:1.5px;
    text-transform:uppercase;
    margin-bottom:18px;
}
.ltc-tm__eyebrow--badge .ltc-tm__eyebrow-icon{font-size:11px;}

/* BRACKET — avec crochets décoratifs ⟨ texte ⟩ */
.ltc-tm__eyebrow--bracket{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--tm-orange, #1679BE);
    font-size:12px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    margin-bottom:18px;
    position:relative;
    padding:4px 0;
}
.ltc-tm__eyebrow--bracket::before,
.ltc-tm__eyebrow--bracket::after{
    content:'';
    width:14px;
    height:14px;
    border:2px solid currentColor;
    flex-shrink:0;
}
.ltc-tm__eyebrow--bracket::before{
    border-right:none;
    border-bottom:none;
}
.ltc-tm__eyebrow--bracket::after{
    border-left:none;
    border-top:none;
}
.ltc-tm__eyebrow--bracket .ltc-tm__eyebrow-icon{font-size:12px;}

/* MINIMAL — pas de fond, lettrespacing élevé */
.ltc-tm__eyebrow--minimal{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--tm-orange, #1679BE);
    font-size:11px;
    font-weight:700;
    letter-spacing:4px;
    text-transform:uppercase;
    margin-bottom:18px;
    padding:0;
    position:relative;
}
.ltc-tm__eyebrow--minimal::after{
    content:'';
    display:inline-block;
    width:32px;
    height:1px;
    background:currentColor;
    margin-left:4px;
}
.ltc-tm__eyebrow--minimal .ltc-tm__eyebrow-icon{font-size:11px;}

/* ╔══════════════════════════════════════════════════════════╗
   ║ OMBRES PORTÉES DU TITRE (v2.1)                            ║
   ║ Pour améliorer la lisibilité sur fond image/sombre/clair  ║
   ╚══════════════════════════════════════════════════════════╝ */

.ltc-tm--shadow-soft .ltc-tm__title{
    text-shadow:0 2px 8px rgba(0,0,0,0.35), 0 4px 16px rgba(0,0,0,0.2);
}

.ltc-tm--shadow-strong .ltc-tm__title{
    text-shadow:0 3px 12px rgba(0,0,0,0.65), 0 6px 24px rgba(0,0,0,0.4), 0 0 4px rgba(0,0,0,0.3);
}

.ltc-tm--shadow-glow .ltc-tm__title{
    text-shadow:0 0 16px rgba(255,255,255,0.55), 0 0 32px rgba(255,255,255,0.30), 0 2px 8px rgba(0,0,0,0.30);
}

.ltc-tm--shadow-glow-dark .ltc-tm__title{
    text-shadow:0 0 20px rgba(0,0,0,0.45), 0 0 40px rgba(0,0,0,0.25), 0 2px 6px rgba(255,255,255,0.10);
}
