/*
 Theme Name:     IPSSI Child
 Theme URI:      http://ecole-ipssia.com/
 Description:    IPSSI Child Theme
 Author:         Victor DARCEL
 Author URI:     https://digitalproject.com
 Template:       IPSSI
 Version:        1.0.0
*/
.align-cleft{justify-content: left!important;}
.advisers-sec{margin-bottom: 120px;}
a{cursor: pointer!important; color:#150ED2;}
.checkbox-wrap label{font-weight: 400!important; font-size: 1rem!important;}
.nf-form-fields-required{font-size: .8rem;}
input.nf-previous{font-size: .9rem!important; color: #777!important; align-items: center!important; justify-content: center!important; cursor: pointer!important; font-weight: 700!important; text-decoration: auto!important; background: transparent!important;    border-bottom: 2px solid rgb(119 119 119) !important!important; padding: 0 0 4px!important;}
input.nf-next{font-size: 1rem!important; border: 2px solid #150ED2!important; color: #150ED2!important; border-radius: 4px!important; padding: 0 10px!important; height: 35px!important; align-items: center!important; justify-content: center!important; cursor: pointer!important; font-weight: 700!important; background: transparent!important;}
input.nf-next:hover{color: #fff!important; background: #150ED2!important; cursor: pointer!important;}
.highcharts-figure{margin-top: 21%;}
.focus-table{color: #150ED2; text-align: center;}
.nf-row{padding: 0!important;}
.accordion {box-shadow: 0 40px 35px -20px rgba(0, 4, 75, 0.11); border-radius: 1rem;}
#offCanvasRightSplit2{z-index: 9999!important;}
table tbody td .notabene{line-height: 1rem !important; margin: 0; padding: .5rem 0; font-size: .7rem;}
table tbody td, table tbody th{font-size: 1rem;padding: 0.5rem 0.5rem;}
h1,h2,h3{letter-spacing: -.15rem!important;}
.learn-places-info ol, ul, .pedagogy-wrap{list-style: none!important; margin: 1rem 0 2rem;}
.learn-places-info ul li:before, .pedagogy-wrap ul li:before{content:"- "!important;}
.learn-places-info ul li, .pedagogy-wrap ul li{color:#b6becd!important;line-height: 1.55rem;}

.dark-theme #campus_address p{margin-bottom: 0;}
.dark-theme #campus_address address span{color:#b6becd;font-weight: 400;}
@media print,
screen and (min-width:40em) {
    .learn-places-bot .row .columns{ padding: .9375rem; }
}
@media screen and (max-width: 1023px){
    .dropdown.menu > li {margin: 0px 7px;}
    header img{width: 20vw; max-width: 100px; min-width: 90px;}
}

@media screen and (max-width: 767px){
    .header-right a.header_cta{margin-right: 20px; padding: 0px 16px; height: 34px; line-height: 33px; display: table; }
    .header-right span {width: 40px; height: 30px; background-size: 100% auto; }
    .wp-block-yoast-faq-block {max-width: 90%; margin: 0 auto;}
}
h1.wp-block-heading, h2.wp-block-heading, h3.wp-block-heading{max-width: 80%; margin: 0 auto;}

/* STYLE FAQ Yoast colors & borders */
.wp-block-yoast-faq-block {max-width: 80%; margin: 0 auto;}
.wp-block-yoast-faq-block .schema-faq-section {
    border-radius: 10px;
    padding: 0 15px 0 15px;
    position: relative;
    border: 1px solid #ccc;
    background:#141d2d;
}
.wp-block-yoast-faq-block .schema-faq-question, .wp-block-yoast-faq-block .schema-faq-answer strong{color:#f1f0ff;}
.wp-block-yoast-faq-block .schema-faq-question:hover,.wp-block-yoast-faq-block .fcp-opened .schema-faq-question {background: #304800;}
.wp-block-yoast-faq-block .schema-faq-answer,.wp-block-yoast-faq-block .fcp-opened .schema-faq-answer { }

/* layout */
.wp-block-yoast-faq-block .schema-faq-question {
    display:block;
    padding:10px;
    position:relative;
}
.wp-block-yoast-faq-block.fcp-faq .schema-faq-question {
    cursor:pointer;
}
.wp-block-yoast-faq-block .schema-faq-answer {
    margin:0;
    padding:12px 10px;
    color: #b6becd;
}
.wp-block-yoast-faq-block .schema-faq-answer a {color: #bbff34;}

/* bullet before a question */
.wp-block-yoast-faq-block .schema-faq-question:before {
    /* position gap */
    margin-top:-2px;
}
.wp-block-yoast-faq-block .schema-faq-question,
.wp-block-yoast-faq-block .schema-faq-answer {
    padding-left:34px;
}
.wp-block-yoast-faq-block .schema-faq-question:before {
    content:'';
    display:block;
    border:2px solid #dedede;
    border-width:0px 2px 2px 0px;
    width:9px;
    height:9px;
    box-sizing:border-box;
    position:absolute;
    left:14px;
}
.wp-block-yoast-faq-block.fcp-faq .schema-faq-question:before {
    top: 22px !important;
    transform:rotate(-45deg);
    transition:all 0.3s 0.3s ease;
}
.wp-block-yoast-faq-block .schema-faq-question:before,
.wp-block-yoast-faq-block.fcp-faq .fcp-opened .schema-faq-question:before {
    top: 22px !important;
    transform:rotate(45deg);
}

/* transition */
.wp-block-yoast-faq-block.fcp-faq .schema-faq-answer {
    max-height:0;
    overflow:hidden;
    border-bottom-width:0;
    padding-top:0;
    padding-bottom:0;
    transition:padding-bottom 0.3s ease-in, max-height 0.4s ease-in, padding-top 0.1s 0.4s ease-out, border-bottom-width 0s 0.5s linear;
}
.wp-block-yoast-faq-block .fcp-opened .schema-faq-answer {
    max-height:9999px;
    border-bottom-width:1px;
    padding-top:12px;
    padding-bottom:20px;
    transition:padding-top 0.3s ease-in, max-height 0.3s 0.3s linear, padding-bottom 0.4s 0.23 ease;
}

/* ------------------- */
/* CSS Cards Formation */
/* ------------------- */
/* Conteneur général */
.jobtab-outer.cards {
  padding: 3rem 1rem 6rem;
  background: #F7F8FF;
  position: relative;
}

/* Navigation des onglets */
.jobtab-outer .jobtab-nav {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 2rem;
  padding: 0;
  list-style: none;
  gap: 1rem;
}

.jobtab-outer .jobtab-nav li {
  cursor: pointer;
  padding: .7rem 1.5rem;
  border-radius: 1.25rem;
  background: #EDEEFF;
  color: #150ED2;
  font-weight: 600;
  transition: background .3s, color .3s;
}

.jobtab-outer .jobtab-nav li sup {
  margin-left: .4rem;
  font-size: 0.7em;
  font-weight: normal;
}

.jobtab-outer .jobtab-nav li.active,
.jobtab-outer .jobtab-nav li:hover {
  background: #150ED2;
  color: #fff;
}

/* Contenus des onglets */
.jobtab-outer .tab-panel { display: none; }
.jobtab-outer .tab-panel.active { display: block; }

/* Grille de cartes */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(350px,1fr));
  gap: 1.5rem;
}

.card {
  background: #fff;
  border-radius: .75rem;
  box-shadow: 0 6px 20px rgba(0,0,0,0.06);
  padding: 1.5rem;
  transition: transform .2s, box-shadow .2s;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.1);
}

/* Titre de la carte */
.card h3 {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: 1.65rem;
  letter-spacing: -0.05rem!important;
  color: #150ED2;
}

.card h3 a {
  color: #f1f0ff;
  text-decoration: none;
}

.card h3 a:hover {
  text-decoration: underline;
}

/* Informations de la carte */
.card-info {
  font-size: 0.85rem;
  line-height: 1.4;
  display: flex;
  flex-direction: column;
  gap: .3rem;
  margin-top: auto;
}

/* Conserver les couleurs existantes */
.card-info .color-green em { color: var(--ipssi-green,#BBFF34); }
.card-info .color-blue em { color: var(--ipssi-blue,#150ED2); }

/* Section logos institutionnels */
.jobs-company {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  margin-top: 3rem;
}

.jobs-company img {
  max-height: 60px;
  object-fit: contain;
}
/* ================================
   DARK THEME — overrides IPSSI cards
   Place ce bloc APRÈS ton CSS “light”
   ================================ */

.dark-theme .jobtab-outer.cards {
  background: #0a121f; /* fond global sombre */
}

.dark-theme .jobtab-title .typed-title {
  color: #f1f0ff;
  margin-bottom: 2rem;
}

/* Onglets */
.dark-theme .jobtab-nav li {
  background: #161a2b;
  color: #f1f0ff;
  border: 1px solid rgba(201,206,255,0.08);
}
.dark-theme .jobtab-nav li.active,
.dark-theme .jobtab-nav li:hover {
  background: #BBFF34;  /* bleu IPSSI */
  color: #0a121f;
  border-color: transparent;
}

/* Panneaux */
.dark-theme .tab-panel { color: #b5becd; }

/* Cartes */
.dark-theme .card {
  background: #141c2d;
  color: #b5becd;
  border: 1px solid rgba(230,232,255,0.08);
  box-shadow: none; /* éviter les halos trop clairs sur fond sombre */
}
.dark-theme .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.06), 0 16px 32px rgba(0,0,0,0.45);
  border: 1px solid #BBFF34;
  cursor: pointer;
}

/* Titres / liens carte */
.dark-theme .card h3 { color: #f1f0ff; }
.dark-theme .card h3 a { color: inherit; text-decoration: none; }
.dark-theme .card h3 a:hover { color: #BBFF34; /* vert IPSSI accent */ }

/* Petites infos colorées (on garde les classes existantes) */
.dark-theme .card-info .color-green em { color: #BBFF34; }
.dark-theme .card-info .color-blue  em { color: #b5becd; }

/* Liens généraux dans le module */
.dark-theme .jobtab-outer.cards a { color: #b5becd; }
.dark-theme .jobtab-outer.cards a:hover { color: #FFFFFF; }

/* Logos partenaires en bas (option : pale sur fond sombre) */
.dark-theme .jobs-company img {
  filter: brightness(0) invert(0.9);
  opacity: .9;
}

/* Accessibilité : focus visible */
.dark-theme .jobtab-nav li:focus-visible,
.dark-theme .card a:focus-visible,
.dark-theme .jobtab-outer.cards a:focus-visible {
  outline: 2px solid #BBFF34;
  outline-offset: 2px;
  border-radius: 10px;
}
.pulsar:hover {
  animation: pulse 2s infinite;
}
@keyframes pulse {
  0% {
    /*transform: scale(0.95);*/
    box-shadow: 0 0 0 0 rgba(187, 255, 52, 0.7);
  }
  70% {
    /*transform: scale(1);*/
    box-shadow: 0 0 0 12px rgba(21, 14, 210, 0);
  }
  100% {
    /*transform: scale(0.95);*/
    box-shadow: 0 0 0 0 rgba(21, 14, 210, 0);
  }
}
/*Animation gradient des titres\*/
.fx-gradient-shimmer{
  background: linear-gradient(120deg, #00ff9e, #bbff34, #bbff34, #0df2a2);
  background-size: 200% 200%;
  -webkit-background-clip: text; background-clip:text; color: transparent;
  animation: moveGrad 5.5s ease-in-out both infinite;
}
@keyframes moveGrad{to{background-position:300% 300%}}

/*Animation du block glitch / ex particules*/
.better-time-wrap { position: relative; /* fond ancré ici */ }

/* Calque de fond qui remplit le bloc, derrière le contenu */
.letter-glitch-host {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

/* S'assure que le contenu passe devant le fond */
.better-time-wrap > :not(.letter-glitch-host) {
  position: relative;
  z-index: 1;
}
.better-time-wrap{ min-height: 360px; }


.letter-glitch-canvas,
.letter-glitch-vignette-outer,
.letter-glitch-vignette-center {
  position: absolute;
  inset: 0;
  display: block;
}

/* Vignettes */
.letter-glitch-vignette-outer {
  background: radial-gradient(circle at 50% 50%,
              rgba(0,0,0,0) 55%,
              rgba(0,0,0,0.25) 75%,
              rgba(0,0,0,0.45) 100%)!important;
  mix-blend-mode: multiply;
}

/* Centre assombri, bord progressif, lisible sur fonds clairs et colorés */
.letter-glitch-vignette-center{
  position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(circle at 50% 50%,
    rgba(0,0,0,0.75) 0%,
    rgba(0,0,0,0.68) 20%,
    rgba(0,0,0,0.58) 35%,
    rgba(0,0,0,0.44) 52%,
    rgba(0,0,0,0.30) 70%)!important;
  mix-blend-mode: multiply; /* renforce l’assombrissement sans teinter */
}
.next-ateliers-ipssi{ list-style:none; padding-left:0; margin:1rem 0; }
.next-ateliers-ipssi li{ margin:-.25rem 0;color:#c0c8d7; }
.next-ateliers-ipssi strong{ font-weight:600;color:#bbff34; }