/* --- Elegant theme for Math-Prépa (MPSI + MP) --- */
:root{
  --bg:#fff;
  --ink:#0f172a;
  --muted:#475569;
  --accent:#3b82f6;
  --accent-2:#8b5cf6;
  --border:#e2e8f0;
  --soft:#f8fafc;
  --shadow:0 10px 25px rgba(2,6,23,.06), 0 2px 8px rgba(2,6,23,.04);
}

*{box-sizing:border-box}
html, body {
  height: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
}
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color:var(--ink); 
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased; 
  -moz-osx-font-smoothing:grayscale;
}
main {
  flex: 1; /* pousse le footer en bas */
}
h1,h2,h3,h4{
  font-family: 'Merriweather', ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
  line-height:1.25; letter-spacing:.2px; color:var(--ink);
}
h1{font-size:clamp(28px, 4vw, 44px); margin:0 0 8px}
h2{font-size:clamp(22px, 2.6vw, 30px); margin:4px 0 6px}
h3{font-size:clamp(18px, 2.2vw, 22px); margin:0 0 4px}
p{margin:.35rem 0 1rem; color:var(--muted)}
a{color:var(--accent); text-decoration:none; transition:all .2s ease}
a:hover{color:var(--accent-2); text-decoration:underline}
.container{max-width:1000px; margin:0 auto; padding:24px}

/* --------- Header élégant -------- */
.header{
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,0.9);
  backdrop-filter: blur(12px) saturate(130%);
  box-shadow:0 4px 12px rgba(0,0,0,0.05);
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-weight:800; letter-spacing:.3px;
}
.brand .badge{
  font-size:12px; color:var(--muted);
  border:1px solid var(--border);
  padding:2px 8px; border-radius:999px;
  background:rgba(255,255,255,.6);
}
.nav{
  display:flex; flex-wrap:wrap; gap:20px;
  font-size:15px; margin-top:10px;
}
.nav a{
  position:relative; padding:8px 0; font-weight:500;
}
.nav a::after{
  content:''; position:absolute; left:0; bottom:-2px;
  width:0; height:2px;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  transition:width .25s ease;
}
.nav a:hover::after,
.nav a[aria-current="page"]::after{
  width:100%;
}

/* --------- Hero -------- */
.hero{padding:36px 0}
.kicker{font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted)}
.grid{display:grid; grid-template-columns:1fr; gap:20px}
@media(min-width:900px){ .grid{grid-template-columns:1fr 1fr} }
.card{
  border:1px solid var(--border); border-radius:18px; padding:18px 18px;
  background:linear-gradient(180deg, rgba(255,255,255,.66), rgba(255,255,255,.4));
  box-shadow:var(--shadow);
}
.card h3{margin:.2rem 0 .4rem}
.cta{display:inline-block; padding:10px 14px; border-radius:999px; font-weight:600;
  background:linear-gradient(90deg, var(--accent), var(--accent-2)); color:#fff; box-shadow:var(--shadow)}
.cta:hover{opacity:.95; transform:translateY(-1px)}
.section{margin:30px 0}

/* --------- Layout hero -------- */
.split {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
.split > div {
  flex: 1;
}

/* --------- Aside image centrée -------- */
.aside {
  flex: 0 0 auto;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  background: var(--soft);
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  text-align: center;
}
.aside img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  max-height: 220px;
  height: auto;
  border-radius: 12px;
  object-fit: cover;
}

/* --------- Logo Maroc -------- */
.logo-maroc {
  height: 28px;   /* réduit la taille */
  width: auto;
  margin-right: 8px;
  vertical-align: middle;
  border-radius: 50%;
}

/* --------- Boutons CTA centrés -------- */
.cta-buttons {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 14px;
  flex-wrap: wrap;
}

/* --------- List / Items -------- */
.list{list-style:none; padding:0; margin:0}
.item{
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
  padding:14px 14px; border:1px solid var(--border); border-radius:14px; background:var(--bg);
  box-shadow:0 1px 0 rgba(2,6,23,.04);
}
.item + .item{margin-top:10px}
.item small{color:var(--muted)}
.meta{display:flex; align-items:center; gap:10px; color:var(--muted); font-size:13px}
.badge{display:inline-block; border:1px solid var(--border); background:var(--bg); color:var(--muted); border-radius:999px; padding:2px 8px; font-size:12px}

/* --------- Footer fixé -------- */
.footer{
  border-top:1px solid var(--border);
  padding:10px 0;
  text-align:center;
  font-size:13px;
  color:var(--muted);
  background:linear-gradient(180deg, rgba(59,130,246,0.05), rgba(139,92,246,0.05));
  box-shadow:inset 0 2px 6px rgba(0,0,0,0.04);
}

/* --------- Divers -------- */
blockquote{border-left:3px solid var(--accent); padding:10px 12px; background:rgba(59,130,246,.06); border-radius:10px}
hr{border:none; border-top:1px solid var(--border); margin:20px 0}
.notice{
  display:flex; gap:12px; padding:12px 14px; border:1px dashed var(--border); border-radius:12px; background:var(--soft);
}

/* --------- Responsive -------- */
@media (max-width: 768px) {
  .split {
    flex-direction: column;
    gap: 16px;
    text-align: center;
  }
  .aside img {
    max-height: 160px;
  }
  .brand {
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }
  .nav {
    justify-content: center;
    margin-top: 8px;
    font-size: 14px;
  }
  h1 {
    font-size: 22px;
    text-align: center;
  }
  p {
    font-size: 15px;
    text-align: center;
  }
  .cta-buttons {
    justify-content: center;
  }
}
.hero {
  padding: 50px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.hero-box {
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 20px 30px;
  background: linear-gradient(180deg, rgba(255,255,255,.8), rgba(248,250,252,.9));
  box-shadow: var(--shadow);
  display: inline-block;
}

.hero-box h1 {
  margin: 8px 0 0;
}

.hero-box .kicker {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--muted);
  display: block;
  margin-bottom: 8px;
}

