/* =========================
   HERO CINÉMATIQUE PREMIUM
========================= */

.ts-hero-slider{
  position:relative;
  isolation:isolate;
}

.ts-slide{
  overflow:hidden;
}

.ts-slide::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 30%, rgba(255,199,44,.18), transparent 28%),
    radial-gradient(circle at 78% 24%, rgba(0,174,239,.20), transparent 30%),
    linear-gradient(90deg, rgba(8,17,32,.74), rgba(8,17,32,.36), rgba(8,17,32,.14));
  z-index:1;
  pointer-events:none;
}

.ts-slide::after{
  content:"";
  position:absolute;
  top:-40%;
  left:-25%;
  width:70%;
  height:190%;
  background:linear-gradient(115deg, transparent 0%, rgba(255,255,255,.04) 38%, rgba(255,255,255,.22) 50%, rgba(255,255,255,.04) 62%, transparent 100%);
  transform:rotate(14deg);
  z-index:2;
  animation:tsHeroLight 7s ease-in-out infinite;
  pointer-events:none;
}

.ts-slide.active{
  animation:tsHeroZoom 8s ease forwards;
}

.ts-slide-content{
  z-index:4 !important;
  transform:translateY(14px);
  animation:tsHeroContentIn .9s ease forwards;
}

.ts-slide-badge{
  animation:tsHeroFadeUp .65s ease .1s both;
}

.ts-slide-title{
  animation:tsHeroFadeUp .75s ease .22s both;
}

.ts-slide-description{
  animation:tsHeroFadeUp .75s ease .34s both;
}

.ts-hero-actions{
  animation:tsHeroFadeUp .75s ease .46s both;
}

.ts-btn-primary{
  background:linear-gradient(135deg,#00A651,#00AEEF) !important;
  box-shadow:0 22px 55px rgba(0,174,239,.28) !important;
}

.ts-btn-secondary{
  background:rgba(255,255,255,.14) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.25) !important;
}

@keyframes tsHeroLight{
  0%{ transform:translateX(-60%) rotate(14deg); opacity:0; }
  25%{ opacity:.7; }
  100%{ transform:translateX(230%) rotate(14deg); opacity:0; }
}

@keyframes tsHeroFadeUp{
  from{ opacity:0; transform:translateY(28px); filter:blur(8px); }
  to{ opacity:1; transform:translateY(0); filter:blur(0); }
}

@keyframes tsHeroContentIn{
  to{ transform:translateY(0); }
}

@keyframes tsHeroZoom{
  from{ background-size:100%; }
  to{ background-size:108%; }
}

@media(max-width:768px){
  .ts-slide-title{
    font-size:34px !important;
  }

  .ts-slide-description{
    font-size:16px !important;
  }

  .ts-hero-actions a{
    min-width:220px !important;
  }
}

/* =========================
   STATS PREMIUM
========================= */

.ts-stats-section{
  position:relative !important;
  margin-top:-70px !important;
  padding:0 0 90px !important;
  background:transparent !important;
  z-index:10 !important;
}

.ts-stats-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:22px !important;
}

.ts-stat-card{
  position:relative !important;
  overflow:hidden !important;
  min-height:190px !important;
  border-radius:32px !important;
  padding:34px 26px !important;
  background:rgba(255,255,255,.86) !important;
  backdrop-filter:blur(20px) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  box-shadow:0 24px 70px rgba(8,17,32,.16) !important;
}

.ts-stat-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top right, rgba(0,174,239,.20), transparent 34%),
    radial-gradient(circle at bottom left, rgba(255,199,44,.18), transparent 34%);
  opacity:.9;
  pointer-events:none;
}

.ts-stat-card h3,
.ts-stat-card p{
  position:relative;
  z-index:2;
}

.ts-stat-card h3{
  font-size:66px !important;
  font-weight:950 !important;
  line-height:1 !important;
  background:linear-gradient(135deg,#5B2C83,#00AEEF,#00A651) !important;
  -webkit-background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
}

.ts-stat-card p{
  margin-top:16px !important;
  font-size:16px !important;
  font-weight:900 !important;
  color:#081120 !important;
}

.ts-stat-card:hover{
  transform:translateY(-10px) scale(1.02) !important;
  box-shadow:0 34px 90px rgba(8,17,32,.22) !important;
}

@media(max-width:900px){
  .ts-stats-section{
    margin-top:0 !important;
    padding:60px 0 !important;
  }

  .ts-stats-grid{
    grid-template-columns:repeat(2,1fr) !important;
  }
}

@media(max-width:640px){
  .ts-stats-grid{
    grid-template-columns:1fr !important;
  }

  .ts-stat-card h3{
    font-size:54px !important;
  }
}

/* =========================
   ACCÈS RAPIDE PREMIUM
========================= */

.ts-home-links{
  position:relative !important;
  padding:110px 0 !important;
  background:#ffffff !important;
  overflow:hidden !important;
}

.ts-home-links::before{
  content:"";
  position:absolute;
  top:80px;
  right:-160px;
  width:420px;
  height:420px;
  border-radius:50%;
  background:rgba(0,174,239,.10);
  filter:blur(80px);
}

.ts-home-links-header{
  position:relative;
  z-index:2;
  max-width:760px;
}

.ts-home-links-header span{
  color:#0386A9 !important;
}

.ts-home-links-grid{
  position:relative;
  z-index:2;
  gap:28px !important;
}

.ts-home-link-card{
  min-height:270px !important;
  border-radius:34px !important;
  padding:34px !important;
  overflow:hidden !important;
  transform:translateY(0);
  box-shadow:0 28px 70px rgba(15,23,42,.14) !important;
}

.ts-home-link-card::before{
  opacity:1 !important;
}

.ts-home-link-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.32), transparent 34%),
    linear-gradient(180deg, transparent 0%, rgba(0,0,0,.18) 100%);
  z-index:1;
  pointer-events:none;
}

.ts-home-link-card:hover{
  transform:translateY(-12px) scale(1.015) !important;
  box-shadow:0 38px 90px rgba(15,23,42,.22) !important;
}

.ts-home-link-card h3{
  font-size:40px !important;
}

.ts-home-link-card p{
  font-size:16px !important;
  line-height:1.7 !important;
}

.ts-home-link-card.metiers::before{
  background:linear-gradient(135deg,#5B2C83,#402966) !important;
}

.ts-home-link-card.finale::before{
  background:linear-gradient(135deg,#00A651,#0386A9) !important;
}

.ts-home-link-card.actualites::before{
  background:linear-gradient(135deg,#0386A9,#00AEEF) !important;
}

/* =========================
   PARTENAIRES PREMIUM
========================= */

.ts-partenaires-section{
  position:relative !important;
  padding:120px 0 !important;
  background:#f8fafc !important;
  overflow:hidden !important;
}

.ts-partenaires-section::before{
  content:"";
  position:absolute;
  left:-180px;
  top:80px;
  width:420px;
  height:420px;
  border-radius:50%;
  background:rgba(91,44,131,.10);
  filter:blur(90px);
}

.ts-partenaires-header{
  position:relative;
  z-index:2;
}

.ts-partenaires-header span{
  color:#0386A9 !important;
}

.ts-partenaire-logo{
  background:#ffffff !important;
  border-radius:28px !important;
  box-shadow:0 18px 45px rgba(15,23,42,.08) !important;
  border:1px solid rgba(15,23,42,.06) !important;
}

.ts-partenaire-logo img{
  filter:none !important;
  opacity:1 !important;
}

.ts-partenaire-logo:hover{
  transform:translateY(-10px) scale(1.04) !important;
  box-shadow:0 30px 80px rgba(15,23,42,.16) !important;
}

/* =========================
   VIDÉOS PREMIUM
========================= */

.ts-videos-section{
  position:relative !important;
  padding:120px 0 !important;
  background:#081120 !important;
  overflow:hidden !important;
}

.ts-videos-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(0,174,239,.22), transparent 32%),
    radial-gradient(circle at 85% 10%, rgba(255,199,44,.14), transparent 28%);
  pointer-events:none;
}

.ts-videos-header{
  position:relative;
  z-index:2;
}

.ts-videos-header span{
  color:#FFC72C !important;
}

.ts-videos-header h2{
  color:#ffffff !important;
}

.ts-videos-header p{
  background:rgba(255,255,255,.08) !important;
  color:rgba(255,255,255,.82) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  backdrop-filter:blur(18px) !important;
}

.ts-videos-grid{
  position:relative;
  z-index:2;
}

.ts-video-card{
  background:#ffffff !important;
  border-radius:34px !important;
  overflow:hidden !important;
  box-shadow:0 30px 80px rgba(0,0,0,.28) !important;
}

.ts-video-thumb{
  height:250px !important;
}

.ts-video-play{
  background:#F58220 !important;
  border-radius:50% !important;
  width:68px !important;
  height:68px !important;
  box-shadow:0 18px 50px rgba(245,130,32,.35) !important;
}

.ts-video-card:hover{
  transform:translateY(-12px) scale(1.015) !important;
}

/* =========================
   LAURÉATS PREMIUM
========================= */

.ts-laureats-section{
  position:relative !important;
  padding:120px 0 !important;
  background:#ffffff !important;
  overflow:hidden !important;
}

.ts-laureats-section::before{
  content:"";
  position:absolute;
  top:80px;
  right:-160px;
  width:460px;
  height:460px;
  border-radius:50%;
  background:rgba(0,174,239,.10);
  filter:blur(90px);
}

.ts-laureats-header{
  position:relative;
  z-index:2;
}

.ts-laureats-header span{
  background:rgba(0,166,81,.10) !important;
  color:#00A651 !important;
}

.ts-laureats-header h2{
  color:#081120 !important;
}

.ts-laureats-filters{
  position:relative;
  z-index:2;
}

.ts-laureats-filters button{
  background:#ffffff !important;
  border:1px solid rgba(15,23,42,.08) !important;
  box-shadow:0 12px 28px rgba(15,23,42,.06) !important;
}

.ts-laureats-filters button.active{
  background:linear-gradient(135deg,#5B2C83,#00AEEF) !important;
  color:#ffffff !important;
  box-shadow:0 18px 42px rgba(0,174,239,.22) !important;
}

.ts-laureats-grid{
  position:relative;
  z-index:2;
}

.ts-laureat-card{
  border-radius:30px !important;
  box-shadow:0 24px 60px rgba(15,23,42,.12) !important;
  border:1px solid rgba(15,23,42,.06) !important;
}

.ts-laureat-card img{
  height:340px !important;
}

.ts-laureat-card:hover{
  transform:translateY(-10px) scale(1.018) !important;
  box-shadow:0 36px 90px rgba(15,23,42,.18) !important;
}

/* =========================
   GALERIE TERANGASKILLS
========================= */

.ts-gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:28px;

  margin-top:60px;
}

.ts-gallery-card{
  border-radius:26px;
  overflow:hidden;

  background:#ffffff;

  box-shadow:0 18px 50px rgba(15,23,42,.10);

  transition:all .35s ease;
}

.ts-gallery-card:hover{
  transform:translateY(-8px);
  box-shadow:0 28px 70px rgba(15,23,42,.16);
}

.ts-gallery-card img{
  width:100%;
  height:260px;

  object-fit:cover;

  display:block;

  transition:transform .5s ease;
}

.ts-gallery-card:hover img{
  transform:scale(1.05);
}

.ts-gallery-caption{
  padding:20px;
}

.ts-gallery-caption h3{
  font-size:20px;
  margin-bottom:10px;
}

.ts-gallery-caption p{
  font-size:15px;
  line-height:1.7;
  color:#475569;
}

/* GALERIE — VERSION CORRIGÉE */

.ts-gallery-page{
  background:#ffffff;
}

.ts-gallery-hero{
  padding:90px 0 40px;
}

.ts-gallery-container{
  width:min(1180px, calc(100% - 40px));
  margin:0 auto;
}

.ts-gallery-grid{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  gap:28px !important;
  margin-top:40px !important;
}

.ts-gallery-card{
  background:#ffffff !important;
  border-radius:26px !important;
  overflow:hidden !important;
  box-shadow:0 18px 45px rgba(15,23,42,.10) !important;
  border:1px solid rgba(15,23,42,.06) !important;
}

.ts-gallery-card a{
  display:block !important;
  height:230px !important;
  overflow:hidden !important;
}

.ts-gallery-card img{
  width:100% !important;
  height:230px !important;
  object-fit:cover !important;
  display:block !important;
}

.ts-gallery-caption{
  padding:18px 20px 22px !important;
}

.ts-gallery-caption h3{
  margin:0 !important;
  font-size:18px !important;
  line-height:1.25 !important;
  font-weight:900 !important;
  color:#0f172a !important;
}

.ts-gallery-caption p{
  margin:10px 0 0 !important;
  font-size:14px !important;
  color:#64748b !important;
}

@media(max-width:1000px){
  .ts-gallery-grid{
    grid-template-columns:repeat(2, 1fr) !important;
  }
}

@media(max-width:640px){
  .ts-gallery-grid{
    grid-template-columns:1fr !important;
  }

  .ts-gallery-card a,
  .ts-gallery-card img{
    height:220px !important;
  }
}