:root{
  --kk-violet:#330394;
  --kk-orange:#FCA203;
  --kk-white:#FFFFFF;
  --kk-ink:#111827;
  --kk-muted:#4b5563;
  --kk-border:#e5e7eb;
  --kk-bg:#f8f9fc;
}

/* ===== BASE ===== */
body{
  color:var(--kk-ink);
  background:#fff;
}

#main-content{
  background:#f8f9fc;
}

.col-page-intro{
  max-width:760px;
  margin:0 auto 2rem auto;
  text-align:center;
}

.col-page-title{
  font-size:clamp(1.8rem,3vw,2.5rem);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.02em;
  margin-bottom:.75rem;
  color:var(--kk-ink);
}

.col-page-title-accent{
  color:var(--kk-violet);
}

.col-page-subtitle{
  font-size:1rem;
  color:var(--kk-muted);
  line-height:1.7;
  margin:0;
}

/* ===== TRUST BAR ===== */
.col-trust-bar{
  background:linear-gradient(90deg,var(--kk-violet),#4a14b5);
  color:#fff;
  padding:.75rem 0;
}

.trust-item{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:0 1rem;
  border-right:1px solid rgba(255,255,255,.2);
  font-size:.88rem;
  font-weight:700;
}

.trust-item:last-child{
  border-right:none;
}

/* ===== FILTERS ===== */
.col-filter-bar{
  padding:0;
  margin:0 0 1.5rem 0;
  background:transparent;
  border:0;
}

.col-filter-actions{
  margin-bottom:.5rem;
}

.filter-pill,
.sort-pill{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.65rem 1rem;
  border:2px solid #ddd;
  border-radius:999px;
  background:#fff;
  color:#000;
  font-size:.85rem;
  font-weight:700;
  transition:.18s ease;
  cursor:pointer;
}

.filter-pill:hover,
.sort-pill:hover{
  border-color:var(--kk-violet);
  color:var(--kk-violet);
}

.filter-pill.active,
.sort-pill.active{
  border-color:var(--kk-violet);
  background:#fff;
  color:var(--kk-violet);
  box-shadow:0 0 10px rgba(51,3,148,.15);
}

/* ===== BANNERS ===== */
.col-banner{
  border-radius:16px;
  padding:1rem 1.25rem;
}

.col-banner--promo{
  background:#fff7ed;
  border:1px solid rgba(252,162,3,.45);
}

/* ===== REASSURANCE ===== */
.col-reassure-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:1rem;
}

.col-reassure-item{
  background:#fff;
  border-radius:16px;
  border:1px solid rgba(17,24,39,.08);
  padding:1.15rem 1rem;
  text-align:center;
  box-shadow:0 4px 14px rgba(17,24,39,.05);
}

.col-reassure-item .icon-wrap{
  width:46px;
  height:46px;
  margin:0 auto .7rem auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:rgba(252,162,3,.12);
  border:1px solid rgba(252,162,3,.25);
  font-size:1.3rem;
}

.col-reassure-item h6{
  font-size:.9rem;
  font-weight:700;
  margin-bottom:.2rem;
}

.col-reassure-item p{
  font-size:.8rem;
  color:var(--kk-muted);
  margin:0;
}

/* ===== CARDS ===== */
.col-card-wrap{
  margin-bottom:1rem;
}

.col-card{
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  border:0;
  box-shadow:0 4px 16px rgba(17,24,39,.06);
  position:relative;
}

.col-ribbon{
  position:absolute;
  top:.75rem;
  right:.75rem;
  z-index:3;
  background:#dc2626;
  color:#fff;
  border-radius:999px;
  padding:.45rem .8rem;
  font-size:.8rem;
  font-weight:700;
  box-shadow:0 8px 18px rgba(220,38,38,.18);
}

.col-card-body{
  padding:1.25rem;
}

@media(max-width:576px){
  .col-card-body{
    padding:1rem;
  }
}

.col-img-wrap{
  position:relative;
  width:100%;
  height:100%;
  min-height:240px;
  overflow:hidden;
  border-radius:16px;
}

.bg-image img,
.col-img-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:16px;
}

.col-img-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.35),transparent 60%);
}

.col-img-badges{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  display:flex;
  flex-direction:column;
  gap:.45rem;
}

.col-badge-lieu,
.col-badge-heberg{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  width:fit-content;
  max-width:100%;
  border-radius:999px;
  padding:.4rem .75rem;
  font-size:.8rem;
  font-weight:700;
}

.col-badge-lieu{
  background:#fff;
  color:var(--kk-ink);
}

.col-badge-heberg{
  background:rgba(255,255,255,.88);
  color:var(--kk-ink);
}

/* ===== BADGES ===== */
.kk-badge{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.45rem .7rem;
  border-radius:999px;
  font-size:.82rem;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
  background:linear-gradient(180deg, rgba(252,162,3,.12) 0%, rgba(255,255,255,1) 75%);
  color:#1f2937;
  border:1px solid rgba(252,162,3,.28);
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset, 0 4px 12px rgba(17,24,39,.04);
}

.kk-badge--neutral{
  background:#fff;
  border-color:rgba(17,24,39,.12);
  box-shadow:none;
}

/* ===== TITRES / META ===== */
.col-card-title{
  font-size:1.2rem;
  font-weight:700;
  letter-spacing:-.2px;
  margin-bottom:.5rem;
}

.col-infos-cles{
  display:flex;
  flex-direction:column;
  gap:.42rem;
  margin:.5rem 0 .75rem;
}

.col-info-line{
  display:flex;
  align-items:flex-start;
  gap:.5rem;
  font-size:.92rem;
  color:var(--kk-muted);
  line-height:1.45;
}

.col-info-line i{
  width:16px;
  color:var(--kk-violet);
  margin-top:.08rem;
}

.col-info-line strong{
  color:var(--kk-ink);
}

.col-desc{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color:var(--kk-muted);
  line-height:1.7;
  text-align:justify;
}

.col-urgency{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  background:#fff7ed;
  border:1px solid rgba(252,162,3,.35);
  color:#b45309;
  border-radius:999px;
  padding:.35rem .8rem;
  font-size:.8rem;
  font-weight:700;
  margin-top:.8rem;
}

/* ===== SIDE PANEL ===== */
.col-side-panel{
  height:100%;
  border-left:1px solid var(--kk-border);
  padding-left:1.25rem;
}

@media(max-width:767px){
  .col-side-panel{
    border-left:none;
    border-top:1px solid var(--kk-border);
    padding-left:0;
    padding-top:1rem;
    margin-top:1rem;
  }
}

.col-duree-tabs{
  display:flex;
  gap:.5rem;
  margin-bottom:.8rem;
}

.col-duree-tab{
  flex:1;
  text-align:center;
  padding:.65rem .55rem;
  border:2px solid #ddd;
  border-radius:14px;
  background:#fff;
  color:#000;
  font-size:.84rem;
  font-weight:700;
  cursor:pointer;
  transition:.18s ease;
}

.col-duree-tab:hover{
  border-color:var(--kk-violet);
  color:var(--kk-violet);
}

.col-duree-tab.active{
  border-color:var(--kk-violet);
  background:#fff;
  color:var(--kk-violet);
  box-shadow:0 0 10px rgba(51,3,148,.15);
}

.col-duree-tab .tab-sub{
  display:block;
  margin-top:.15rem;
  font-size:.72rem;
  font-weight:700;
}

.col-price-box{
  background:#fff;
  border:1px solid var(--kk-border);
  border-radius:16px;
  padding:1rem;
  margin-bottom:1rem;
  text-align:center;
}

.col-price-label{
  font-size:.72rem;
  color:var(--kk-muted);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  text-align:center;
}

.col-price-big{
  font-size:1.95rem;
  font-weight:800;
  color:var(--kk-ink);
  line-height:1.1;
  text-align:center;
}

.col-price-old{
  font-size:.9rem;
  color:var(--kk-muted);
  text-decoration:line-through;
  text-align:center;
}

.col-price-promo{
  font-size:1.35rem;
  font-weight:800;
  color:#059669;
  text-align:center;
}

.col-price-sub{
  font-size:.78rem;
  color:var(--kk-muted);
  margin-top:.25rem;
  line-height:1.45;
  text-align:center;
}

/* ===== BOUTONS COMME cours.php ===== */
.kidnkod-cta{
  background-color:var(--kk-violet);
  border-color:var(--kk-violet);
  border-radius:14px;
  font-weight:700;
  letter-spacing:.2px;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.kidnkod-cta:hover{
  background-color:#4a14b5;
  border-color:#4a14b5;
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(51,3,148,.35);
  color:#fff;
}

.kidnkod-cta:active{
  transform:translateY(0px);
  box-shadow:0 4px 10px rgba(51,3,148,.20);
}

.kidnkod-outline{
  color:var(--kk-violet);
  border-color:var(--kk-violet);
  border-radius:14px;
  font-weight:700;
}

.kidnkod-outline:hover{
  background:rgba(51,3,148,.06);
  color:var(--kk-violet);
}

/* ===== SESSIONS ===== */
.col-sessions-wrap{
  max-height:0;
  overflow:hidden;
  transition:max-height .35s ease;
}

.col-sessions-wrap.open{
  max-height:1800px;
}

.col-session-group-label{
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--kk-violet);
  margin:.85rem 0 .45rem;
}

.col-session-item{
  border:1px solid var(--kk-border);
  border-radius:14px;
  padding:.75rem .9rem;
  margin-bottom:.5rem;
  background:#fff;
}

.col-session-item.full{
  opacity:.55;
  background:#fafafa;
}

.col-session-item:hover:not(.full){
  border-color:rgba(51,3,148,.3);
  background:#fcfbff;
}

/* ===== TRANSPORT ===== */
.col-transport-wrap{
  margin-top:.75rem;
  border:1px solid var(--kk-border);
  border-radius:14px;
  padding:.8rem;
  background:#fff;
}

.col-transport-label{
  font-size:.84rem;
  font-weight:700;
  margin-bottom:.55rem;
}

.col-transport-opts{
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

.col-transport-opt{
  display:flex;
  align-items:center;
  gap:.7rem;
  border:1px solid var(--kk-border);
  border-radius:12px;
  padding:.7rem;
  background:#fff;
  cursor:pointer;
}

.col-transport-opt.active{
  border-color:var(--kk-violet);
  background:rgba(51,3,148,.04);
}

.col-transport-opt input{
  display:none;
}

.opt-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f5f5f5;
  flex-shrink:0;
}

.opt-text{
  display:flex;
  flex-direction:column;
}

.opt-text strong{
  font-size:.88rem;
  color:var(--kk-ink);
}

.opt-text small{
  color:var(--kk-muted);
  line-height:1.35;
}

.opt-price{
  margin-left:auto;
  font-size:.84rem;
  font-weight:700;
  color:var(--kk-violet);
}

/* ===== COMPLET ===== */
.col-complet-overlay{
  position:absolute;
  inset:0;
  background:rgba(17,24,39,.45);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:5;
}

.col-complet-badge{
  background:#fff;
  color:#dc2626;
  font-weight:800;
  font-size:1rem;
  padding:.7rem 1.4rem;
  border-radius:999px;
}

/* ===== FAQ ===== */
.col-faq{
  background:#fff;
  border-radius:18px;
  padding:2rem;
  box-shadow:0 4px 16px rgba(17,24,39,.06);
}

.col-faq .accordion-item{
  border:1px solid var(--kk-border);
  border-radius:12px !important;
  margin-bottom:.5rem;
  overflow:hidden;
}

.col-faq .accordion-button{
  font-weight:600;
}

.col-faq .accordion-button:not(.collapsed){
  background:#f8f7ff;
  color:var(--kk-violet);
  box-shadow:none;
}

/* ===== EMPTY ===== */
.col-empty{
  text-align:center;
  padding:4rem 2rem;
  color:var(--kk-muted);
  background:#fff;
  border-radius:16px;
  box-shadow:0 4px 16px rgba(17,24,39,.06);
}

.col-card-wrap.col-hidden{
  display:none !important;
}

#col-no-results{
  display:none;
}

#col-no-results.visible{
  display:block;
}