/* =========================================================
   1re Classe Agendas — styles consolidés
   ========================================================= */

:root{
  --burgundy-900:#7A1E3D;
  --burgundy-700:#A63D5C;
  --gray-900:#2B2B2B;
  --gray-800:#3F4C59;
  --gray-700:#4F5B66;
  --gray-600:#706F6C;
  --gray-300:#E1E1E1;
  --gray-200:#E9E2DC;
  --gray-150:#ECECEC;
  --gray-100:#F3F3F2;
  --white:#FFF;

  --radius:12px;
  --shadow:0 6px 16px rgba(0,0,0,.08);
  --shadow-lg:0 10px 24px rgba(0,0,0,.10);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Nunito Sans',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-size:16px; line-height:1.6;
  color:var(--gray-800);
  background:var(--white);
}
.container{max-width:1200px; margin-inline:auto; padding:0 20px}

/* =========================================================
   HEADER + NAV
   ========================================================= */
header.site-header{
  position:sticky; top:0; z-index:1000;
  background:rgba(255,255,255,.95);
  backdrop-filter:saturate(120%) blur(6px);
  border-bottom:1px solid var(--gray-100);
}
.navbar{display:flex; align-items:center; justify-content:space-between; padding:12px 0}
.navbar .brand{display:flex; align-items:center; gap:12px}

.nav-links{display:flex; gap:20px; align-items:center; position:relative}
.nav-links a{color:var(--gray-800); text-decoration:none; font-weight:600}
.nav-links a:hover{color:var(--burgundy-900)}
.nav-links a.active{color:var(--burgundy-900); text-decoration:underline; text-underline-offset:4px}

.nav-cta{display:flex; align-items:center; gap:12px}
.mobile-toggle{display:none; background:none; border:none; font-size:1.25rem}

/* Sous-menus */
.nav-item{position:relative}
.nav-parent{display:inline-flex; align-items:center; gap:6px; cursor:pointer}
.nav-parent:after{content:"▾"; font-size:12px; opacity:.8}
.submenu{
  position:absolute; top:100%; left:0;
  display:none; min-width:280px; padding:8px; margin:0;
  background:#fff; border:1px solid var(--gray-150); border-radius:12px;
  box-shadow:var(--shadow-lg); z-index:999;
}
.submenu li{list-style:none}
.submenu a{display:block; padding:10px 12px; border-radius:10px; color:var(--gray-800)}
.submenu a:hover{background:var(--gray-100); color:var(--burgundy-900)}
/* desktop hover + pont invisible anti “trou d’air” */
@media (min-width:1025px){ .nav-item:hover>.submenu{display:block} }
.nav-item:hover::after, .nav-item.hover::after{
  content:""; position:absolute; left:0; right:0; top:100%; height:12px;
}
.nav-item.hover>.submenu{display:block}  /* laissé pour le JS (hover intent) */
.nav-item.open>.submenu{display:block}   /* ouverture mobile via JS */

/* =========================================================
   BOUTONS
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.75rem 1.25rem; border-radius:var(--radius);
  border:1px solid transparent; text-decoration:none; font-weight:700;
  transition:all .15s ease; cursor:pointer;
}
.btn-primary{background:var(--burgundy-900); color:#fff}
.btn-primary:hover{background:var(--burgundy-700); box-shadow:var(--shadow)}
.btn-secondary{background:#fff; color:var(--burgundy-900); border-color:var(--burgundy-900)}
.btn-secondary:hover{background:var(--gray-200)}
.btn-link{color:var(--burgundy-900); text-decoration:underline}

/* =========================================================
   TYPO
   ========================================================= */
h1{
  font-family:'Poppins', Arial, sans-serif; font-weight:700; line-height:1.15;
  font-size:48px; margin:0 0 12px; color:var(--burgundy-900);
}
h2{
  font-family:'Poppins', Arial, sans-serif; font-weight:700; line-height:1.2;
  font-size:36px; margin:0 0 12px; color:var(--gray-800);
}
h3{font-family:'Poppins', Arial, sans-serif; font-weight:600; font-size:24px; margin:0 0 8px}
.lead{font-size:18px; color:var(--gray-600)}

/* =========================================================
   HERO / SECTIONS / LAYOUTS
   ========================================================= */
.hero{padding:56px 0; background:linear-gradient(180deg, var(--gray-100), #fff 60%)}
.hero-grid{display:grid; grid-template-columns:1.15fr 1fr; gap:32px; align-items:center}
.hero-cta{display:flex; gap:12px; margin-top:20px; flex-wrap:wrap}
.hero-visual{min-height:320px; background:var(--gray-200); border-radius:16px; box-shadow:var(--shadow); display:grid; place-items:center; color:var(--gray-600)}

.section{padding:56px 0}
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.card{background:#fff; border:1px solid var(--gray-150); border-radius:var(--radius); box-shadow:var(--shadow); padding:16px; display:flex; flex-direction:column; gap:12px}
.card .thumb{background:var(--gray-100); height:160px; border-radius:10px}
.card p{margin:0; color:var(--gray-600)}

.split{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:center}
.split .panel{background:var(--gray-200); border-radius:16px; padding:24px; box-shadow:var(--shadow)}

/* Process / témoignages */
.process{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.step{background:#fff; border:1px solid var(--gray-150); border-radius:var(--radius); padding:18px; text-align:center}
.step .icon{font-size:28px; display:block; margin-bottom:6px; color:var(--burgundy-900)}
.testimonial{background:var(--gray-100); border-radius:16px; padding:24px; box-shadow:var(--shadow); font-style:italic}

/* =========================================================
   CTA FINAL + FOOTER
   ========================================================= */
.cta-final{background:var(--burgundy-900); color:#fff; padding:40px 0; text-align:center; margin-bottom:0}
.cta-final h2{color:#fff}
.cta-final .btn{background:#fff; color:var(--burgundy-900); border-color:#fff; box-shadow:0 6px 14px rgba(255,255,255,.15)}
.cta-final .btn:hover{background:var(--gray-200); color:var(--burgundy-900); box-shadow:0 8px 18px rgba(0,0,0,.18)}

footer{background:#111; color:#eee; margin-top:0}
footer a{color:#fff; text-decoration:none}
.footer-inner{display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:24px; padding:32px 0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15); padding:12px 0; font-size:14px; color:#bbb}
.footer-bottom .container{text-align:center}

/* =========================================================
   FORMULAIRES — base + Soumission (scopé)
   ========================================================= */
form{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1rem 2rem; margin-top:1rem}
form label{font-weight:600; color:var(--gray-800)}
form input, form textarea, form select{
  width:100%; padding:.7rem .9rem; border-radius:6px; border:1px solid var(--gray-200);
  font-family:inherit; font-size:1rem; background:#fff; transition:border-color .2s;
}
form input:focus, form textarea:focus, form select:focus{border-color:var(--burgundy-900); outline:none}

/* =========================================================
   PAGE SOUMISSION — nouvelle mise en page à 1 colonne
   ========================================================= */
.page-soumission .hero {
  background: linear-gradient(180deg, #faf6f2 0%, #fff 60%);
  padding: 72px 0 40px;
  text-align: left;
}
.page-soumission .hero h1 {
  text-align: left;
  font-family: 'Poppins', sans-serif;
  font-size: 48px;
  line-height: 1.15;
  color: var(--burgundy-900);
  margin-bottom: 12px;
}
.page-soumission .hero .lead {
  text-align: left;
  max-width: 720px;
  margin: 0;
  color: var(--gray-600);
  font-size: 18px;
}

.page-soumission .form-layout {
  display: grid;
  grid-template-columns: 1fr; /* ✅ une seule colonne */
  gap: 24px;
  align-items: start;
  margin-top: 32px;
}

.page-soumission .form-card,
.page-soumission .info-card {
  background: #fbf8f6;
  border: 1px solid #eee5df;
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 24px;
}

/* Info à droite passe en dessous */
.page-soumission .info-card {
  background: #f7f2ee;
  max-width: 600px;
  margin-inline: auto;
}

.page-soumission form.form-card {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.page-soumission form.form-card label {
  font-weight: 700;
  color: #2b2b2b;
}

.page-soumission form.form-card input,
.page-soumission form.form-card select,
.page-soumission form.form-card textarea {
  background: #fff;
  border: 1px solid #e7e1dc;
  border-radius: 12px;
  padding: 14px 16px;
  width: 100%;
  font-size: 16px;
}

.page-soumission form.form-card input:focus,
.page-soumission form.form-card select:focus,
.page-soumission form.form-card textarea:focus {
  border-color: var(--burgundy-900);
  box-shadow: 0 0 0 3px rgba(122, 30, 61, 0.16);
  outline: none;
}

.page-soumission form.form-card .btn-primary {
  align-self: center; /* ✅ centré horizontalement */
  border-radius: 999px;
  padding: 14px 28px;
  font-size: 17px;
  margin-top: 16px;
}

/* =========================================================
   GALERIES — Couvertures (vignettes) & ENSEIGNANTS
   ========================================================= */
/* Couvertures */
.covers-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.cover-item{background:#fff; border:1px solid var(--gray-150); border-radius:12px; box-shadow:var(--shadow); overflow:hidden; text-align:center; cursor:zoom-in}
.cover-item img{width:100%; height:240px; object-fit:cover; display:block}
.cover-item figcaption{padding:10px 12px; font-weight:700; color:var(--gray-800)}

/* Galerie générique (autres pages) */
.gallery-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px}
.gallery-item{background:#fff; border:1px solid var(--gray-150); border-radius:14px; box-shadow:var(--shadow); padding:16px}
.gallery-item .gi-thumb{border-radius:12px; overflow:hidden; background:var(--gray-100); margin-bottom:10px; aspect-ratio:3/2}
.gallery-item img{width:100%; height:280px; object-fit:cover; display:block; cursor:zoom-in}
.gallery-item .actions{margin-top:8px}

/* === Page Enseignants : 1 produit par ligne + image non rognée, bordure beige, bouton centré === */
.page-enseignants .gallery-list{display:grid; grid-template-columns:1fr; gap:28px}
.page-enseignants .gallery-item.wide{background:#fff; border:1px solid var(--gray-150); border-radius:14px; box-shadow:var(--shadow); padding:18px}
.page-enseignants .gallery-item.wide .gi-thumb{
  background:#fff; border:1px solid #e7e2da; border-radius:12px;
  aspect-ratio:3/2; display:flex; align-items:center; justify-content:center;
  overflow:hidden; margin-bottom:14px; box-shadow:none !important;
}
.page-enseignants .gallery-item.wide .gi-thumb img{
  width:100%; height:auto !important; object-fit:contain !important; display:block; cursor:zoom-in;
}
.page-enseignants .gallery-item.wide .gi-content .subtitle{margin:6px 0 10px; color:var(--gray-600)}
/* Liste 2 colonnes “hanging indent” propre */
.page-enseignants .gallery-item.wide .features{
  background:#fbf8f6; border:1px solid #eee5df; border-radius:12px;
  padding:16px 28px 18px 32px;
  list-style:disc outside !important;
  column-count:2; column-gap:32px;
  font-size:15px; line-height:1.55; margin:10px 0;
}
.page-enseignants .gallery-item.wide .features li{break-inside:avoid; margin:0 0 6px 0; text-indent:0 !important; padding-left:0 !important}
@media (max-width:900px){ .page-enseignants .gallery-item.wide .features{column-count:1} }
.page-enseignants .gallery-item.wide .actions{text-align:center; margin-top:12px}
.page-enseignants .gallery-item.wide .actions .btn{min-width:240px}

/* =========================================================
   LIGHTBOX (zoom)
   ========================================================= */
.lightbox{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.85);
  display: none;

  /* 👇 nouveau : on passe en colonne */
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;

  z-index: 10000;
  padding: 12px;
}
.lightbox.open{
  display: flex;
}
.lb-image{max-width:min(92vw,2400px); max-height:86vh; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-close,.lb-prev,.lb-next{
  position:absolute; background:rgba(255,255,255,.9); color:#111; border:none; border-radius:999px;
  width:40px; height:40px; display:grid; place-items:center; font-size:22px; font-weight:700; cursor:pointer;
}
.lb-close{top:20px; right:20px}
.lb-prev{left:20px}
.lb-next{right:20px}
.lb-prev:hover,.lb-next:hover,.lb-close:hover{background:#fff; box-shadow:var(--shadow-lg)}
.lb-close:focus,.lb-prev:focus,.lb-next:focus{outline:3px solid rgba(255,255,255,.7); outline-offset:2px}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .process{grid-template-columns:1fr 1fr}
  .gallery-grid{grid-template-columns:1fr}
  .covers-grid{grid-template-columns:repeat(2,1fr)}
  .cover-item img{height:220px}
  .page-soumission .form-layout{grid-template-columns:1fr}
}
@media (max-width:640px){
  .nav-links{display:none}
  .mobile-toggle{display:block}
  .cards{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr}
  form .row{grid-template-columns:1fr}
  .btn{width:100%}
  .covers-grid{grid-template-columns:1fr}
}

/* ========== PAGE SOUMISSION — style maquette (split 2/3 - 1/3) ========== */

/* Titre & intro centrés (maquette) */
.page-soumission .hero { text-align: center; }
.page-soumission .hero h1 { text-align: center; }
.page-soumission .hero .lead {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* Split 2/3 - 1/3 avec retour 1 colonne en mobile */
.page-soumission .form-layout{
  display:grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 24px;
  align-items:start;
}

/* Colonne gauche : carte formulaire pleine largeur (plus de max-width auto) */
.page-soumission .form-col .form-card{
  background:#fbf8f6; border:1px solid #eee5df; border-radius:16px; box-shadow:var(--shadow);
  padding:24px; margin:0; max-width:none;
  display:flex; flex-direction:column; gap:18px;
}

/* Ville + Province côte à côte sur desktop */
@media (min-width: 900px){
  .page-soumission .form-card .row-two{
    display:grid; grid-template-columns: 1fr 200px; gap:16px;
  }
}

/* Consentement aligné à la case */
.page-soumission .form-card .consent label{
  display:flex; align-items:flex-start; gap:10px; line-height:1.45;
}
.page-soumission .form-card .consent input[type="checkbox"]{ margin-top:4px; flex:0 0 auto; }
.page-soumission .form-card .consent .consent-text{ flex:1 1 auto; min-width:0; }

/* Bouton centré */
.page-soumission .form-card .actions{ display:flex; justify-content:center; margin-top:8px; }
.page-soumission .form-card .btn-primary{ border-radius:999px; padding:14px 28px; font-size:17px; }

/* Colonne droite : note + carte service */
.page-soumission .info-col{ display:flex; flex-direction:column; gap:16px; }
.page-soumission .note-card{
  background:#f4efea; border:1px solid #eadfd7; border-radius:12px; padding:16px;
  color:#3b3b3b;
}
.page-soumission .info-card{
  background:#f7f2ee; border:1px solid #eee5df; border-radius:16px; box-shadow:var(--shadow); padding:22px;
}

/* Mobile : empilement naturel */
@media (max-width: 980px){
  .page-soumission .form-layout{ grid-template-columns: 1fr; }
  .page-soumission .info-col{ order: 2; }
}

/* ======= PAGE SOUMISSION — alignement final (maquette) ======= */

/* === Soumission: consentement parfaitement aligné === */
.page-soumission .form-card .consent { 
  display:block; 
  width:100%;
}
.page-soumission .form-card .consent label{
  display:flex;                 /* bloc, pas inline-flex → prend toute la largeur */
  width:100%;
  align-items:flex-start;
  gap:10px;
  line-height:1.45;
}
.page-soumission .form-card .consent input[type="checkbox"]{
  margin-top:3px;               /* aligne la case avec la 1re ligne du texte */
  flex:0 0 auto;
}
.page-soumission .form-card .consent .consent-text{
  flex:1 1 auto;                /* texte occupe tout l'espace restant */
  min-width:0;
  white-space:normal;
  word-break:break-word;
}
/* === Soumission: typographie & espacements du bloc contact (à droite) === */
.page-soumission .info-col { gap: 22px; }            /* espace sous la petite boîte de note */

.page-soumission .contact-info{
  margin-top: 6px;                                   /* petit air supplémentaire sous la note */
}

.page-soumission .contact-info h3{
  font-family:'Poppins',sans-serif;
  font-size:22px;
  color:var(--gray-900);
  margin:0 0 10px;                                   /* espacement uniforme */
}

.page-soumission .contact-info .tel{
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:26px;
  color:var(--burgundy-900);
  margin:0 0 10px;                                   /* même espace que le titre */
}

.page-soumission .contact-info .email{
  margin:0;                                          /* même rythme, collé au tel */
}
.page-soumission .contact-info .email a{
  font-size:18px;
  color:var(--gray-700);
  text-decoration:none;
}
.page-soumission .contact-info .email a:hover{ text-decoration:underline; }

/* =========================
   PATCH PAGE SOUMISSION
   — split 2/3–1/3 + consentement aligné —
   ========================= */

/* Héros centré comme la maquette */
.page-soumission .hero { text-align: center; }
.page-soumission .hero h1 { text-align: center; }
.page-soumission .hero .lead { text-align: center; margin-left:auto; margin-right:auto; }

/* Grille 2/3 – 1/3 pour le bloc formulaire + colonne droite */
.page-soumission .form-layout{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(0,1fr);
  gap:24px;
  align-items:start;
}

/* Formulaire (carte beige) en pile 1 colonne */
.page-soumission .form-col .form-card{ display:flex; flex-direction:column; gap:18px; }

/* Ville + Province côte à côte en desktop (facultatif) */
@media (min-width:900px){
  .page-soumission .form-card .row-two{
    display:grid; grid-template-columns:1fr 200px; gap:16px;
  }
}

/* ✅ Consentement : alignement inoxydable avec CSS Grid */
.page-soumission .form-card .consent label{
  display:grid;
  grid-template-columns: 20px 1fr;   /* case | texte */
  align-items:start;
  gap:10px;
  line-height:1.45;
}
.page-soumission .form-card .consent input[type="checkbox"]{
  margin-top:3px;                    /* aligne sur la 1re ligne du texte */
}
.page-soumission .form-card .consent .consent-text{
  min-width:0; white-space:normal; word-break:normal; overflow-wrap:anywhere;
}

/* Colonne droite : garde la petite boîte de note + contact hors boîte */
.page-soumission .info-col{ display:flex; flex-direction:column; gap:26px; }
.page-soumission .note-card{
  background:#f4efea; border:1px solid #eadfd7; border-radius:12px; padding:16px; color:#3b3b3b;
}
.page-soumission .contact-info h3{
  font-family:'Poppins',sans-serif; font-size:22px; color:var(--gray-900); margin:0 0 10px;
}
.page-soumission .contact-info .tel{
  font-family:'Poppins',sans-serif; font-weight:700; font-size:26px; color:var(--burgundy-900); margin:0 0 10px;
}
.page-soumission .contact-info .email{ margin:0; }
.page-soumission .contact-info .email a{ font-size:18px; color:var(--gray-700); text-decoration:none; }
.page-soumission .contact-info .email a:hover{ text-decoration:underline; }

/* Empilement mobile */
@media (max-width:980px){
  .page-soumission .form-layout{ grid-template-columns:1fr; }
}

/* === PAGE SOUMISSION — texte d'aide sous champ fichier === */
.page-soumission .form-card .helper {
  font-size: 12px;          /* environ -3 à -4 points plus petit */
  color: var(--gray-600);   /* teinte plus douce */
  margin-top: 4px;
  line-height: 1.4;
}

/* =========================
   PAGE AGENDAS ÉLÈVES
   ========================= */
.page-eleves .hero{padding:56px 0;background:linear-gradient(180deg,#faf6f2 0%,#fff 60%)}
.page-eleves .hero h1{color:var(--burgundy-900)}

.page-eleves .section{padding:48px 0}

/* Grille des 3 cartes Personnalisation */
.page-eleves .perso-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
}
.page-eleves .perso-card{
  background:#fff; border:1px solid var(--gray-150); border-radius:14px;
  box-shadow:var(--shadow); padding:16px; display:flex; flex-direction:column; gap:10px;
}
.page-eleves .perso-card .thumb{
  background:#f3eee9; border-radius:10px; height:140px; display:grid; place-items:center; color:#8a837b;
}
.page-eleves .perso-card p{margin:0;color:var(--gray-600)}
.page-eleves .perso-card .actions{margin-top:auto}
.page-eleves .perso-card .btn{width:100%}

/* Liste des modèles (pleine largeur, empilés) */
.page-eleves .models-list{display:grid; grid-template-columns:1fr; gap:28px}
.page-eleves .model-item{
  background:#fff; border:1px solid var(--gray-150); border-radius:14px; box-shadow:var(--shadow);
  padding:18px; display:grid; grid-template-columns:1fr; gap:14px;
}
.page-eleves .model-item .mi-thumb{
  background:#fff; border:1px solid #e7e2da; border-radius:12px; aspect-ratio:3/2;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.page-eleves .model-item .mi-thumb img{
  width:100%; height:auto; object-fit:contain; display:block; cursor:zoom-in;
}
.page-eleves .model-item .subtitle{margin:6px 0 8px; color:var(--gray-600)}
.page-eleves .model-item .features{
  background:#fbf8f6; border:1px solid #eee5df; border-radius:12px;
  padding:14px 22px 16px 28px; list-style:disc outside;
  column-count:2; column-gap:32px; font-size:15px; line-height:1.55; margin:0;
}
.page-eleves .model-item .features li{break-inside:avoid; margin:0 0 6px 0}
.page-eleves .model-item .actions{text-align:center}
.page-eleves .model-item .actions .btn{min-width:220px}

/* Sous-navigation ancrée (facultatif) */
.page-eleves .subnav{
  display:flex; flex-wrap:wrap; gap:10px; margin:12px 0 4px;
}
.page-eleves .subnav a{
  display:inline-block; padding:8px 12px; border:1px solid var(--gray-150);
  border-radius:999px; background:#fff; text-decoration:none; color:var(--gray-800);
}
.page-eleves .subnav a:hover{background:var(--gray-100)}

/* Responsive */
@media (max-width:1024px){
  .page-eleves .perso-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .page-eleves .perso-grid{grid-template-columns:1fr}
  .page-eleves .model-item .features{column-count:1}
}

.page-eleves .models-group-title{
  margin: 50px 0 30px;
  font-size: 30px;
  font-family: 'Poppins', sans-serif;
  color: var(--gray-900);
  border-left: 4px solid var(--burgundy-900);
  padding-left: 10px;
}

/* === PRODUITS (enseignants, élèves, accessoires) — espacement entre boîte de détails et bouton === */
.models-list { gap: 36px; } /* air entre les cartes de produits */

.model-item .features {
  margin: 0 0 14px 0;       /* espace sous la boîte beige */
}

.model-item .actions {
  text-align: center;
  margin-top: 14px;         /* espace au-dessus du bouton */
}

@media (min-width: 900px) {
  .model-item .features { margin-bottom: 16px; }
  .model-item .actions  { margin-top: 16px; }
}

/* ==== ACCUEIL — bande de statistiques pleine largeur ==== */
.stats-band {
  background: #f7f2ee;                /* beige doux pleine largeur */
  border-top: 1px solid #eee5df;
  border-bottom: 1px solid #eee5df;
  padding: 24px 0;
}

.stats-band .stats {
  max-width: 1200px;                  /* alignement du contenu au reste du site */
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  align-items: center;
  text-align: center;
}

.stats-band .stat .value {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 1.1;
  color: var(--burgundy-900);
  margin-bottom: 4px;
}

.stats-band .stat .label {
  color: var(--gray-700);
  font-size: 15px;
}

/* Mobile : empilement fluide */
@media (max-width: 720px) {
  .stats-band .stats {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .stats-band {
    padding: 20px 0;
  }
}

/* ==== PAGE ÉLÈVES — sous-navigation (petits boutons pastel) ==== */
.subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 20px;
  margin-bottom: 28px;
}

.subnav a {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
  color: var(--burgundy-900);
  text-decoration: none;
  background: #f4efea; /* beige pâle de la palette */
  border: 1px solid #e2d8cf;
  transition: all 0.2s ease-in-out;
}

/* Effet au survol */
.subnav a:hover {
  background: #e6ded7; /* beige légèrement plus foncé au hover */
  border-color: #d7ccc2;
}

/* Lien actif (optionnel si tu veux qu’un soit mis en valeur) */
.subnav a.active {
  background: var(--burgundy-800);
  color: #fff;
  border-color: var(--burgundy-800);
}

/* ==== PAGE ÉLÈVES — sous-navigation alignée à gauche ==== */
.subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-start; /* alignement à gauche */
  margin-top: 20px;
  margin-bottom: 28px;
}

.subnav a {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
  color: var(--burgundy-900);
  text-decoration: none;
  background-color: #f4efea !important; /* beige clair */
  border: 1px solid #e2d8cf;
  transition: all 0.25s ease-in-out;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

/* Survol */
.subnav a:hover {
  background-color: #e8e0d9 !important;
  border-color: #d7ccc2;
}

/* Lien actif */
.subnav a.active {
  background-color: var(--burgundy-800) !important;
  color: #fff;
  border-color: var(--burgundy-800);
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}

/* ===== ENSEIGNANTS — variante "Titre → Image (80%) → Détails → Bouton" ===== */
.page-enseignants .gallery-item.wide{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  padding: 22px;                         /* un chouïa plus d’air */
}

.page-enseignants .gallery-item.wide .gi-head{
  margin: 2px 0 4px;
}
.page-enseignants .gallery-item.wide .gi-head h3{
  margin: 0 0 6px;
  font-family: 'Poppins', sans-serif;
  font-size: 24px;
  color: var(--gray-900);
}
.page-enseignants .gallery-item.wide .gi-head .subtitle{
  margin: 0;
  color: var(--gray-600);
}

/* === ENSEIGNANTS — même largeur pour image, boîte d'infos et bouton === */

/* 1) L'image reste à 90% de la carte */
.page-enseignants .gallery-item.wide .gi-thumb { width:100%; display:flex; justify-content:center; }
.page-enseignants .gallery-item.wide .gi-thumb img{
  width:90%;
  height:auto !important;
  object-fit:contain !important;
  display:block;
}

/* 2) La boîte d'infos = exactement la même largeur visuelle que l'image */
.page-enseignants .gallery-item.wide .features{
  width:90%;                 /* ↔️ même largeur que l'image */
  box-sizing:border-box;     /* inclut padding + border dans les 90% */
  margin:8px auto 12px;      /* centrée sous l'image */
  background:#fbf8f6;
  border:1px solid #eee5df;
  border-radius:12px;
  padding:16px 28px 18px 32px;
  list-style:disc outside;
  column-count:2; column-gap:32px;
  font-size:15px; line-height:1.55;
}

/* 3) Le bouton s'aligne aussi sur 90% */
.page-enseignants .gallery-item.wide .actions{
  width:90%;
  margin: 10px auto 0;       /* centrage et même axe */
  text-align:center;
}
.page-enseignants .gallery-item.wide .actions .btn{ min-width:240px }

/* Mobile : on repasse en pleine largeur pour respirer */
@media (max-width:900px){
  .page-enseignants .gallery-item.wide .features{ column-count:1; width:100%; }
  .page-enseignants .gallery-item.wide .actions{ width:100%; }
}

/* === ENSEIGNANTS — suppression complète de la bordure autour de l'image === */
.page-enseignants .gallery-item.wide .gi-thumb {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.page-enseignants .gallery-item.wide .gi-thumb img {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

/* === Correction des marges autour de l'image pour un rendu plus équilibré === */
.page-enseignants .gallery-item.wide {
  gap: 6px; /* réduit le gap global entre les sections internes */
}

.page-enseignants .gallery-item.wide .gi-thumb {
  margin-top: 2px;   /* presque collé au titre */
  margin-bottom: 4px; /* léger espace avant la boîte d'infos */
}

.page-enseignants .gallery-item.wide .features {
  margin-top: 0;     /* supprime le double espace */
  margin-bottom: 10px;
}

/* ==== ENSEIGNANTS — compaction fine autour de l'image ==== */

/* 1) La carte elle-même avait du padding vertical : on le réduit */
.page-enseignants .gallery-item.wide{
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  row-gap: 6px; /* réduit le "gap" interne de la grille */
}

/* 2) Titre / sous-titre : moins d’espace sous le texte */
.page-enseignants .gallery-item.wide .gi-head h3{
  margin-bottom: 4px !important;
}
.page-enseignants .gallery-item.wide .gi-head .subtitle{
  margin: 0 0 6px 0 !important;
}

/* 3) Conteneur image : pas de padding, marges minimales */
.page-enseignants .gallery-item.wide .gi-thumb{
  padding: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 6px !important;
}

/* 4) Boîte d’infos : pas de "double marge" au-dessus */
.page-enseignants .gallery-item.wide .features{
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}

/* 5) Bouton : proche mais aéré */
.page-enseignants .gallery-item.wide .actions{
  margin-top: 8px !important;
}

/* === Correction finale : espace au-dessus de l'image === */
.page-enseignants .gallery-item.wide {
  row-gap: 0 !important; /* élimine le "gap" vertical entre le sous-titre et l'image */
  padding-top: 8px !important; /* resserre la marge haute globale */
}

/* Le sous-titre créait un espace de paragraphe sous lui */
.page-enseignants .gallery-item.wide .gi-head .subtitle {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Optionnel : si tu veux l'image encore plus collée au texte */
.page-enseignants .gallery-item.wide .gi-thumb {
  margin-top: 0 !important;
}

/* === ENSEIGNANTS — ajustement du positionnement du titre et du sous-titre === */
.page-enseignants .gallery-item.wide .gi-head {
  padding-top: 16px;       /* espace supplémentaire au-dessus */
  padding-left: 16px;      /* décalage vers la droite */
}

.page-enseignants .gallery-item.wide .gi-head h3 {
  margin-top: 0;
  margin-bottom: 4px;
}

.page-enseignants .gallery-item.wide .gi-head .subtitle {
  margin: 0;
  color: var(--gray-700);
}

/* === ENSEIGNANTS — air autour du titre/sous-titre + espace sous le CTA === */

/* Restaure un padding confortable de la carte */
.page-enseignants .gallery-item.wide{
  padding: 14px 16px 16px 16px !important; /* haut, droite, bas, gauche */
  row-gap: 6px !important;
}

/* Décale le bloc titre/sous-titre vers la droite et le bas */
.page-enseignants .gallery-item.wide .gi-head{
  padding: 14px 0 8px 18px !important;     /* top 14px, left 18px */
}

/* Espace entre titre et sous-titre */
.page-enseignants .gallery-item.wide .gi-head h3{
  margin: 0 0 8px 0 !important;            /* + d’air sous le titre */
}
.page-enseignants .gallery-item.wide .gi-head .subtitle{
  margin: 0 !important;
}

/* L'image reste proche du sous-titre mais pas collée */
.page-enseignants .gallery-item.wide .gi-thumb{
  margin-top: 2px !important;
}

/* Un peu d'air sous la boîte d'infos et surtout sous le bouton */
.page-enseignants .gallery-item.wide .features{
  margin-bottom: 14px !important;
}
.page-enseignants .gallery-item.wide .actions{
  margin: 12px auto 20px !important;       /* bottom 20px = espace visible sous le CTA */
}

/* === ENSEIGNANTS — rétablir la marge extérieure de la carte (comme avant) === */
.page-enseignants .gallery-item.wide {
  margin-top: 0 !important;      /* supprime l'espace vide en haut de la carte */
  margin-bottom: 28px !important; /* marge naturelle entre les cartes */
  padding-top: 16px !important;  /* remet un padding interne plus juste */
  padding-bottom: 18px !important;
}

/* === ENSEIGNANTS — position finale du titre/sous-titre et marges de la carte === */

/* Marge/padding de la carte (extérieurs inchangés, intérieur raisonnable) */
.page-enseignants .gallery-item.wide{
  padding: 20px 16px 16px 20px !important; /* top right bottom left */
  row-gap: 6px !important;
}

/* Titre + sous-titre : décalage voulu (16 top / 16 left) */
.page-enseignants .gallery-item.wide .gi-head{
  padding: 16px 0 8px 16px !important;     /* ✅ top 16, left 16 */
}

/* Espaces internes du bloc texte */
.page-enseignants .gallery-item.wide .gi-head h3{
  margin: 0 0 8px 0 !important;
}
.page-enseignants .gallery-item.wide .gi-head .subtitle{
  margin: 0 !important;
  color: var(--gray-700);
}

/* L’image proche sans coller */
.page-enseignants .gallery-item.wide .gi-thumb{
  margin-top: 2px !important;
}

/* Espace sous la boîte d’infos + sous le CTA */
.page-enseignants .gallery-item.wide .features{
  margin-bottom: 14px !important;
}
.page-enseignants .gallery-item.wide .actions{
  margin: 12px auto 20px !important;
}

/* === ENSEIGNANTS — réduire l’espace vertical autour de l’image === */
.page-enseignants .gallery-item.wide .gi-thumb {
  margin-top: -20px !important;   /* réduit l'espace au-dessus */
  margin-bottom: -6px !important; /* réduit l'espace en dessous */
}

/* ==== PAGE ÉLÈVES — section Formats & contenu en 2 colonnes ==== NOV-20 10:55 */
.page-eleves .formats .two-col{
  display: grid;

  /* ✅ Zone centrale qui ne s'étire plus à l'infini */
  max-width: 1200px;
  margin-inline: auto;

  /* ✅ Texte à gauche, image à droite, mais dans un cadre contrôlé */
  grid-template-columns: minmax(0, 1.1fr) minmax(380px, 0.9fr);

  gap: clamp(24px, 3vw, 56px);
  align-items: center;
}


.page-eleves .formats .col-text h2{
  margin-top: 0;
  margin-bottom: 10px;
}




/* === PAGE ÉLÈVES — section "Formats & contenu" (desktop + mobile) === NOV-20 10:45 */

/* Desktop / grands écrans : grille fluide texte | image */
.page-eleves .formats .two-col{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 1fr); /* texte | image */
  gap: clamp(20px, 4vw, 60px);                              /* espace qui grandit doucement */
  align-items: center;
}

.page-eleves .formats .col-media{
  margin: 0;
  padding: 0;
  justify-self: center;    /* l’image reste proche du texte, pas collée au bord droit */
}

.page-eleves .formats .col-media img{
  width: clamp(380px, 40vw, 780px);
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* Mobile / ≤ 980px : texte au-dessus, image dessous, centré */
@media (max-width: 980px){
  .page-eleves .formats .two-col{
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .page-eleves .formats .col-media{
    max-width: 520px;
    justify-self: center;
  }
}




/* =========================================================
   PRODUCT CARD V2 — retour au style original + encadré noir
   ========================================================= */

/* 1) La grande boîte redevient blanche */
.product-card.v2 {
  background: #ffffff !important;   /* fond blanc */
  border: 1px solid var(--gray-150);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 14px 16px 16px 16px;
}

/* 2) L’image reste à 90% mais reçoit un contour noir collé */
.product-card.v2 .pc-thumb {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 0;
  margin: 0 0 20px 0;   /* 👈 ajoute 20px sous l’image */
}

.product-card.v2 .pc-thumb img {
  width: 93%;
  height: auto;
  display: block;
  object-fit: contain;
  border-radius: 0;              /* important pour que le contour colle a la forme réelle */
  border: none;
  box-shadow: none;
  outline: none;

  /* ✅ Faux contour noir qui suit la zone non transparente */
  -webkit-filter:
    drop-shadow( 1px  0   0 rgba(0,0,0,0.18))
    drop-shadow(-1px  0   0 rgba(0,0,0,0.18))
    drop-shadow( 0    1px 0 rgba(0,0,0,0.18))
    drop-shadow( 0   -1px 0 rgba(0,0,0,0.18));
  filter:
    drop-shadow( 1px  0   0 rgba(0,0,0,0.18))
    drop-shadow(-1px  0   0 rgba(0,0,0,0.18))
    drop-shadow( 0    1px 0 rgba(0,0,0,0.18))
    drop-shadow( 0   -1px 0 rgba(0,0,0,0.18));
}

/* 3) La petite boîte d’informations redevient beige */
.product-card.v2 .pc-features {
  width: 90%;
  margin: 8px auto 30px auto;
  box-sizing: border-box;

  background: #fbf8f6 !important;         /* beige doux */
  border: 1px solid #eee5df;
  border-radius: 12px;

  padding: 16px 28px 18px 32px;
  list-style: disc outside;
  column-count: 2;
  column-gap: 32px;
  font-size: 15px;
  line-height: 1.55;
}

.product-card.v2 .pc-features li {
  break-inside: avoid;
  margin-bottom: 6px;
}

/* 4) Bouton centré (inchangé) */
.product-card.v2 .pc-actions {
  width: 90%;
  margin: 12px auto 20px;
  text-align: center;
}
.product-card.v2 .pc-actions .btn {
  min-width: 240px;
}



/* === PAGE ÉLÈVES — Bande de catégorie full-bleed (beige pâle, texte bourgogne) === */
.models-group-title{
  position: relative;
  z-index: 0;
  color: var(--burgundy-900, #7a002f) !important;  /* ✅ texte bourgogne */
  background: transparent;                         /* pas de fond direct */
  font-family: 'Poppins', sans-serif;
  font-size: 28px;
  font-weight: 700;
  padding: 12px 0;                                  /* pas de padding latéral → aligné comme le reste */
  margin: 56px 0 22px;                              /* air autour du bandeau */
  border: 0;
  box-shadow: none;
}

/* Fond beige plein écran derrière le texte, sans décaler l’alignement */
.models-group-title::before{
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  height: 100%;
  width: 100vw;                 /* full-bleed */
  transform: translateX(-50%);
  background: #f4efea;          /* ✅ beige pâle */
  z-index: -1;
  /* Lignes très discrètes pour mieux séparer (optionnel) */
  box-shadow: inset 0 1px 0 #e9dfd6, inset 0 -1px 0 #e9dfd6;
}

@media (max-width: 900px){
  .models-group-title{
    font-size: 22px;
    margin: 40px 0 18px;
    padding: 10px 0;
  }
}

/* === ESPACEMENT ENTRE CARTES PRODUITS === */
.page-eleves .product-card.v2,
.page-enseignants .product-card.v2{
  margin-bottom: 42px !important;  /* respiration nette entre deux produits */
}

/* Un petit espace garanti après la bande de catégorie et avant le 1er produit */
.models-group-title + .product-card.v2{
  margin-top: 18px !important;
}

/* ==== ACCUEIL — placeholders visuels ==== */

/* 1) Héros (image de classe/produit) */
.hero-visual{
  aspect-ratio: 16/10;                 /* garde une belle hauteur */
  background-image: url("assets/accueil/hero-placeholder.webp");
  background-size: cover;
  background-position: center;
  color: transparent;                  /* masque le texte décoratif */
}

/* 2) Cartes produits (3 vignettes) */
.card .thumb{
  aspect-ratio: 3/2;
  background-size: cover;
  background-position: center;
}

/* On assigne une image différente à chaque carte */
.cards .card:nth-child(1) .thumb{
  background-image: url("assets/accueil/eleves-agenda-thumb.webp");
}
.cards .card:nth-child(2) .thumb{
  background-image: url("assets/accueil/enseignants-prestige-thumb.webp");
}
.cards .card:nth-child(3) .thumb{
  background-image: url("assets/accueil/accessoires-calendriers-thumb.webp");
}

/* 3) Personnalisation — panneau visuel à gauche */
.section #personnalisation .panel{
  min-height: 320px;
  background-image: url("assets/accueil/personnalisation-mockup.webp");
  background-size: cover;
  background-position: center;
}

/* === HERO – image d’en-tête (version HTML avec <img>) === */
.hero-visual{
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow);
  background: transparent !important; /* retire la teinte grise */
  margin-top: 12px; /* petit ajustement pour respirer sous le texte */
}

.hero-visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit: cover;
  aspect-ratio: 16 / 10; /* garde la bonne proportion sans distorsion */
}

/* === SECTION PERSONNALISATION === */
#personnalisation .panel {
  background: none !important; /* Enlève le fond beige */
  padding: 0 !important;
}

#personnalisation .panel img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important; /* L’image remplit tout l’espace */
  border-radius: 0 !important;  /* Enlève les coins arrondis */
  display: block;
}

/* === Image de la section "Créez un agenda à l'image de votre école" === */
#personnalisation .panel img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 12px !important; /* ✅ Coins arrondis */
  display: block;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06); /* optionnel : même ombrage que les autres images */
}

/* === PAGE ÉLÈVES — images dans la section Personnalisation === */
.page-eleves .perso-card .thumb {
  background: none !important;
  padding: 0 !important;
  height: auto !important;
}

.page-eleves .perso-card .thumb img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;         /* mêmes coins arrondis que le reste du site */
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
  object-fit: cover;
}

/* === PAGE ÉLÈVES — Ajustement des espacements dans les cartes de personnalisation === */
.page-eleves .perso-card {
  padding: 16px 18px 20px 18px !important; /* espace plus uniforme autour */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
}

.page-eleves .perso-card .thumb {
  margin: 0 auto 12px auto !important; /* espace réduit au-dessus et dessous */
  width: 100%;
}

.page-eleves .perso-card .thumb img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  object-fit: cover;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* Ajuste aussi l'espacement du texte et du bouton pour une cohérence parfaite */
.page-eleves .perso-card h3 {
  margin: 8px 0 6px 0 !important;
}

.page-eleves .perso-card p {
  margin-bottom: 10px !important;
}

.page-eleves .perso-card .actions {
  margin-top: 8px !important;
}

/* === Couvertures : 3 vignettes par rangée (desktop), 2 (tablet), 1 (mobile) === */
.covers-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

/* Chaque couverture conserve son format naturel sans contrainte */
.cover-item img {
  width: 100%;
  height: auto;              /* ✅ hauteur auto selon proportions naturelles */
  object-fit: contain;       /* aucune coupure, image complète */
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  display: block;
  background: #fff;
}

/* Centrage et petite marge uniforme sous chaque image */
.cover-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cover-item p {
  margin-top: 8px;
  text-align: center;
}

/* === Espacement entre sections “standard” et “catholique” === */
.covers-grid + .covers-group-title {
  margin-top: 60px;
}

/* === Responsive === */
@media (max-width: 1024px) {
  .covers-grid {
    grid-template-columns: repeat(2, 1fr);  /* tablette : 2 colonnes */
  }
}
@media (max-width: 640px) {
  .covers-grid {
    grid-template-columns: 1fr;             /* mobile : 1 colonne */
  }
}

/* Sécurité globale : pas de scroll latéral parasite */
html, body { overflow-x: hidden; }

/* ============================
   PACK MOBILE (≤ 768px)
   ============================ */
@media (max-width: 768px){

  /* 1) Logo ~90% (évite qu’il touche à gauche / le CTA) */
  header .brand img,
  .site-header .brand img{
    max-height: 58px !important; /* si desktop ≈ 65px */
    height: auto !important;
    width: auto !important;
  }

  /* 2) Bouton “Demander une soumission” → texte bien centré */
  .navbar .btn,
  .nav-cta .btn,
  .btn.btn-primary{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  /* 3) Héros (“Les agendas scolaires…”) → image bien centrée */
  .hero-visual{
    transform: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 4) “Créer un agenda…” → la boîte ne dépasse plus l'image */
  #personnalisation .panel{
    min-height: 0 !important;
    padding: 0 !important;
    background: none !important;
  }
  #personnalisation .panel picture{ display:block; margin:0 !important; }
  #personnalisation .panel img{
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 12px !important;
  }

  /* 5) Footer (bande noire) → tout centré en mobile */
  footer .footer-inner,
  footer .footer-inner .container,
  footer nav,
  footer .footer-bottom,
  footer .footer-bottom .container{
    text-align: center !important;
  }
  footer .footer-inner{
    display: grid !important;
    gap: 12px !important;
    justify-items: center !important;
  }
  footer ul{ justify-content: center !important; }

  /* ====== NAV MOBILE (panneau plein écran pour .nav-links) ====== */
  body.nav-open { overflow: hidden; }  /* bloque le scroll derrière */

  /* Le conteneur des liens devient un panneau coulissant plein écran */
  .nav-links{
    position: fixed !important;
    top: 0; right: 0; bottom: 0; left: auto;
    width: 100vw;
    max-width: none;
    background: #fff;
    transform: translateX(100%);      /* caché à droite */
    transition: transform .28s ease;
    z-index: 999;
    box-shadow: -8px 0 24px rgba(0,0,0,.08);
    overflow-y: auto;
  }
  .nav-links.is-open{ transform: translateX(0); }

  .nav-links ul,
  .nav-links .submenu{
    list-style: none;
    padding: 0;
    margin: 0;
  }

  /* Pile verticale, grands tap targets */
  .nav-links{
    padding-top: 88px; /* laisse la place au header */
  }
  .nav-links > a,
  .nav-links .nav-item > a{
    display: block !important;
    padding: 14px 20px !important;
    font-size: 18px !important;
    border-bottom: 1px solid #eee;
  }

  /* Sous-menus toujours visibles (option simple et fiable) */
  .nav-links .submenu{
    display: block !important;
    padding: 6px 12px 10px 24px;
    border-bottom: 1px solid #f4f4f4;
  }
  .nav-links .submenu a{
    display: block;
    padding: 10px 6px;
    font-size: 16px;
  }

  /* Bouton hamburger au-dessus du panneau */
  .mobile-toggle{ position: relative; z-index: 1001; }

  /* Voile cliquable derrière le panneau */
  .nav-overlay{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
    z-index: 998;
  }
  .nav-overlay.is-active{
    opacity: 1;
    pointer-events: auto;
  }

  /* Le header ne doit pas couper le panneau */
  .site-header .container{ overflow: visible !important; }
}

/* Sécurité : pas de scroll horizontal parasite */
html, body { overflow-x: hidden; }

/* ============================
   PATCH MOBILE (≤ 768px)
   ============================ */
@media (max-width: 768px){

  /* 1) LOGO ~90% – on cible large pour couvrir tous les cas */
  header .brand img,
  .site-header .brand img,
  header .logo img,
  .site-header .logo img,
  header img[alt*="Classe"],
  header img[src*="logo"]{
    max-height: 58px !important;  /* ~90% d’un 65px desktop */
    height: auto !important;
    width: auto !important;
  }
  /* Aligne proprement la zone brand et évite que ça “pousse” */
  header .brand,
  .site-header .brand{ display:flex; align-items:center; gap:8px; }

  /* 2) HÉROS — image parfaitement centrée en mobile */
  .hero-visual,
  .hero .visual,
  .hero .media{
    transform: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    background-position: center center !important;
  }
  .hero-visual img,
  .hero .visual img,
  .hero .media img{
    display:block !important;
    margin:0 auto !important;
    max-width:100% !important;
    height:auto !important;
  }

  /* 3) NAV MOBILE — panneau plein écran pour .nav-links */
  body.nav-open { overflow: hidden; }  /* bloque le scroll derrière */

  .nav-links{
    position: fixed !important;
    top: 0; right: 0; bottom: 0; left: auto;
    width: 100vw;
    max-width: none;
    background: #fff;
    transform: translateX(100%);      /* caché à droite */
    transition: transform .28s ease;
    z-index: 999;
    box-shadow: -8px 0 24px rgba(0,0,0,.08);
    overflow-y: auto;
    display: block !important;        /* au cas où un display:none traîne */
    padding-top: 88px;                /* laisse la place au header */
    color: #111;                      /* texte lisible */
  }
  .nav-links.is-open{ transform: translateX(0); }

  /* Styles des liens dans le panneau */
  .nav-links ul{ list-style:none; margin:0; padding: 0 20px 24px; }
  .nav-links li{ margin:0; }
  .nav-links a{
    display:block !important;
    padding:14px 0 !important;
    font-size:18px !important;
    line-height:1.3 !important;
    color:#111 !important;            /* évite texte “blanc sur blanc” */
    border-bottom:1px solid #eee;
  }

  /* Overlay cliquable derrière le panneau */
  .nav-overlay{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
    z-index: 998;
  }
  .nav-overlay.is-active{
    opacity: 1;
    pointer-events: auto;
  }

  /* Le header ne doit pas couper le panneau */
  .site-header .container{ overflow: visible !important; }
}

/* === LOGO (desktop par défaut) === */
.site-header .brand img{
  height: 58px !important;      /* taille desktop (restera 58px) */
  max-height: none !important;
  width: auto !important;
  display: block;
}

/* === EN-TÊTE — marges latérales & placements (toutes largeurs) === */
.site-header .container.navbar{
  /* coussin gauche/droite qui s’adapte à la largeur */
  padding-inline: clamp(12px, 3vw, 24px) !important;
}

/* Petit retrait gauche pour le logo (gère aussi les petites largeurs) */
.site-header .brand{
  margin-left: clamp(8px, 2vw, 20px);
}

/* Zone CTA (bouton + hamburger) — espacements généraux */
.site-header .nav-cta{
  display: flex;
  align-items: center;
  gap: clamp(20px, 4vw, 80px);                           /* espace entre bouton et hamburger */
  margin-right: clamp(8px, 2vw, 20px); /* évite d’être collé au bord droit */
}

/* === MOBILE (≤768px) — taille du logo + bouton compact & sans doublon d’espace === */
@media (max-width: 768px){

  /* Si tu veux un logo plus petit en mobile, dé-commente la ligne suivante :
  .site-header .brand img{ height: 42px !important; } */

  /* Air latéral du header en mobile */
  .site-header .container.navbar{
    padding-left: 12px !important;
    padding-right: 12px !important; /* l’espace à droite vient d’ici */
  }

  /* Retrait gauche un peu plus généreux pour le logo */
  .site-header .brand{ margin-left: 16px; }

  /* Le bouton n’ajoute PAS de marge à droite (évite le cumul) */
  .site-header .nav-cta{
    gap: 5px;
    margin-right: 0 !important;
    padding-right: 0 !important;
  }

  .nav-cta .btn.btn-primary{
    font-size: 14px;
    padding: 8px 16px;
    border-radius: 8px;
    margin-right: 0 !important; /* clé : plus de marge droite en plus */
    margin-left: 0 !important;
  }

  .mobile-toggle{ margin: 0; }
}

/* === HAMBURGER MOBILE — panneau latéral + overlay === */
@media (max-width: 768px){
  /* Le panneau : nav-links coulisse depuis la droite */
  .nav-links{
    position: fixed; inset: 0 0 0 auto;
    width: 82%; max-width: 420px;
    background: #fff;
    transform: translateX(100%);
    transition: transform .28s ease;
    z-index: 1200;
    padding: 72px 20px 24px;          /* espace sous le header */
    overflow-y: auto;
    display: block !important;        /* évite un display:none résiduel */
  }
  .nav-links.is-open{ transform: translateX(0); }

/* Liste et liens (compatible avec ta structure SANS <ul> racine) */
.nav-links,
.nav-links > ul{
  list-style: none;
  margin: 0;
  padding: 0 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 14px;             /* espacement vertical des items */
}

/* Chaque lien est cliquable sur toute la largeur */
.nav-links a{
  display: block;
  padding: 12px 8px;
  color: #222;
  text-decoration: none;
  font-size: 17px;
}

/* Items de type “bloc” (tes <div class="nav-item">) */
.nav-links .nav-item{
  display: block;
}

/* Sous-menus : légère indentation (comme tu avais) */
.nav-links .submenu{
  margin: 6px 0 0 12px;
  padding-left: 10px;
  border-left: 2px solid #eee;
}
  /* Voile derrière le panneau */
  .nav-overlay{
    position: fixed; inset: 0;
    background: rgba(0,0,0,.45);
    opacity: 0; pointer-events: none;
    transition: opacity .28s ease;
    z-index: 1100;
  }
  .nav-overlay.is-active{ opacity: 1; pointer-events: auto; }

  /* Le container du header ne doit pas masquer le panneau */
  .site-header .container{ overflow: visible !important; }
  body.nav-open{ overflow: hidden; } /* bloque le scroll derrière */
}

/* === HAMBURGER — PATCH FINAL (ajouter tout en bas) === */
@media (max-width:768px){
  /* s'assure que le bouton est cliquable au-dessus de tout */
  .mobile-toggle{ position: relative; z-index: 1300; }

  /* l’overlay passe sous le panneau, mais au-dessus du reste */
  .nav-overlay{ z-index: 1100; }
  .nav-links{ z-index: 1200; will-change: transform; }

  /* au cas où un style ailleurs mettrait pointer-events:none */
  .nav-links.is-open{ pointer-events: auto; }
}

/* ============== MENU MOBILE 100% CSS ============== */
@media (max-width:768px){

  /* Cache le checkbox */
  .nav-toggle{ position:absolute; pointer-events:none; opacity:0; }

  /* Panneau (fermé par défaut) */
  .nav-links{
    position: fixed; top:0; right:0; bottom:0; left:auto;
    width: 82%; max-width: 420px;
    background:#fff;
    transform: translateX(100%);
    transition: transform .28s ease;
    z-index: 1200;
    padding: 72px 20px 24px;   /* laisse la zone du header */
    overflow-y: auto;
    display: block !important;
  }

  /* OUVERTURE via :checked */
  .nav-toggle:checked ~ .nav-links{
    transform: translateX(0);
  }

  /* Overlay (fermé par défaut) */
  .nav-overlay{
    position: fixed; inset:0;
    background: rgba(0,0,0,.45);
    opacity:0; pointer-events:none;
    transition: opacity .28s ease;
    z-index:1100;
    display:block;
  }
  /* Overlay actif quand coché */
  .nav-toggle:checked ~ .nav-overlay{
    opacity:1; pointer-events:auto;
  }

  /* Le hamburger doit toujours être cliquable au-dessus */
  .mobile-toggle{ position:relative; z-index:1300; cursor:pointer; }

  /* Lisibilité des liens dans le panneau */
  .nav-links,
  .nav-links > ul{
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column; gap:14px;
  }
  .nav-links a{
    display:block; padding:12px 8px;
    color:#222; text-decoration:none; font-size:17px;
  }
  .nav-links .nav-item{ display:block; }
  .nav-links .submenu{
    margin:6px 0 0 12px; padding-left:10px; border-left:2px solid #eee;
  }
}

/* ======= DESKTOP RESET (≥769px) — annule les styles mobile du menu ======= */
@media (min-width: 769px){

  /* Le checkbox du toggle + le burger ne doivent pas apparaître en desktop */
  .nav-toggle{ display: none !important; }
  .mobile-toggle{ display: none !important; }
  .nav-overlay{ display: none !important; }

  /* Le panneau nav redevient “inline” (pas coulissant) */
  .nav-links{
    position: static !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    padding: 0 !important;
    overflow: visible !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  /* Le header garde la structure classique : logo à gauche, nav à côté */
  .site-header .container.navbar{
    display: flex;
    align-items: center;
    justify-content: space-between; /* logo à gauche / nav + CTA à droite */
  }

  /* La barre de navigation redevient horizontale */
  .nav-links,
  .nav-links > ul{
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 24px;
    margin: 0; padding: 0;
  }

  /* Les items “bloc” restent inline en desktop */
  .nav-links .nav-item{ display: inline-block; }

  /* Les sous-menus conservent ton style desktop (dropdown) :
     si tu utilises déjà :hover ailleurs, on ne touche pas */
  .nav-links .submenu{
    position: absolute;
    /* garde tes règles existantes pour le dropdown desktop */
  }
}

/* ====== NAV MOBILE — hauteur utile + sous-menus en flux ====== */
@media (max-width:768px){

  /* 1) Panneau : pleine hauteur, scroll interne confortable */
  .nav-links{
    height: 100vh;                 /* occupe toute la hauteur écran */
    padding: 64px 20px 24px;       /* un peu moins d’espace en haut */
    overflow-y: auto;              /* le contenu défile dans le panneau */
    -webkit-overflow-scrolling: touch; /* scroll fluide iOS */
  }

  /* 2) Sous-menus : plus d’overlay, tout est dans le flux */
  .nav-links .nav-item{ position: static; }
  .nav-links .submenu{
    position: static !important;   /* annule un éventuel absolute desktop */
    display: block !important;     /* on les montre en mobile (simple & fiable) */
    margin: 6px 0 12px 12px;
    padding-left: 10px;
    border-left: 2px solid #eee;
    background: transparent;
    box-shadow: none;
  }

  /* 3) Lisibilité et rythme vertical */
  .nav-links a{
    display: block;
    padding: 12px 8px;
    font-size: 17px;
    line-height: 1.3;
    color: #222;
    text-decoration: none;
  }
}

/* === HÉRO (mobile) — la boîte = exactement la hauteur de l’image === */
@media (max-width: 768px){

  /* 1) Le grid n’étire plus les éléments en hauteur */
  .hero-grid{
    align-items: start !important;
    gap: 16px !important;
  }

  /* 2) Le conteneur visuel ne force AUCUNE hauteur/padding/ombre */
  .hero-visual{
    align-self: start !important;
    justify-self: stretch !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    line-height: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  .hero-visual picture{
    display: block !important;
    margin: 0 !important;
  }

  /* 3) L’ombre + arrondi se mettent SUR L’IMAGE (donc pile à sa taille) */
  .hero-visual img{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 18px rgba(0,0,0,.10) !important;
    object-fit: contain !important;
  }
}

/* =========================================================
   ACCUEIL — espace au-dessus de l'image héros (MOBILE seulement)
   ========================================================= */

/* 1) Solution simple et robuste : on ajoute de l'espace entre les 2 blocs de la grille */
@media (max-width: 1023px) {
  .page-accueil .hero-grid {
    grid-template-columns: 1fr;       /* (au cas où) */
    row-gap: 32px !important;         /* crée de l'espace ENTRE le texte et l'image */
  }
}

/* 2) Filet de sécurité : si le gap ne suffit pas, on insère un espace AU-DESSUS de l'image */
@media (max-width: 1023px) {
  .page-accueil .hero-visual::before {
    content: "";
    display: block;
    height: 4px;                     /* augmente à 48/64 si tu veux plus d'air */
  }
}

/* 3) Dernier recours si un autre style casse encore l'espacement */
@media (max-width: 1023px) {
  .page-accueil .hero-visual {
    margin-top: 0 !important;         /* neutralise d'anciennes marges contradictoires */
    transform: none !important;       /* neutralise d'anciens translate */
  }
}



/* === Hover "Cliquer pour voir le calendrier" — version ajustée === */

.product-card.v2 .pc-thumb {
  position: relative;
  cursor: pointer;
}

.product-card.v2 .hover-hint {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

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

  padding: 40px 20px; /* l'espace intérieur : ajuste si tu veux */
  max-width: 70%;     /* évite que la bulle devienne trop large */
  background: rgba(247, 242, 238, 0.85); /* beige semi-transparent */
  border: 1px solid var(--burgundy-900);
  border-radius: 999px;  /* forme pastille/bulle qui suit le texte */

  color: var(--burgundy-900);
  font-family: 'Poppins', sans-serif;
  font-size: 24px;
  line-height: 1.2;
  text-align: center;

  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.product-card.v2 .pc-thumb:hover .hover-hint {
  opacity: 1;
}



/* === Product Card V2 — espace autour du titre et sous-titre === */
.product-card.v2 .pc-head {
  padding: 18px 0 0px 20px;  
  /* top | right | bottom | left */
}

.product-card.v2 .pc-head h3 {
  margin: 0 0 8px 0;          /* espace sous le titre */
}

/* Sous-titre compact sous le titre principal */
.product-card.v2 .pc-head .subtitle{
  margin: 2px 0 0 0;
  color: var(--gray-900);
  font-size: 14px;
}

/* Mise en valeur du format (8,5" × 11") */
.product-card.v2 .pc-head .subtitle .format-highlight{
  font-weight: 700;
  color: var(--burgundy-900);
}


/* === Product Card V2 — année plus petite et non bold === */
.product-card.v2 .pc-head h3 .year {
  font-size: 0.55em;      /* environ 50% plus petit */
  font-weight: 400;       /* normal, pas bold */
  opacity: 0.85;          /* optionnel : un peu plus doux */
}




/* === PRODUCT CARD V2 — layout image gauche + texte semaine à droite === NOV-19, 10.37 CLEAN */

/* La carte reste une colonne globale */
.product-card.v2{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

/* Bloc principal : image + résumé de la semaine */
.product-card.v2 .pc-main{
  display: flex;              /* ✅ layout principal = flex */
  gap: 14px;                  /* espace entre image et texte */
  align-items: flex-start;
}

/* Image alignée à gauche, même style que tu avais déjà */
.product-card.v2 .pc-thumb{
  width: 100%;
  display: flex;
  justify-content: flex-start;
  position: relative;
  cursor: pointer;
}


/* Bloc semaine en un coup d’œil, sans encadré, sur fond blanc */
.product-card.v2 .pc-week{
  padding-top: 4px;
}


/* === Ajustement des espacements autour de la rangée image + texte === */

/* Réduit l'espace AU-DESSUS du bloc pc-main */
.product-card.v2 .pc-head {
  margin-bottom: 2px !important;   /* ← était souvent ~24px, on réduit fortement */
}

/* Réduit l'espace SOUS le bloc pc-main */
.product-card.v2 .pc-main {
  margin-bottom: 2px !important;   /* ← enlève ~30px de trop sous la rangée */
}

/* Réduit encore un peu l’espace avant le bouton */
.product-card.v2 .pc-actions {
  margin-top: 10px !important;      /* ← était 18px, on compacte sans serrer */
}




/* === Product Card V2 — styles texte communs Semaine + Mois === NOV-20 09:22 */

.product-card.v2 .pc-week,
.product-card.v2 .pc-month{
  padding-top: 4px;
}

/* Titre bourgogne, un peu plus grand */
.product-card.v2 .pc-week .view-title,
.product-card.v2 .pc-month .view-title{
  margin: 0 0 2px 0;
  font-family: 'Poppins', sans-serif;
  font-size: 17px;
  font-weight: 400;
  color: var(--burgundy-900);
}

/* Sous-titre petit, noir et gras */
.product-card.v2 .pc-week .view-subtitle,
.product-card.v2 .pc-month .view-subtitle{
  margin: 0 0 6px 0;
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-900);
}

/* Liste simple, sans boîte beige */
.product-card.v2 .pc-week ul,
.product-card.v2 .pc-month ul{
  margin: 0;
  padding-left: 18px;
  list-style: disc;
  font-size: 14px;
  line-height: 1.5;
  color: var(--gray-700);
}

.product-card.v2 .pc-week ul li,
.product-card.v2 .pc-month ul li{
  margin-bottom: 4px;
}



/* Un peu plus d’espace entre le bloc texte et le bouton */
.product-card.v2 .pc-actions{
  margin-top: 18px;
}

/* Mobile, on empile image puis texte semaine */
@media (max-width: 900px){
  .product-card.v2 .pc-main{
    flex-direction: column;   /* ✅ empile image puis texte */
    gap: 12px;
  }

  .product-card.v2 .pc-thumb img{
    width: 100%;
    margin: 0 auto;
  }
}



/* Le bloc Mois en un coup d’œil reste caché dans la page,
   il sera injecté dans le lightbox via JS */
.product-card.v2 .pc-month-detail{
  display: none;
}




/* Lightbox : suppression des flèches gauche/droite */
.lightbox .lb-prev,
.lightbox .lb-next {
  display: none !important;
}





/* === PATCH ESPACE VERTICAL AUTOUR DE LA PHOTO (PRODUCT CARD V2) === NOV-19 13.29 */

/* On resserre le padding général de la carte */
.product-card.v2{
  padding-top: 8px !important;
  padding-bottom: 10px !important;
}

/* On enlève la grosse marge sous l'image */
.product-card.v2 .pc-thumb{
  margin-top: 0 !important;
  margin-bottom: 4px !important;  /* ajuste à 0 si tu veux vraiment collé */
}

/* On évite de rajouter de l'air inutile sous le bloc image+texte */
.product-card.v2 .pc-main{
  margin-bottom: 0 !important;
}

/* On rapproche encore un peu le bouton du reste du contenu */
.product-card.v2 .pc-actions{
  margin-top: 0px !important;
  margin-bottom: 20px !important;
}


/* === PRODUCT CARD V2 — bouton sous l'image + image ~80% de largeur ===  NOV-20 16:16 (version consolidée) */

@media (min-width: 900px) {

  /* Carte en 2 colonnes : image (80%) | texte (20%) */
  .product-card.v2 {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 1fr);
    column-gap: 16px;
    align-items: flex-start;
  }

  /* Le bloc pc-main ne sert qu'à regrouper les éléments */
  .product-card.v2 .pc-main {
    display: contents;
  }

  /* Titre sur toute la largeur */
  .product-card.v2 .pc-head {
    grid-column: 1 / -1;
    margin-bottom: 4px;
  }

  /* Image dans la colonne 1 */
  .product-card.v2 .pc-thumb {
    grid-column: 1;
    justify-content: flex-start;
  }

  .product-card.v2 .pc-thumb img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* Colonne texte à droite : bloc 1 + bloc 2 empilés */
  .product-card.v2 .pc-week,
  .product-card.v2 .pc-month {
    grid-column: 2;
    max-width: 260px;
    padding-right: 8px;
  }

  .product-card.v2 .pc-month {
    margin-top: 12px; /* petit espace seulement entre les deux blocs */
  }

  /* Bouton sous l’image (colonne 1) */
  .product-card.v2 .pc-actions {
    grid-column: 1;
    justify-self: center;
    width: auto !important;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
  }
}




/* === PRODUCT CARD V2 — centrage du bloc texte sous l'image en mobile === NOV-20 09:27 */
@media (max-width: 900px){

  /* Blocs texte (semaine + mois) centrés sous l'image */
  .product-card.v2 .pc-week,
  .product-card.v2 .pc-month{
    text-align: center;
    margin: 0 auto;
    max-width: 90%;
  }

  /* Listes internes : texte à gauche mais bloc centré */
  .product-card.v2 .pc-week ul,
  .product-card.v2 .pc-month ul{
    text-align: left;
    margin-left: auto;
    margin-right: auto;
  }

  /* Image au-dessus, texte en dessous (ce que tu as déjà) */
  .product-card.v2 .pc-main{
    flex-direction: column;
    gap: 12px;
  }

  .product-card.v2 .pc-thumb img{
    width: 100%;
    margin: 0 auto;
  }
}


/* Saut de ligne visible uniquement en mobile */
.br-mobile-only {
  display: none;
}

@media (max-width: 900px) {
  .br-mobile-only {
    display: block;
  }
}







/* ============================
   TEST GLOBAL FULL-WIDTH
   ============================ */

.container{
  max-width: 100% !important;   /* le container peut enfin occuper toute la largeur */
  padding-left: 80px;
  padding-right: 80px;
}

/* Ajuste les marges sur les écrans plus petits */
@media (max-width: 1024px){
  .container{
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media (max-width: 640px){
  .container{
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* ============================
   CONTAINER FLUIDE "À LA PiQ"
   ============================ */

.container{
  max-width: 100% !important;
  padding-left: clamp(20px, 6vw, 140px);
  padding-right: clamp(20px, 6vw, 140px);
}





/* === HEADER — marges logo / bouton plus larges que les gaps internes === */
@media (min-width: 1200px){
  .site-header .brand{
    margin-right: clamp(40px, 6vw, 180px);     /* espace logo → “Accueil” */
  }

  .nav-cta{
    margin-left: clamp(40px, 6vw, 180px);      /* espace “Soumission” → bouton */
  }
}


/* === NAV DESKTOP — version finale fluide et propre === */
@media (min-width: 1024px){

  /* Conteneur principal du header */
  .site-header .container.navbar {
    display: grid;
    grid-template-columns: auto 1fr auto; /* logo | nav-links | bouton */
    align-items: center;
    column-gap: clamp(40px, 6vw, 160px);  /* espace fluide entre colonnes */
    max-width: 1600px;                   /* largeur max élégante */
    padding-inline: clamp(20px, 4vw, 80px);
    margin-inline: auto;
  }

  /* Le bloc navigation au centre */
  .nav-links {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;      /* liens répartis uniformément */
    gap: clamp(16px, 3vw, 64px);         /* espace entre Accueil / Produits / ... */
    flex: 1 1 auto;
  }

  /* Espace de luxe entre logo et menu */
  .site-header .brand {
    margin-right: clamp(40px, 7vw, 200px);
  }

  /* Espace de luxe entre menu et CTA */
  .nav-cta {
    margin-left: clamp(40px, 7vw, 200px);
  }
}



/* === PRODUCT CARD V2 — rapprocher "Mois en un coup d’œil" du bloc semaine === NOV-20 09:44 */
.product-card.v2 .pc-week .month-title{
  margin-top: 30px;          /* petit espace propre entre les deux blocs */
}

/* On s'assure que la liste qui suit colle bien au sous-titre */
.product-card.v2 .pc-week .month-title + .view-subtitle{
  margin-top: 2px;
}

.product-card.v2 .pc-week .month-title + .view-subtitle + ul{
  margin-top: 4px;
}




/* === Lightbox — on masque définitivement le bloc texte Mois en un coup d’œil === NOV-20 09:47 */
.lb-month{
  display: none !important;
}


/* === CARD PROJET BIEN-ÊTRE — lien vers la couverture === NOV-20 11:26 */

.product-card.v2 .view-cover-link{
  margin-top: 20px;            /* ⬅️ ajoute ~20px d’espace au-dessus */
  font-size: 14px;
  font-weight: 600;            /* ⬅️ un peu plus gras pour attirer l’œil */
  color: var(--gray-800);
}

.product-card.v2 .view-cover-link .cover-link{
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: var(--burgundy-900);
  text-decoration: underline;
  cursor: pointer;
}

.product-card.v2 .view-cover-link .cover-link:hover{
  color: var(--burgundy-700);
}


/* === LIGHTBOX — pastilles de pagination pour les galeries === */

.lightbox .lb-dots{
  margin-top: 12px;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.lightbox .lb-dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.6);
  background: rgba(0,0,0,0.3);
  cursor: pointer;
  transition: transform 0.15s ease, background-color 0.15s ease;
}

.lightbox .lb-dot.is-active{
  background: #ffffff;
  transform: scale(1.2);
}




/* ==== PAGE TITRE – Aperçu maquette ==== NOV-21 09:39 */
.page-id-thumb {
  position: relative;
  background: #f7f7f7;
  padding: 0;
  border-radius: 10px;
  overflow: hidden;
  cursor: zoom-in;
}

.page-id-thumb img {
  width: 100%;
  height: auto;
  display: block;
}

/* Hover hint */
.page-id-thumb .hover-hint {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 14px;
  color: #fff;
  background: rgba(0,0,0,0.55);
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}

.page-id-thumb:hover .hover-hint {
  opacity: 1;
}



/* === GUIDE DE L'ÉLÈVE — vignette sans fond beige + hover local === NOV-21 10:17 */
.guide-thumb{
  background: none !important;    /* enlève le beige de .panel */
  padding: 0 !important;
  box-shadow: none !important;
  border: none !important;

  position: relative;             /* référence pour l'overlay */
  display: block;
}

/* L'image remplit sa colonne, comme sur Page titre */
.guide-thumb img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
}

/* Overlay uniquement sur l'image, centré */
.guide-thumb .hover-hint{
  position: absolute;
  inset: 0;                       /* couvre exactement la surface de l'image */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;

  padding: 24px 18px;
  background: rgba(0,0,0,0.35);   /* gris seulement sur l'image */
  color: #fff;
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
  line-height: 1.3;
  border-radius: 12px;

  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}

.guide-thumb:hover .hover-hint{
  opacity: 1;
}



/* 🎯 Centrage mobile pour toutes les cartes et sections du site NOV-21 15:48 */
@media (max-width: 768px){

  /* TOUTES les sections avec titres */
  h1, h2, h3 {
    text-align: center;
  }

  /* Titres des cartes (perso-card, card, product-card, etc.) */
  .card h3,
  .perso-card h3,
  .product-card h3 {
    text-align: center;
  }

  /* Textes descriptifs sous les titres */
  .card p,
  .perso-card p,
  .product-card p,
  .lead {
    text-align: center;
  }

  /* Boutons dans les cartes */
  .card .actions,
  .perso-card .actions,
  .product-card .actions {
    text-align: center;
  }

  /* Boutons seuls dans une carte sans .actions */
  .card .btn,
  .perso-card .btn,
  .product-card .btn {
    display: inline-block;
    margin-left: auto;
    margin-right: auto;
  }
}


/* Réduit l’espace au-dessus de “Formats & contenu” uniquement sur la page Agenda élèves NOV-21 16:10 */
.page-eleves #formats-contenu.section {
  padding-top: 20px !important; /* tu peux mettre 10px ou 30px selon ton goût */
}




/* Bloc vedette NOV-21 16:58 */
.card.highlight {
  border: 2px solid var(--primary);
  box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}
.card.highlight h3 {
  color: var(--primary);
}



/* PAGE ACCESSOIRES — cartes produits NOV-22 09:20 */
.page-accessoires .cards.accessories {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
  align-items: stretch;
}

.page-accessoires .cards.accessories .card {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  display: flex;
  flex-direction: column;
}

/* Produit vedette : bordure colorée */
.page-accessoires .cards.accessories .card.accessory-feature {
  border: 3px solid var(--primary);
}


.page-accessoires .cards.accessories h3 {
  margin-top: 0;
  margin-bottom: 8px;
}

.page-accessoires .cards.accessories p {
  margin-top: 0;
  margin-bottom: 8px;
}

.page-accessoires .cards.accessories ul {
  margin-top: 0;
  padding-left: 1.2rem;
}

.page-accessoires .cards.accessories .actions {
  margin-top: auto;
  display: flex;
  justify-content: center;
}

/* Mobile : titres centrés, listes lisibles */
@media (max-width: 768px) {
  .page-accessoires .cards.accessories .card {
    text-align: center;
  }

  .page-accessoires .cards.accessories ul {
    text-align: left;
    display: inline-block;
  }
}




/* === PAGE ACCESSOIRES — vignettes dédiées, indépendantes du reste === NOV-22 09:59 */

.page-accessoires .accessory-thumb{
  margin: 0 0 16px 0;
  padding: 0;
  background: transparent;   /* plus de rectangle gris */
  border-radius: 12px;
  overflow: hidden;          /* si jamais l’image dépasse un peu */
}

.page-accessoires .accessory-thumb img{
  display: block;
  max-width: 100%;
  height: auto;
  object-fit: contain;       /* on voit l’image au complet */
}



/* === PAGE À PROPOS === DEC-05 13:54 */

.about-contact {
  display: flex;
  flex-direction: column;
  gap: 12px; /* espace SANS exagérer entre les sections */
}

.about-contact h2 {
  margin-bottom: 10px;
}

.about-office {
  padding-left: 0;
  margin-bottom: 6px;
}

.about-contact p strong {
  display: block;
  margin-bottom: 4px; /* petit espace entre le sous-titre et l’info */
}

.about-contact p {
  margin: 0; /* enlève les grands espaces qu’on voit actuellement */
}

/* === PAGE À PROPOS — Ajustements fins === */

/* 1. Réduit l'espace entre les paragraphes */
.page-apropos .about-main p {
  margin-bottom: 14px; /* plus compact, très propre */
}

/* 2. Style général des H2 */
.page-apropos .about-main h2 {
  margin-top: 28px;
  margin-bottom: 12px;
}

/* 3. Premier h2 (« Qui nous sommes ») ne doit rien avoir au-dessus */
.page-apropos .about-main h2:first-of-type {
  margin-top: 0;
}
