* { box-sizing: border-box; margin: 0; padding: 0; }

body{
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
  background-color: #f7f5f0;
  color: #333;
}

.page{
  max-width: 1100px;
  margin: 0 auto;
  background: #fff;
  min-height: 100vh;
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
}

/* HEADER */
header{
  padding: 12px 20px;
  border-bottom: 1px solid #eadfcd;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 10;
}

.logo img{ height: 85px; display:block; }

.menu-toggle{
  display:none;
  background:none;
  border:1px solid #d6c7aa;
  border-radius:6px;
  padding:6px 10px;
  font-size:0.9rem;
  cursor:pointer;
  color:#333;
}

/* NAV PC */
nav ul{
  display:flex;
  gap:12px;
  list-style:none;
  font-size:0.95rem;
  align-items:center;
  white-space:nowrap;
  flex-wrap:nowrap;
  justify-content:flex-start;
}

nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:#333;
  padding:8px 12px;
  border-radius:999px;
  line-height:1;
  border:1px solid transparent;
}

nav a:hover{
  color:#b18124;
  background:#faf7f2;
  border-color:#d6c7aa;
}

nav a.active{
  background:#faf7f2;
  border-color:#d6c7aa;
  font-weight:600;
}

/* SHARED */
.page-banner{ width:100%; height:auto; display:block; }

main{ padding:24px 20px 40px; }

section{
  padding:32px 0;
  border-bottom:1px solid #f0e5d4;
}
section:last-of-type{ border-bottom:none; padding-bottom:0; }

h1{ font-size:1.9rem; margin-bottom:12px; }
h2{ font-size:1.4rem; margin-bottom:12px; }
h3{ font-size:1.05rem; margin-bottom:8px; }

.jp{ font-size:0.95rem; color:#555; }

/* BUTTONS */
.btn-primary{
  display:inline-block;
  padding:10px 18px;
  border-radius:999px;
  background:#c59b3b;
  color:#fff;
  font-weight:600;
  text-decoration:none;
  border:none;
}

.btn-secondary{
  display:inline-block;
  padding:8px 16px;
  border-radius:999px;
  border:1px solid #d6c7aa;
  background:#faf7f2;
  text-decoration:none;
}

.btn-secondary-small{
  display:inline-block;
  padding:6px 14px;
  border-radius:999px;
  border:1px solid #d6c7aa;
  background:#faf7f2;
  font-size:0.85rem;
  margin-top:6px;
  text-decoration:none;
}

/* FOOTER */
footer{
  font-size:0.8rem;
  color:#666;
  padding:14px 20px;
  text-align:center;
  background:#fff;
  border-top:1px solid #eadfcd;
}

.footer-title{ font-weight:700; font-size:0.95rem; }
.footer-subtitle{ font-size:0.8rem; color:#777; }
.footer-copy{ font-size:0.75rem; margin-top:4px; color:#999; }

/* MOBILE */
@media (max-width: 768px){
  header{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }

  .logo img{ height:56px; }

  .menu-toggle{
    display:block;
    align-self:flex-end;
  }

  nav{ width:100%; margin-top:4px; display:none; }
  body.nav-open nav{ display:block; }

  nav ul{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    font-size:0.9rem;
    padding:6px 0 4px;
    border-top:1px solid #eadfcd;
    margin-top:4px;
    flex-wrap:nowrap;
  }
}
/* =========================
   RESSOURCES (page)
   ========================= */

/* Optionnel : si tu veux que la page Ressources soit un peu plus large
   que les autres (comme dans ressources.html), d?commente ceci.
   Attention : ?a s'appliquera ? toutes les pages utilisant .page.
*/
/*
.page{
  max-width:1100px;
}
*/

main{ padding:18px 18px 34px; }

h1{ font-size:1.7rem; margin-bottom:4px; }

.jp-title{
  font-size:1rem;
  color:#555;
  margin-bottom:10px;
}

p.intro{
  font-size:.95rem;
  color:#555;
  margin-bottom:14px;
}

/* Grille globale des ressources */
.resources-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}

.resource-box{
  background:#faf7f3;
  border:1px solid rgba(234,223,205,.7);
  border-radius:12px;
  padding:12px 12px;
  box-shadow:0 1px 4px rgba(0,0,0,0.04);
  font-size:.95rem;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.resource-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
}
.resource-head h2{
  font-size:1.15rem;
  margin:0;
  line-height:1.2;
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:2px 10px;
  border-radius:999px;
  font-size:.75rem;
  background:#c59b3b;
  color:#fff;
  white-space:nowrap;
}

/* Bloc liens: 2 colonnes (PDF / YouTube) */
.resource-body{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.group{
  background:rgba(255,255,255,.65);
  border:1px solid rgba(234,223,205,.85);
  border-radius:12px;
  padding:10px;
}

.group-title{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:800;
  font-size:.9rem;
  margin-bottom:8px;
  color:#3b3b3b;
}

.links{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
}

.link{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:10px;
  text-decoration:none;
  border:1px solid rgba(214,199,170,.9);
  background:#fff;
  color:#0b1b3b;
  font-weight:700;
  font-size:.93rem;
  line-height:1.2;
}
.link:hover{
  border-color:rgba(197,155,59,.9);
  color:#c59b3b;
}

.ico{
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:inline-block;
}

.muted{
  font-weight:600;
  color:#555;
}

/* Responsive */
@media (max-width: 980px){
  .resources-grid{ grid-template-columns:1fr; }
}

@media (max-width: 768px){
  .resource-body{ grid-template-columns:1fr; }
}

/* =========================
   RESSOURCES ? compactage + anti-coupe
   ========================= */

/* Marges internes plus petites */
main{ padding: 12px 12px 22px; }

/* Grille plus compacte */
.resources-grid{ gap: 10px; }

.resource-box{
  padding: 10px;
  gap: 8px;
}

.resource-body{ gap: 8px; }

.group{ padding: 8px; }

/* Boutons/liens : moins hauts + autoriser le contenu ? se r?duire */
.link{
  padding: 6px 8px;
  border-radius: 10px;
  min-width: 0;          /* important en flex */
}

/* Emp?che le texte de forcer un d?bordement */
.link svg,
.link .ico{ flex: 0 0 18px; }

.link{ overflow: hidden; }         /* ?vite l?ic?ne hors cadre */
.link{ align-items: center; }

/* Si un texte est trop long, il se coupe proprement au lieu de casser */
.link{
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* (Optionnel) r?duire l?g?rement la taille des liens pour gagner en largeur */
.link{ font-size: 0.9rem; }

/* Sur ?crans moyens/?troits : passer en 1 colonne plus t?t */
@media (max-width: 1100px){
  .resources-grid{ grid-template-columns: 1fr; }
}

.link{
  padding-left: 12px;   /* au lieu de 10px si tu es ? 10 */
}

.link .ico{
  margin-left: 2px;
  overflow: visible;
}

.link{ overflow: visible; }
.ico{ overflow: visible; }
/* --- Badge menu (ex: ABC??????) --- */
.nav-badge{
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.75em;
  line-height: 1.4;
  background: #d6b36a;
  color: #1b1b1b;
  font-weight: 700;
  vertical-align: middle;
}

/* Quand la page est active, le badge reste lisible */
a.active .nav-badge{
  background: #b18124;
  color: #ffffff;
}
/* ===== Instagram icon button (contact) ===== */
.contact-instagram{
  margin-top: 10px;
}

.contact-instagram a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:50px;
  height:50px;
  border-radius:50%;
  background:#faf7f3;
  transition: all 0.2s ease;
}

.contact-instagram a:hover{
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}

.ig-icon{
  width: 50px;
  height: 50px;
  display: block;
  object-fit: contain;
}

/* ===== D?placer le bouton Instagram en bas ? droite de la carte Contact ===== */
.contact-card-main{
  position: relative;
  padding-bottom: 50px; /* r?serve de place pour le bouton */
}

.contact-card-main .contact-instagram{
  position: absolute;
  right: 16px;
  bottom: 16px;
  margin-top: 0; /* annule le margin-top actuel */
}
