:root{
  --bg:#f7f8fb;
  --card:#ffffff;
  --ink:#1f2430;
  --muted:#687085;
  --line:#e4e7ef;
  --blue:#314e89;
  --blue2:#223763;
  --purple:#6750a4;
  --soft:#eef2ff;
  --danger:#8a2f2f;
  --ok:#1f6b4a;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f8f9fd,#eef1f8);color:var(--ink);}
a{color:var(--blue);text-decoration:none}.wrap{max-width:1120px;margin:0 auto;padding:24px}.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0}.brand{font-weight:800;letter-spacing:-.03em;font-size:22px}.badge{display:inline-flex;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:13px}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center;padding:46px 0}.hero h1{font-size:54px;line-height:1.02;margin:0 0 18px;letter-spacing:-.055em}.hero p{font-size:19px;line-height:1.55;color:var(--muted);margin:0 0 22px}.card{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:28px;box-shadow:0 20px 70px rgba(41,55,100,.10);padding:24px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:16px;background:var(--blue);color:white;padding:14px 18px;font-weight:700;cursor:pointer;box-shadow:0 10px 22px rgba(49,78,137,.22)}.btn:hover{background:var(--blue2)}.btn.secondary{background:white;color:var(--blue);border:1px solid var(--line);box-shadow:none}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0}.mini{padding:18px;border:1px solid var(--line);border-radius:20px;background:white}.mini strong{display:block;margin-bottom:6px}.mini p{margin:0;color:var(--muted);line-height:1.45}.formbox{max-width:920px;margin:34px auto}.label{display:block;font-weight:750;margin-bottom:10px}textarea{width:100%;min-height:130px;border:1px solid var(--line);border-radius:22px;padding:18px;font:inherit;font-size:18px;resize:vertical;background:white;color:var(--ink)}.actions{display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap}.hint{font-size:14px;color:var(--muted)}.result{display:grid;gap:16px}.pillrow{display:flex;gap:8px;flex-wrap:wrap}.pill{background:var(--soft);color:var(--blue2);border:1px solid #dbe2ff;border-radius:999px;padding:7px 11px;font-weight:700;font-size:14px}.part{border-left:5px solid var(--purple);padding-left:16px;margin-top:12px}.author{padding:12px 0;border-top:1px solid var(--line)}.author:first-child{border-top:0}.author b{display:block}.author p{margin:5px 0;color:var(--muted);line-height:1.45}.warn{background:#fff6e8;border:1px solid #f3d2a2;color:#704b17;border-radius:18px;padding:14px}.footer{padding:36px 0;color:var(--muted);font-size:14px}.admin-table{width:100%;border-collapse:collapse;background:white;border-radius:18px;overflow:hidden}.admin-table th,.admin-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.admin-table th{background:#f3f5fb}.login{max-width:440px;margin:80px auto}.input{width:100%;border:1px solid var(--line);border-radius:16px;padding:14px;font:inherit}.small{font-size:13px;color:var(--muted)}@media(max-width:820px){.hero{grid-template-columns:1fr}.hero h1{font-size:38px}.grid3{grid-template-columns:1fr}.wrap{padding:18px}}

.ai-card{border:1px solid #d8d0ff;background:linear-gradient(180deg,#fff,#fbfaff)}
.okbox{background:#eefaf3;border:1px solid #b8e4c9;color:#155b38;border-radius:18px;padding:14px;margin:12px 0}
.badbox{background:#fff0f0;border:1px solid #f0b7b7;color:#7a2525;border-radius:18px;padding:14px;margin:12px 0}
ul{margin-top:8px;line-height:1.55}.f2f{background:#f5f1ff;border:1px solid #ded4ff;border-radius:20px;padding:16px;margin-top:18px}.f2f p{margin:.45rem 0 0;color:var(--muted)}
code{background:#f3f5fb;border:1px solid var(--line);border-radius:8px;padding:2px 6px}

.bonus-box{

    margin-top:40px;
    padding:25px;
    border:2px solid var(--purple);
    border-radius:18px;
    background:#f8f6ff;
}

.bonus-box h2{

    margin-bottom:25px;
}

.philo-card{

    border-left:5px solid var(--purple);
    background:white;
    border-radius:14px;
    padding:18px;
    box-shadow:0 6px 20px rgba(0,0,0,.04);
}

.philo-card h3{

    margin-top:0;
}

.revision-details{

  background:#fff;
  border-radius:14px;
  margin-bottom:14px;
  border:1px solid #ddd;
  overflow:hidden;
}

.revision-details summary{

  cursor:pointer;
  padding:16px;
  font-weight:700;
  font-size:18px;
}

.revision-content{

  padding:18px;
  border-top:1px solid #eee;
}

/**
 * =====================================================
 * FICHES REVISION
 * =====================================================
 */

.revision-box{

    margin-top:40px;

    padding:25px;

    border:2px solid #6750a4;

    border-radius:18px;

    background:#f8f6ff;
}

.revision-box h2{

    margin-top:0;

    margin-bottom:22px;
}

/**
 * -----------------------------------------------------
 * Accordéon
 * -----------------------------------------------------
 */

.revision-details{

    background:white;

    border:1px solid #ddd;

    border-radius:14px;

    margin-bottom:16px;

    overflow:hidden;

    transition:.2s;
}

.revision-details:hover{

    border-color:#cfc3ff;
}

/**
 * -----------------------------------------------------
 * Header accordéon
 * -----------------------------------------------------
 */

.revision-details summary{

    cursor:pointer;

    padding:18px 20px;

    font-size:18px;

    font-weight:800;

    color:var(--blue2);

    list-style:none;

    position:relative;

    user-select:none;
}

/**
 * Retire flèche native
 */

.revision-details summary::-webkit-details-marker{

    display:none;
}

/**
 * Flèche custom
 */

.revision-details summary::after{

    content:'+';

    position:absolute;

    right:20px;

    top:50%;

    transform:translateY(-50%);

    font-size:22px;

    color:var(--purple);

    transition:.2s;
}

.revision-details[open] summary::after{

    transform:
        translateY(-50%)
        rotate(45deg);
}

/**
 * -----------------------------------------------------
 * Contenu
 * -----------------------------------------------------
 */

.revision-content{

    padding:22px;

    border-top:1px solid #eee;

    background:#fcfcff;
}

/**
 * -----------------------------------------------------
 * Bloc champ
 * -----------------------------------------------------
 */

.revision-item{

    margin-bottom:22px;
}

.revision-item:last-child{

    margin-bottom:0;
}

.revision-item h4{

    margin:0 0 10px;

    color:var(--purple);

    font-size:15px;

    text-transform:capitalize;

    letter-spacing:.02em;
}

.revision-item p{

    margin:0;

    color:var(--ink);

    line-height:1.6;
}

/**
 * -----------------------------------------------------
 * Listes
 * -----------------------------------------------------
 */

.revision-item ul{

    margin:0;

    padding-left:20px;
}

.revision-item li{

    margin-bottom:8px;

    line-height:1.55;

    color:var(--ink);
}

/**
 * -----------------------------------------------------
 * Mobile
 * -----------------------------------------------------
 */

@media(max-width:820px){

    .revision-box{

        padding:18px;
    }

    .revision-details summary{

        font-size:16px;

        padding:16px;
    }

    .revision-content{

        padding:16px;
    }
}

.revision-box{

  margin-top:40px;
}

.revision-details{

  background:#fff;
  border-radius:18px;
  margin-bottom:20px;
  overflow:hidden;
  border:1px solid #e7e7e7;
  box-shadow:0 10px 30px rgba(0,0,0,.04);
}

.revision-details summary{

  cursor:pointer;
  padding:22px;
  font-size:22px;
  font-weight:700;
  background:#fafafa;
}

.revision-content{

  padding:28px;
}

.revision-block{

  margin-bottom:30px;
}

.revision-block h3{

  font-size:18px;
  margin-bottom:12px;
  color:#222;
}

.big-text p{

  font-size:17px;
  line-height:1.7;
}

.pill-container{

  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.revision-pill{

  background:#f3f3f3;
  border-radius:999px;
  padding:10px 14px;
  font-size:14px;
}

.quote-list{

  display:flex;
  flex-direction:column;
  gap:14px;
}

blockquote{

  border-left:4px solid #6d4aff;
  padding:12px 18px;
  background:#faf8ff;
  border-radius:10px;
  margin:0;
  font-style:italic;
}

.notion-btn{

  display:inline-flex;
  align-items:center;
  justify-content:center;

  border-radius:16px;

  background:var(--blue);
  color:white !important;

  padding:10px 14px;

  font-weight:700;

  box-shadow:0 10px 22px rgba(49,78,137,.22);

  transition:.2s;
}

.notion-btn:hover{

  background:var(--blue2);
}


.ai-section{

    background:#fcfcff;

    border:1px solid #e5e0ff;

    border-radius:18px;

    padding:22px;

    margin-bottom:20px;
}

.ai-section{

  background:#fcfcff;

  border:1px solid #d8d0ff;

  border-radius:18px;

  padding:18px;

  margin-bottom:18px;

  box-shadow:0 6px 20px rgba(0,0,0,.03);
}

.ai-section h3{

  margin-top:0;

  color:var(--purple);
}

.ai-section p{

  margin:0;

  line-height:1.6;
}

.local-part{

  border-left:5px solid var(--blue);
  padding-left:16px;
  margin-top:12px;
}

.mentor-grid{

display:grid;

grid-template-columns:
repeat(3,1fr);

gap:20px;

margin-top:25px;

}

.mentor-card{

background:#fff;

border:1px solid #d8d2ff;

border-radius:18px;

padding:20px;

text-align:center;

box-shadow:
0 4px 12px rgba(0,0,0,.06);

transition:.25s;

}

.mentor-card:hover{

transform:translateY(-4px);

box-shadow:
0 8px 24px rgba(92,77,177,.15);

}

.mentor-photo{

width:120px;

height:120px;

border-radius:50%;

object-fit:cover;

margin:auto;

display:block;

margin-bottom:15px;

}

.mentor-select{

background:#5c4db1;

color:white;

border:none;

border-radius:12px;

padding:10px 18px;

cursor:pointer;

font-weight:600;

}

.mentor-card.selected{

border:3px solid #5c4db1;

box-shadow:
0 0 0 4px rgba(92,77,177,.15);

}


/* =====================================
   OFFRES BAC2PHILO
   ===================================== */

.offer-card{

position:relative;

}

.offer-price{

font-size:34px;

font-weight:800;

color:var(--purple);

margin:15px 0;

}

.offer-card p{

margin:8px 0;

}

.offer-card.premium{

border:3px solid var(--purple);

background:
linear-gradient(
180deg,
#ffffff,
#f8f6ff
);

}

.offer-card.premium::before{

content:"RECOMMANDÉ";

position:absolute;

top:-12px;

right:15px;

background:var(--purple);

color:white;

padding:6px 12px;

border-radius:999px;

font-size:12px;

font-weight:700;

}

.offer-btn{

background:var(--blue);

color:white;

border:none;

border-radius:12px;

padding:12px 18px;

font-weight:700;

cursor:pointer;

margin-top:12px;

width:100%;

}

.offer-btn:hover{

background:var(--blue2);

}

.offer-card.selected{

border:3px solid var(--purple);

box-shadow:
0 0 0 4px rgba(103,80,164,.15);

}

.premium{

border:3px solid var(--purple);

background:
linear-gradient(
180deg,
#ffffff,
#f8f6ff
);

}

.booking-box{

margin-top:30px;

padding:30px;

background:#fff;

border:1px solid #d8d2ff;

border-radius:20px;

box-shadow:0 10px 25px rgba(0,0,0,.05);

}

.booking-box h3{

margin-bottom:8px;

color:#5348c7;

}

.booking-subtitle{

margin-bottom:20px;

opacity:.7;

}

.check-card{

display:flex;

align-items:center;

gap:12px;

padding:14px;

margin-bottom:12px;

border:1px solid #e5e2ff;

border-radius:12px;

cursor:pointer;

transition:.2s;

}

.check-card:hover{

background:#f8f7ff;

}

.check-card input{

transform:scale(1.3);

}

.btn-booking{

width:100%;

margin-top:20px;

padding:16px;

border:none;

border-radius:12px;

background:#5348c7;

color:#fff;

font-weight:700;

font-size:16px;

cursor:pointer;

}

.btn-booking:disabled{

opacity:.4;

cursor:not-allowed;

}