/*
 * themeCig — animations.css v2.0
 * Tous les effets : scroll reveal, flip, tilt 3D, magnetic, cursor,
 * morphing bg, ripple, glitch, scramble, floating, progress bar, CF7
 */
:root {
  --anim-brown:       #1E3340;
  --anim-brown-light: #6A8A9A;
  --anim-beige:       #E8EFF3;
  --anim-ivory:       #EEF4FF;
}

/* ── 1. SCROLL REVEAL [data-anim] ── */
[data-anim] {
  opacity:0;
  transition-property:opacity,transform,filter;
  transition-timing-function:cubic-bezier(0.22,0.68,0,1.2);
  transition-duration:0.65s;
  will-change:opacity,transform;
}
[data-anim-delay="50"]  {transition-delay:.05s!important}
[data-anim-delay="100"] {transition-delay:.10s!important}
[data-anim-delay="150"] {transition-delay:.15s!important}
[data-anim-delay="200"] {transition-delay:.20s!important}
[data-anim-delay="250"] {transition-delay:.25s!important}
[data-anim-delay="300"] {transition-delay:.30s!important}
[data-anim-delay="400"] {transition-delay:.40s!important}
[data-anim-delay="500"] {transition-delay:.50s!important}
[data-anim-delay="600"] {transition-delay:.60s!important}
[data-anim="fade-up"]    {transform:translateY(45px)}
[data-anim="fade-down"]  {transform:translateY(-45px)}
[data-anim="fade-left"]  {transform:translateX(55px)}
[data-anim="fade-right"] {transform:translateX(-55px)}
[data-anim="zoom-in"]    {transform:scale(0.85)}
[data-anim="zoom-out"]   {transform:scale(1.15)}
[data-anim="flip-x"]     {transform:rotateX(30deg) translateY(30px)}
[data-anim="flip-y"]     {transform:rotateY(25deg) translateX(30px)}
[data-anim="blur-in"]    {filter:blur(12px);transform:translateY(20px)}
[data-anim].is-visible   {opacity:1!important;transform:none!important;filter:none!important}
@media(prefers-reduced-motion:reduce){[data-anim]{transition:none!important;opacity:1!important;transform:none!important;filter:none!important}}

/* ── 2. STAGGER CASCADE .tc-stagger ── */
.tc-stagger>* {
  opacity:0;transform:translateY(32px);
  transition:opacity .5s ease,transform .55s cubic-bezier(0.22,0.68,0,1.2);
}
.tc-stagger.is-visible>*:nth-child(1)  {opacity:1;transform:none;transition-delay:.04s}
.tc-stagger.is-visible>*:nth-child(2)  {opacity:1;transform:none;transition-delay:.10s}
.tc-stagger.is-visible>*:nth-child(3)  {opacity:1;transform:none;transition-delay:.16s}
.tc-stagger.is-visible>*:nth-child(4)  {opacity:1;transform:none;transition-delay:.22s}
.tc-stagger.is-visible>*:nth-child(5)  {opacity:1;transform:none;transition-delay:.28s}
.tc-stagger.is-visible>*:nth-child(6)  {opacity:1;transform:none;transition-delay:.34s}
.tc-stagger.is-visible>*:nth-child(n+7){opacity:1;transform:none;transition-delay:.40s}

/* ── 3. FLIP CARD .tc-flip-card ── */
.tc-flip-card{perspective:1100px;cursor:pointer}
.tc-flip-inner{
  position:relative;width:100%;height:100%;min-height:220px;
  transform-style:preserve-3d;
  transition:transform .65s cubic-bezier(0.4,0,0.2,1);
}
.tc-flip-card:hover .tc-flip-inner,
.tc-flip-card:focus .tc-flip-inner{transform:rotateY(180deg)}
.tc-flip-front,.tc-flip-back{
  position:absolute;inset:0;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border-radius:14px;padding:28px;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
}
.tc-flip-front{background:#fff;border:1px solid #C8D8E0}
.tc-flip-back{background:var(--anim-brown);transform:rotateY(180deg)}
.tc-flip-back h3,.tc-flip-back p,.tc-flip-back a{color:var(--anim-ivory)!important}

/* ── 4. TILT 3D .tc-tilt ── */
.tc-tilt{
  transform-style:preserve-3d;
  transition:transform .15s ease,box-shadow .2s ease!important;
  will-change:transform;
}
.tc-tilt:hover{box-shadow:0 20px 60px rgba(30,51,64,.16)!important}
.tc-tilt-shine{
  position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.12) 0%,transparent 65%);
  pointer-events:none;opacity:0;transition:opacity .2s;
}
.tc-tilt:hover .tc-tilt-shine{opacity:1}



/* ── 6. BOUTONS DÉGRADÉ + SHIMMER (+ CF7) ── */
.btn-gradient,
.wpcf7 input[type=submit],
.wpcf7-submit{
  position:relative!important;overflow:hidden!important;
  background:linear-gradient(135deg,#C4AE41 0%,#A89030 100%)!important;
  color:#ffffff!important;border:none!important;border-radius:40px!important;
  font-family:system-ui,sans-serif!important;font-weight:700!important;font-size:14px!important;
  padding:13px 30px!important;cursor:pointer!important;
  transition:transform .2s,box-shadow .2s!important;
  box-shadow:0 4px 20px rgba(196,174,65,.25)!important;
  letter-spacing:.3px!important;
}
.btn-gradient::before,
.wpcf7 input[type=submit]::before,
.wpcf7-submit::before{
  content:''!important;position:absolute!important;
  top:0!important;left:-100%!important;width:60%!important;height:100%!important;
  background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%)!important;
  transition:left .45s ease!important;pointer-events:none!important;
}
.btn-gradient:hover::before,
.wpcf7 input[type=submit]:hover::before,
.wpcf7-submit:hover::before{left:160%!important}
.btn-gradient:hover,
.wpcf7 input[type=submit]:hover,
.wpcf7-submit:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 8px 28px rgba(196,174,65,.35)!important;
}
.btn-gradient:active,
.wpcf7 input[type=submit]:active{transform:translateY(0) scale(.97)!important}

.btn-gradient-light{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--anim-ivory) 0%,#C8D8E0 100%)!important;
  color:var(--anim-brown)!important;border:none!important;border-radius:40px!important;
  font-family:system-ui,sans-serif!important;font-weight:700!important;font-size:14px!important;
  padding:13px 30px!important;cursor:pointer!important;
  transition:transform .2s,box-shadow .2s!important;
  box-shadow:0 4px 20px rgba(0,0,0,.18)!important;
}
.btn-gradient-light::before{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent);
  transition:left .4s ease;pointer-events:none;
}
.btn-gradient-light:hover::before{left:160%}
.btn-gradient-light:hover{transform:translateY(-2px)!important;box-shadow:0 8px 28px rgba(0,0,0,.22)!important}

/* ── RIPPLE au clic ── */
.tc-ripple{
  position:absolute;border-radius:50%;
  background:rgba(255,255,255,.3);
  transform:scale(0);
  animation:tcRippleAnim .55s linear;
  pointer-events:none;
}
@keyframes tcRippleAnim{to{transform:scale(4);opacity:0}}

/* ── MAGNETIC ── */
.tc-magnetic{display:inline-block;transition:transform .3s cubic-bezier(0.22,0.68,0,1.2)!important}

/* ── 7. CONTACT FORM 7 ── */
.wpcf7{font-family:system-ui,sans-serif!important}
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 input[type=url],
.wpcf7 select,
.wpcf7 textarea{
  width:100%!important;padding:12px 16px!important;
  font-size:14px!important;font-family:system-ui,sans-serif!important;
  color:#1A2830!important;background:#F4F7FB!important;
  border:1.5px solid #C8D8E0!important;border-radius:10px!important;
  outline:none!important;
  transition:border-color .18s,box-shadow .18s,transform .15s!important;
  appearance:none!important;-webkit-appearance:none!important;
}
.wpcf7 input[type=text]:focus,
.wpcf7 input[type=email]:focus,
.wpcf7 input[type=tel]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus{
  border-color:#425969!important;
  box-shadow:0 0 0 3px rgba(66,89,105,.12)!important;
  background:#fff!important;transform:translateY(-1px)!important;
}
.wpcf7 textarea{height:130px!important;resize:none!important;line-height:1.65!important}
.wpcf7 label{
  font-size:12px!important;font-weight:600!important;color:#1E3340!important;
  display:block!important;margin-bottom:6px!important;
  letter-spacing:.3px!important;transition:color .18s!important;
}
.wpcf7-not-valid-tip{
  color:#b84a2e!important;font-size:12px!important;
  margin-top:4px!important;display:block!important;
  animation:tcShake .4s ease!important;
}
.wpcf7 input.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid{
  border-color:#b84a2e!important;
  box-shadow:0 0 0 3px rgba(184,74,46,.12)!important;
}
.wpcf7-response-output{
  border-radius:10px!important;padding:12px 18px!important;
  font-size:13.5px!important;font-family:system-ui,sans-serif!important;
  margin-top:16px!important;border:none!important;
}
.wpcf7-mail-sent-ok{
  background:rgba(66,89,105,.06)!important;color:#1E3340!important;
  border-left:3px solid #425969!important;
}
.wpcf7-mail-sent-ng,.wpcf7-aborted{
  background:rgba(184,74,46,.07)!important;color:#7a2010!important;
  border-left:3px solid #b84a2e!important;
}
.wpcf7 .ajax-loader{
  display:inline-block!important;width:18px!important;height:18px!important;
  border:2px solid rgba(220,232,255,.4)!important;
  border-top-color:var(--anim-ivory)!important;border-radius:50%!important;
  animation:tcSpin .7s linear infinite!important;
  vertical-align:middle!important;margin-left:10px!important;
}
@keyframes tcSpin{to{transform:rotate(360deg)}}

/* ── 8. HOVER CARDS ── */
.tc-card-hover{
  transition:transform .28s cubic-bezier(0.22,0.68,0,1.2),box-shadow .28s ease,border-color .2s!important;
  position:relative;overflow:hidden;
}
.tc-card-hover::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#C4AE41,#A89030);
  transform:scaleX(0);transform-origin:left;transition:transform .3s ease;
}
.tc-card-hover:hover{transform:translateY(-6px)!important;box-shadow:0 16px 48px rgba(30,51,64,.12)!important}
.tc-card-hover:hover::after{transform:scaleX(1)}

/* ── 9. COUNTER ── */
.tc-counter{font-size:36px!important;font-weight:700!important;font-family:'Georgia',serif!important;color:var(--anim-brown)!important;display:inline-block!important}
.tc-counter-suffix{font-size:22px!important;font-weight:700!important;color:var(--anim-brown-light)!important;font-family:'Georgia',serif!important}

/* ── 10. GLITCH .tc-glitch ── */
.tc-glitch{position:relative;display:inline-block}
.tc-glitch::before,.tc-glitch::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}
.tc-glitch:hover::before{opacity:.7;color:var(--anim-brown-light);animation:tcGlitch1 .3s steps(2) forwards;clip-path:polygon(0 20%,100% 20%,100% 40%,0 40%)}
.tc-glitch:hover::after{opacity:.7;color:var(--anim-beige);animation:tcGlitch2 .3s steps(2) .05s forwards;clip-path:polygon(0 60%,100% 60%,100% 80%,0 80%)}
@keyframes tcGlitch1{0%{transform:translate(-3px,0)}50%{transform:translate(3px,-2px)}100%{transform:translate(0,0);opacity:0}}
@keyframes tcGlitch2{0%{transform:translate(3px,0)}50%{transform:translate(-3px,2px)}100%{transform:translate(0,0);opacity:0}}

/* ── 11. MORPHING BG .tc-morph-bg ── */
.tc-morph-bg{
  background:linear-gradient(-45deg,var(--anim-brown),#2A4455,#425969,#1E3340)!important;
  background-size:400% 400%!important;
  animation:tcMorph 10s ease infinite!important;
}
@keyframes tcMorph{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}

/* ── 12. SCROLL PROGRESS BAR ── */
#tc-progress-bar{
  position:fixed;top:0;left:0;height:3px;
  background:linear-gradient(90deg,#C4AE41,#A89030);
  width:0%;z-index:99999;transition:width .1s linear;pointer-events:none;
}

/* ── 13. FLOATING .tc-floating ── */
.tc-floating{animation:tcFloat 4s ease-in-out infinite}
.tc-floating:nth-child(2){animation-delay:-1s;animation-duration:5s}
.tc-floating:nth-child(3){animation-delay:-2s;animation-duration:3.5s}
@keyframes tcFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* ── 14. TITRE UNDERLINE ── */
.tc-title-underline{position:relative;display:inline-block}
.tc-title-underline::after{
  content:'';position:absolute;bottom:-6px;left:0;height:3px;width:0;
  background:linear-gradient(90deg,#C4AE41,#A89030);
  border-radius:2px;transition:width .65s cubic-bezier(0.22,0.68,0,1.2);
}
.tc-title-underline.is-visible::after,
.is-visible .tc-title-underline::after{width:100%}

/* ── 15. SPLIT REVEAL IMAGE ── */
.tc-split-img{clip-path:inset(0 100% 0 0);transition:clip-path .85s cubic-bezier(0.22,0.68,0,1.2)}
.tc-split-img.is-visible{clip-path:inset(0 0% 0 0)}

/* ── 16. TYPEWRITER ── */
.tc-typewriter{border-right:2px solid var(--anim-brown-light);padding-right:3px;animation:tcBlink .75s step-end infinite}
@keyframes tcBlink{from,to{border-color:transparent}50%{border-color:var(--anim-brown-light)}}

/* ── 17. PARALLAX ── */
.tc-parallax{will-change:transform}

/* ── 18. BADGE PULSE ── */
.tc-badge-pulse{position:relative;display:inline-block}
.tc-badge-pulse::before{
  content:'';position:absolute;inset:-4px;border-radius:inherit;
  background:rgba(66,89,105,.25);animation:tcPulse 2s ease-out infinite;
}
@keyframes tcPulse{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(1.4);opacity:0}}

/* ── 19. SHAKE ── */
@keyframes tcShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.tc-shake{animation:tcShake .4s ease}

/* ── 20. IMAGE ZOOM SMOOTH ── */
.tc-img-zoom{overflow:hidden!important;border-radius:inherit}
.tc-img-zoom img{transition:transform .5s cubic-bezier(0.22,0.68,0,1.2)!important;will-change:transform}
.tc-img-zoom:hover img{transform:scale(1.07)!important}

/* ── 21. LOGO FLIP HEADER ── */
.custom-logo,.navbar-brand img{transition:transform .6s cubic-bezier(0.4,0,0.2,1)!important}
.navbar-brand:hover .custom-logo,
.navbar-brand:hover img{transform:rotateY(180deg)!important}