/* E-KALAN — classe.css V3 premium */
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#45413f;background:#fff}
.ek-classe-page{overflow:hidden}.ek-classe-page .container{max-width:1120px}.ek-top{padding:14px 0 38px;background:#fff}
.ek-breadcrumb{display:flex;gap:12px;align-items:center;padding:14px 0;color:#756e6a;font-weight:700}.ek-breadcrumb a{color:#7147ff;text-decoration:none}
.ek-level-banner{height:138px;border-radius:24px;display:grid;place-items:center;background:radial-gradient(circle at 15% 100%,rgba(255,255,255,.18) 0 88px,transparent 90px),radial-gradient(circle at 85% 0,rgba(255,255,255,.14) 0 100px,transparent 102px),linear-gradient(135deg,#ff7da5,#8656ff);color:#fff;font-size:38px;font-weight:900;margin:10px 0 38px}
.ek-intro{max-width:940px}.ek-intro h1,.ek-section-heading h2{color:#3f3d3c;font-weight:900;letter-spacing:-.035em}.ek-intro h1{font-size:clamp(34px,5vw,54px);margin-bottom:24px}.ek-intro p{font-size:18px;line-height:1.8;color:#5f5955;font-weight:600}
.ek-primary-button{display:inline-flex;align-items:center;justify-content:center;margin-top:24px;padding:15px 27px;border-radius:999px;background:linear-gradient(180deg,#b21ff2,#7b12c6);color:#fff;text-decoration:none;font-weight:900;box-shadow:0 8px 0 #5e0d9b,0 16px 32px rgba(133,28,206,.18);transition:.18s}.ek-primary-button:hover{color:#fff;transform:translateY(-2px)}
.ek-section{padding:76px 0;background:#faf7f4}.ek-section-white{background:#fff}.ek-section-heading{max-width:900px;margin-bottom:32px}.ek-section-heading h2{font-size:clamp(30px,4vw,44px);margin:10px 0 12px}.ek-section-heading p{font-size:17px;line-height:1.75;color:#6d6661}.ek-eyebrow{display:inline-flex;padding:8px 12px;border-radius:999px;background:#f2eaff;color:#7842d8;font-size:13px;font-weight:900}
.ek-matieres-list{display:grid;gap:18px}.ek-matiere-row{position:relative;min-height:110px;border:1px solid #eadfd8;border-radius:22px;background:#fff;box-shadow:0 8px 0 #f0e3d7;display:flex;align-items:center;padding:24px 170px 24px 28px;text-decoration:none;color:#494441;overflow:hidden;transition:.2s}.ek-matiere-row:hover{transform:translateY(-3px);color:#494441}.ek-matiere-row strong{font-size:20px;font-weight:900}.ek-matiere-row small{display:block;margin-top:6px;color:#7a716b}.ek-matiere-art{position:absolute;right:0;top:0;width:150px;height:100%;display:grid;place-items:center;font-size:46px;background:linear-gradient(135deg,var(--subject-color,#8b5cf6),#ff9855);border-radius:90px 0 0 90px}
.ek-summary-section{padding-top:24px}.ek-summary{padding:28px 34px;border-radius:26px;background:#faf2ff}.ek-summary h2{color:#9623df;font-size:30px;font-weight:900}.ek-summary a{display:block;padding:9px 0 9px 18px;border-left:4px solid #9b2be7;color:#9426d8;text-decoration:none;font-weight:700}
.ek-table-card{overflow:auto;border-radius:26px;border:1px solid #e8ded7;background:#fff}.ek-table-card table{width:100%;min-width:720px;border-collapse:collapse}.ek-table-card th{padding:18px;background:#f3ece7;text-align:left;font-weight:900}.ek-table-card td{padding:19px;border-top:1px solid #eee6e0;font-weight:650}.ek-table-subject{display:flex;gap:14px;align-items:center}.ek-table-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#f3ecff;font-weight:900}
.ek-stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}.ek-stats-strip div{text-align:center;border-radius:20px;background:#fff;padding:20px;border:1px solid #ebe2dc}.ek-stats-strip strong{display:block;font-size:30px;color:#743ee8}.ek-stats-strip span{font-weight:800;color:#716964}
.ek-editorial-blocks{display:grid;gap:34px}.ek-editorial-block h3{font-size:27px;font-weight:900;color:#474340}.ek-editorial-block p{font-size:17px;line-height:1.8;color:#6a635e}.ek-center-action{text-align:center;margin-top:34px}
.ek-program-accordion{display:grid;gap:14px}.ek-program-subject{border:1px solid #e8ded8;border-radius:20px;background:#fff;overflow:hidden}.ek-program-subject summary{list-style:none;cursor:pointer;padding:20px 24px;font-size:20px;font-weight:900;display:flex;justify-content:space-between}.ek-program-subject summary::-webkit-details-marker{display:none}.ek-program-content{padding:0 24px 24px}.ek-chapter{padding:17px 0;border-top:1px solid #eee5df}.ek-chapter h4{font-weight:900}.ek-lesson-links{display:flex;gap:8px;flex-wrap:wrap}.ek-lesson-links a{font-size:12px;padding:8px 10px;border-radius:999px;background:#f8f3ef;color:#5c554f;text-decoration:none;font-weight:750}
.ek-quick-links,.ek-tools-nav{display:flex;gap:10px;flex-wrap:wrap;padding:22px;border-radius:24px;background:#faf2ff;margin-bottom:32px}.ek-quick-links a,.ek-tools-nav a{padding:10px 14px;border-radius:999px;background:#fff;border:2px solid #fff;color:#6547a5;text-decoration:none;font-weight:850;box-shadow:0 3px 0 #e9dcef}
.ek-subject-details{display:grid;gap:42px}.ek-subject-detail{scroll-margin-top:110px}.ek-subject-badge{display:inline-flex;padding:9px 13px;border-radius:999px;background:color-mix(in srgb,var(--subject-color,#8b5cf6) 13%,white);color:var(--subject-color,#8b5cf6);font-weight:900}.ek-subject-detail h3{font-size:29px;font-weight:900;margin:16px 0 12px}.ek-subject-detail p{font-size:17px;line-height:1.8;color:#69615c}.ek-skills{display:flex;flex-wrap:wrap;gap:8px}.ek-skills span{padding:8px 11px;border-radius:999px;background:#f7f1ed;font-size:13px;font-weight:800}
.ek-tools-section{background:#fff}.ek-tools-cover{display:grid;grid-template-columns:1fr 280px;gap:30px;align-items:center;margin-bottom:30px}.ek-tools-cover h2{font-size:clamp(30px,4vw,44px);font-weight:900}.ek-tools-cover p{font-size:17px;line-height:1.75;color:#6a625d}.ek-tools-illustration{height:220px;display:grid;place-items:center;border-radius:28px;background:linear-gradient(135deg,#6a43e8,#ff66a1);font-size:46px}
.ek-tool-articles{display:grid;gap:40px}.ek-tool-articles article{scroll-margin-top:110px}.ek-tool-articles span{display:inline-flex;padding:8px 12px;border-radius:999px;background:#f7eaff;color:#a123cb;font-weight:900}.ek-tool-articles h3{font-size:28px;font-weight:900;margin:16px 0 10px}.ek-tool-articles p{font-size:17px;line-height:1.8;color:#69615c}
.ek-faq-list{display:grid;gap:12px}.ek-faq-item{border:1px solid #e8ded8;border-radius:18px;background:#fff;padding:0 20px}.ek-faq-item summary{cursor:pointer;list-style:none;padding:20px 0;font-weight:900}.ek-faq-item summary::-webkit-details-marker{display:none}.ek-faq-item p{padding-bottom:20px;line-height:1.7;color:#6c645e}
.ek-final-cta{padding:76px 0;background:#faf7f4}.ek-final-cta-card{padding:38px;border-radius:30px;background:linear-gradient(135deg,#7244e8,#a924d5);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:28px}.ek-final-cta-card h2{font-size:30px;font-weight:900}.ek-final-cta-card p{margin:0;opacity:.9}.ek-primary-button-light{background:#fff;color:#7133cf;box-shadow:none;margin:0}.ek-primary-button-light:hover{color:#7133cf}
.ek-error{margin:70px auto;padding:30px;border-radius:24px;background:#fff3f3;border:1px solid #f3caca;max-width:800px}
.ek-class-pending{min-height:calc(100vh - 180px);display:grid;place-items:center;padding:clamp(48px,8vw,96px) 0;background:radial-gradient(circle at 82% 18%,rgba(245,158,11,.14),transparent 25%),radial-gradient(circle at 10% 70%,rgba(59,130,246,.13),transparent 28%),#f7f8fc}
.ek-class-pending__card{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);align-items:center;gap:clamp(28px,5vw,64px);max-width:980px;margin:auto;padding:clamp(28px,5vw,58px);border:1px solid #e6eaf2;border-radius:30px;background:#fff;box-shadow:0 18px 48px rgba(15,23,42,.09)}
.ek-class-pending__visual{position:relative;display:grid;min-height:260px;place-items:center;border-radius:26px;background:linear-gradient(145deg,#edf5ff,#f4efff);overflow:hidden}
.ek-class-pending__visual::before,.ek-class-pending__visual::after{content:"";position:absolute;border-radius:50%;background:rgba(108,92,231,.12)}
.ek-class-pending__visual::before{width:180px;height:180px;top:-75px;right:-60px}.ek-class-pending__visual::after{width:120px;height:120px;bottom:-45px;left:-35px}
.ek-class-pending__level{position:absolute;top:20px;left:20px;padding:8px 14px;border-radius:999px;color:#fff;background:linear-gradient(135deg,#3b82f6,#6c5ce7);font-weight:800;box-shadow:0 8px 20px rgba(59,130,246,.22)}
.ek-class-pending__book{position:relative;font-size:clamp(76px,11vw,124px);filter:drop-shadow(0 18px 16px rgba(15,23,42,.14))}
.ek-class-pending__badge{display:inline-flex;margin-bottom:16px;padding:7px 12px;border-radius:999px;color:#9a5b00;background:#fff1d6;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.ek-class-pending__content h1{margin:0 0 18px;color:#11153d;font-size:clamp(30px,5vw,48px);font-weight:800;line-height:1.08;letter-spacing:-.035em}
.ek-class-pending__content p{max-width:620px;margin:0 0 10px;color:#64748b;font-size:clamp(16px,2vw,18px);line-height:1.65}
.ek-class-pending__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.ek-class-pending__actions a{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:11px 20px;border-radius:13px;text-decoration:none;font-weight:750}
.ek-class-pending__actions .ek-primary-button{color:#fff;background:linear-gradient(135deg,#3b82f6,#6c5ce7);box-shadow:0 10px 24px rgba(59,130,246,.2)}
.ek-class-pending__actions .ek-secondary-button{color:#354169;border:1px solid #dbe2ef;background:#fff}
@media(max-width:767.98px){.ek-class-pending__card{grid-template-columns:1fr;border-radius:22px}.ek-class-pending__visual{min-height:190px}.ek-class-pending__actions,.ek-class-pending__actions a{width:100%}}
@media(max-width:850px){.ek-tools-cover{grid-template-columns:1fr}.ek-stats-strip{grid-template-columns:repeat(2,1fr)}.ek-final-cta-card{flex-direction:column;align-items:flex-start}.ek-matiere-row{padding-right:105px}.ek-matiere-art{width:95px}.ek-tools-illustration{height:170px}}
@media(max-width:520px){.ek-section{padding:52px 0}.ek-level-banner{height:110px;font-size:30px}.ek-intro h1{font-size:34px}.ek-intro p{font-size:16px}.ek-matiere-row{min-height:90px;padding:18px 90px 18px 20px}.ek-matiere-row strong{font-size:17px}.ek-matiere-art{width:80px;font-size:34px}.ek-stats-strip{grid-template-columns:1fr 1fr}.ek-summary{padding:22px}.ek-final-cta-card{padding:26px}}

/* Bannière photo V4 */
.ek-photo-section{padding-top:72px}.ek-photo-banner{overflow:hidden;border-radius:30px;box-shadow:0 24px 60px rgba(66,43,22,.16);margin-bottom:38px;background:#f5eee8}.ek-photo-banner img{display:block;width:100%;height:520px;object-fit:cover;object-position:center}.ek-banner-copy{max-width:930px}.ek-banner-copy h2{font-size:clamp(30px,4vw,44px);font-weight:900;letter-spacing:-.035em;color:#3f3d3c;margin:16px 0 12px}.ek-banner-copy>p{font-size:17px;line-height:1.8;color:#69615c}.ek-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.ek-benefit{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:18px;background:#faf7f4;border:1px solid #eee4dd;font-weight:750;color:#57514d}.ek-benefit:before{content:"✓";color:#6d3fe4;font-weight:900}.ek-photo-section .ek-primary-button{margin-top:28px}@media(max-width:850px){.ek-photo-banner img{height:390px}}@media(max-width:560px){.ek-photo-banner{border-radius:22px}.ek-photo-banner img{height:270px}.ek-benefits{grid-template-columns:1fr}}


/* =========================================================
   CARTES MATIÈRES — grille verticale responsive V4.1
   ========================================================= */
.ek-matieres-list{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
  align-items:stretch;
}
.ek-matiere-card{
  position:relative;
  min-width:0;
  min-height:250px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #eadfd8;
  border-radius:22px;
  background:#fff;
  color:#45413f;
  text-decoration:none;
  box-shadow:0 8px 0 #efe1d5,0 14px 28px rgba(72,45,18,.07);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.ek-matiere-card:hover{
  color:#45413f;
  transform:translateY(-6px);
  border-color:color-mix(in srgb,var(--subject-color,#8b5cf6) 38%,#eadfd8);
  box-shadow:0 10px 0 #ead9ca,0 22px 38px rgba(72,45,18,.13);
}
.ek-matiere-card:focus-visible{
  outline:4px solid color-mix(in srgb,var(--subject-color,#8b5cf6) 30%,transparent);
  outline-offset:4px;
}
.ek-matiere-card-art{
  position:relative;
  height:118px;
  flex:0 0 118px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,var(--subject-color,#8b5cf6),#ff9855);
}
.ek-matiere-card-art:before,
.ek-matiere-card-art:after{
  content:"";
  position:absolute;
  border:3px solid rgba(255,255,255,.84);
  border-radius:999px;
}
.ek-matiere-card-art:before{width:28px;height:28px;left:14px;top:17px}
.ek-matiere-card-art:after{width:17px;height:17px;right:17px;bottom:15px}
.ek-matiere-card-shape{position:absolute;display:block;background:rgba(255,255,255,.22);border-radius:50%}
.ek-matiere-card-shape.shape-one{width:92px;height:92px;left:-34px;bottom:-42px}
.ek-matiere-card-shape.shape-two{width:58px;height:58px;right:-20px;top:-18px}
.ek-matiere-card-icon{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  min-width:66px;
  min-height:66px;
  padding:8px;
  border-radius:20px;
  background:rgba(255,255,255,.18);
  font-size:46px;
  font-weight:900;
  filter:drop-shadow(0 8px 8px rgba(64,29,10,.18));
}
.ek-matiere-card-body{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:20px 14px 17px;
  text-align:center;
}
.ek-matiere-card-body strong{
  display:block;
  font-size:17px;
  line-height:1.22;
  font-weight:900;
  text-wrap:balance;
}
.ek-matiere-card-body small{
  display:block;
  margin-top:9px;
  color:#7b716a;
  font-size:11px;
  line-height:1.35;
  font-weight:700;
}
.ek-matiere-card-link{
  display:inline-flex;
  margin-top:13px;
  color:var(--subject-color,#7c3aed);
  font-size:12px;
  font-weight:900;
}
.ek-matiere-card.is-pending{opacity:.65;cursor:default}

@media(max-width:1050px){
  .ek-matieres-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .ek-matieres-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
  .ek-matiere-card{min-height:220px;border-radius:19px}
  .ek-matiere-card-art{height:100px;flex-basis:100px}
  .ek-matiere-card-icon{min-width:58px;min-height:58px;font-size:38px}
  .ek-matiere-card-body{padding:16px 10px 14px}
  .ek-matiere-card-body strong{font-size:15px}
  .ek-matiere-card-body small{font-size:10px}
}
@media(max-width:380px){
  .ek-matieres-list{grid-template-columns:1fr}
  .ek-matiere-card{min-height:210px}
}

/* V4.2 — densité et titrage optimisés */
.ek-classe-page .ek-top{padding:8px 0 26px}
.ek-classe-page .ek-breadcrumb{gap:10px;padding:9px 0}
.ek-classe-page .ek-level-banner{
  min-height:96px;
  height:auto;
  margin:6px 0 24px;
  padding:20px 32px;
  border-radius:22px;
  place-items:center;
  text-align:center;
  text-wrap:balance;
  font-size:clamp(22px,3vw,30px);
  line-height:1.2;
}
.ek-classe-page .ek-intro h1{font-size:clamp(32px,4.5vw,48px);margin-bottom:14px}
.ek-classe-page .ek-intro p{font-size:17px;line-height:1.65}
.ek-classe-page .ek-primary-button{margin-top:18px;padding:14px 25px}
.ek-classe-page .ek-section{padding:52px 0}
.ek-classe-page .ek-section-heading{margin-bottom:24px}
.ek-classe-page .ek-summary-section{padding-top:16px}
.ek-classe-page .ek-summary{padding:22px 28px}
.ek-classe-page .ek-editorial-blocks{gap:24px}
.ek-classe-page .ek-center-action{margin-top:24px}
.ek-classe-page .ek-subject-details{gap:30px}
.ek-classe-page .ek-tool-articles{gap:28px}
.ek-classe-page + .ek-final-cta,.ek-classe-page .ek-final-cta{padding:52px 0}
.ek-classe-page .ek-photo-section{padding-top:48px}
.ek-classe-page .ek-photo-banner{margin-bottom:24px;border-radius:26px;box-shadow:0 18px 44px rgba(66,43,22,.14)}
.ek-classe-page .ek-photo-banner img{height:420px}
.ek-classe-page .ek-banner-copy h2{margin:12px 0 9px;text-align:center;text-wrap:balance;font-size:clamp(26px,3.2vw,38px);line-height:1.2}
.ek-classe-page .ek-benefits{gap:10px;margin-top:18px}

@media(max-width:560px){
  .ek-classe-page .ek-level-banner{min-height:82px;padding:16px 18px;font-size:clamp(20px,7vw,26px)}
  .ek-classe-page .ek-section{padding:38px 0}
  .ek-classe-page .ek-photo-section{padding-top:36px}
  .ek-classe-page .ek-photo-banner img{height:250px}
  .ek-classe-page .ek-summary{padding:18px}
}
