:root {
  --alpeh-pink:  #D62B71; /* rose/framboise */
  --alpeh-blue:  #08A1DD; /* bleu */
  --alpeh-orange:#E55A2F; /* orange */
  --alpeh-green: #9EC14B; /* vert */
  --alpeh-purple:#65286B; /* violet */

  --alpeh-dark: #65286B /*#252525*/;
  --alpeh-light: #C0C0C0 /*#f8f8fb*/;
  --alpeh-border: #D62B71 /*#e0e0f0*/;
  --alpeh-verylight: #F0F0F0;
  --radius: 14px;
  --shadow-soft: 0 10px 25px rgba(0, 0, 0, 0.05);
}


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

body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--alpeh-dark);
  background: #fff;
  line-height: 1.5;
}

a {
  text-decoration: none;
  color: inherit;
}

/* LAYOUT GÉNÉRAL */

.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 1.5rem 1.2rem 2.5rem;
}

/* HEADER / NAV */

header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--alpeh-border);
}

.nav-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0.6rem 1.2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.logo-zone {
  /* tes styles existants si tu en as (padding, margin, etc.) */
}

.logo-link {
  display: block;           /* ou inline-block selon ton header */
  text-decoration: none;
  color: inherit;
}

.logo-table {
  display: table;           /* ← la magie commence ici */
  width: 100%;              /* ou auto / max-width: 500px; selon tes besoins */
  table-layout: auto;       /* ou fixed si tu veux des largeurs précises */
}

.logo-cell {
  display: table-cell;
  vertical-align: middle;   /* centre verticalement image et texte */
}

.logo-cell-image {
  width: 1%;                /* l'image prend juste l'espace nécessaire */
  white-space: nowrap;      /* empêche le texte de l'image de forcer un retour */
  padding-right: 15px;      /* ← espace entre logo et texte – ajuste ce chiffre ! */
}

.logo-cell-text {
  width: auto;              /* prend le reste de l'espace */
}

.logo-img {
  max-width: 140px;         /* ← mets LA taille que tu avais avant (très important) */
  height: auto;
  display: block;
}

.logo-text-sub {
  font-size: 1.1rem;        /* ajuste à ta taille originale */
  line-height: 1.3;
  white-space: normal;      /* permet au texte de passer à la ligne si besoin */
}

/* Optionnel : sur mobile, on peut passer en bloc si trop serré */
@media (max-width: 768px) {
  .logo-table {
    display: block;         /* empile si l'écran est trop petit */
  }
  .logo-cell {
    display: block;
  }
  .logo-cell-image {
    padding-right: 0;
    margin-bottom: 10px;
    text-align: center;     /* centre le logo sur mobile */
  }
}

nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  position: relative;
}

.nav-links {
  list-style: none;  /* supprime les puces */
	margin: 0;         /* supprime marge par défaut */
  padding: 0;        /* supprime padding par défaut */
  display: flex;
  gap: 0.9rem;
  font-size: 0.9rem;
  font-weight: 500;
}

.nav-links li {
  margin: 0;
  padding: 0;
}

.nav-links a {
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  transition: background 0.2s ease, color 0.2s ease, transform 0.1s ease;
}

.nav-links a:hover {
  background: var(--alpeh-light);
  transform: translateY(-1px);
}

.nav-links a.active {
  background: var(--alpeh-purple);   /* fond rose plein */
  color: white;                    /* texte blanc */
  border-radius: 999px;            /* forme arrondie */
  padding: 0.45rem 0.9rem;         /* donne du volume */
  font-weight: 600;                /* plus visible */
}


.btn-adhesion {
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  border: 2px solid var(--alpeh-pink);
  cursor: pointer;
  background: white;                  /* fond clair */
  color: var(--alpeh-pink);           /* texte rose charte */
  font-weight: 600;
  font-size: 0.9rem;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
  transition: transform 0.1s ease, box-shadow 0.1s ease,
              background 0.15s ease, color 0.15s ease;
  white-space: nowrap;
}

.btn-adhesion:hover {
  background: var(--alpeh-pink);      /* survol : fond rose plein */
  color: white;
  box-shadow: 0 6px 14px rgba(214, 43, 113, 0.25);
  transform: translateY(-1px);
}

/* NAV MOBILE */

.nav-toggle {
  display: none;
  background: none;
  border: none;
  font-size: 1.8rem;          /* plus visible */
  color: var(--alpeh-dark);
  cursor: pointer;
  padding: 0.5rem;
  z-index: 100;
}


/* HERO / TITRES */

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.2fr);
  gap: 2.2rem;
  align-items: center;
  margin-top: 1.5rem;
}

@media (max-width: 900px) {
  .hero {
    grid-template-columns: 1fr;
  }
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  background: var(--alpeh-light);
  color: #555;
  margin-bottom: 0.6rem;
}

.hero-badge-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--alpeh-green);
}

.hero-title {
  font-size: clamp(1.9rem, 3vw, 2.4rem);
  font-weight: 800;
  letter-spacing: 0.02em;
  margin-bottom: 0.8rem;
}

.hero-highlight {
  background: linear-gradient(120deg, var(--alpeh-pink), var(--alpeh-orange));
  -webkit-background-clip: text;
  color: transparent;
}

.hero-text {
  font-size: 0.98rem;
  max-width: 35rem;
  color: #444;
  margin-bottom: 1.1rem;
}

.hero-secondary {
  font-size: 0.85rem;
  color: #666;
}

.hero-amount {
  font-weight: 700;
  color: var(--alpeh-purple);
}

/* CARTES / BLOCS */

.card {
  background: white;
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
  padding: 1.2rem 1.3rem 1.1rem;
  border: 1px solid var(--alpeh-border);
}

.card h2 {
  font-size: 1.3rem;
  margin-bottom: 0.6rem;
}

.card h3 {
  font-size: 1.05rem;
  margin-bottom: 0.4rem;
}

.card + .card {
  margin-top: 1rem;
}

/* LISTES */

ul {
  padding-left: 1.1rem;
  margin: 0.4rem 0 0.2rem;
}

li + li {
  margin-top: 0.2rem;
}

/* GRILLES (membres, représentants) */

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.member-card {
  display: flex;
  gap: 1.2rem;
  padding: 1.3rem;
  border-radius: 22px;
  background: white;
  border: 2px solid var(--alpeh-border);
  box-shadow: var(--shadow-soft);
  align-items: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: hidden;
}



.member-card {
  display: flex;
  gap: 1.2rem;
  padding: 1.3rem;
  border-radius: 22px;
  background: white;
  border: 2px solid var(--alpeh-border);
  box-shadow: var(--shadow-soft);
  align-items: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: hidden;
}

/* Petit accent couleur en haut */
.member-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 6px;
  width: 100%;
  background: linear-gradient(
    90deg,
    var(--alpeh-pink),
    var(--alpeh-orange),
    var(--alpeh-green),
    var(--alpeh-blue),
    var(--alpeh-purple)
  );
}

/* Effet au survol */
.member-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 28px rgba(0,0,0,0.08);
}

.member-photo {
  width: 95px;
  height: 95px;
  object-fit: cover;
  border-radius: 18px;
  border: 3px solid var(--alpeh-light);
  transition: transform 0.2s ease;
}

.member-card:hover .member-photo {
  transform: rotate(-3deg) scale(1.05);
}



.member-name {
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--alpeh-purple);
  margin-bottom: 0.2rem;
}

.member-role {
  font-size: 0.9rem;
  color: var(--alpeh-orange);
  font-weight: 600;
}

.member-school {
  font-size: 0.85rem;
  margin-top: 0.3rem;
  color: var(--alpeh-blue);
}

.member-right {
  margin-left: -0.9rem;          /* ou -0.5rem / -0.6rem selon le décalage voulu */
  /* ou bien padding-left: -0.4rem; si tu préfères */
}


/* AGENDA */

.agenda-filters {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.btn-filter {
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--alpeh-border);
  background: #fff;
  font-size: 0.85rem;
  cursor: pointer;
}

.btn-filter.active {
  background: var(--alpeh-orange);
  border-color: var(--alpeh-orange);
  color: white;
  font-weight: 600;
}

.agenda-list {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.agenda-item {
  display: grid;
  grid-template-columns: 120px 1fr; /* date étroite + zone description */
  gap: 1rem;
  padding: 0.9rem 0;
  border-bottom: 1px dashed #ddd;
  align-items: start;
}

.agenda-date {
  font-weight: 700;
  color: var(--alpeh-pink);
  font-size: 1rem;
  text-align: left;   /* évite le centrage vertical */
}

@media (max-width: 600px) {
  .agenda-item {
    grid-template-columns: 1fr; /* une seule colonne */
  }
}

.logo-letter {
  font-weight: 800;   /* on peut accentuer un peu la lettre */
}

.logo-letter-a { color: var(--alpeh-pink); }   /* A */
.logo-letter-l { color: var(--alpeh-blue); }   /* L */
.logo-letter-p { color: var(--alpeh-orange); } /* P */
.logo-letter-e { color: var(--alpeh-green); }  /* É */
.logo-letter-h { color: var(--alpeh-purple); } /* H */


.agenda-meta {
  font-size: 0.78rem;
  color: #666;
}

.cr-download {
  background: #E0F4FB; /* bleu clair pastel */
  color: #08A1DD;      /* ton bleu principal */
  padding: 0.35rem 0.7rem;
  border-radius: 8px;
  font-size: 0.85rem;
  text-decoration: none;
  font-weight: 600;
  transition: background 0.2s ease, color 0.2s ease;
}

.cr-download:hover {
  background: #08A1DD; /* bleu vif au survol */
  color: white;
}



/* Encadré rose */
.alpeh-box{
  background: #fff;
  border: 2px solid var(--alpeh-border);
  border-radius: 20px;
  padding: 1.4rem 1.6rem;
  box-shadow: var(--shadow-soft);
}

/* Mise en page 2 colonnes */
.home-grid{
  display:grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 2rem;
  align-items:start;
}

@media (max-width: 900px){
  .home-grid{
    grid-template-columns: 1fr;
  }
}

.home-left p{
  max-width: 60ch;
}

.home-wide{
  margin-top: 1.6rem;
}

@media (max-width: 900px){
  .home-grid{ grid-template-columns: 1fr; }
}

/* ===== ALPEH helpers (couleurs + titres + boxes) ===== */
.alpeh-pink   { color: var(--alpeh-pink); }
.alpeh-blue   { color: var(--alpeh-blue); }
.alpeh-orange { color: var(--alpeh-orange); }
.alpeh-green  { color: var(--alpeh-green); }
.alpeh-purple { color: var(--alpeh-purple); }

.alpeh-title {
  font-size: 2.0rem;
  font-weight: 550;
  line-height: 1.2;
}

/* Encadrés */
.alpeh-box {
  border: 2px solid #D62B71;
  border-radius: 20px;
  padding: 1.5rem;
  margin-top: 1.5rem;
}

/*Formulaire Contact*/
.wpforms-form {
  max-width: 700px;
  margin: 0 auto;
}
.wpforms-field label {
  color: var(--alpeh-purple);
  font-weight: 600;
}
.wpforms-submit {
  background: var(--alpeh-pink);
  border: none;
  color: white;
  padding: 0.8rem 1.8rem;
  border-radius: 999px;
  font-weight: 600;
  transition: all 0.2s;
}
.wpforms-submit:hover {
  background: var(--alpeh-orange);
  transform: translateY(-2px);
}

/* ===== Mise en couleur programme fête du court métrage ===== */

.programme-layout {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}

.programme-contenu {
  flex: 1 1 auto;
  min-width: 0;
}

.programme-image {
  flex: 0 0 260px;
  max-width: 260px;
}

.programme-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.15);
}

.alpeh-programme {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1rem;
  table-layout: fixed;
}

.alpeh-programme th,
.alpeh-programme td {
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid #f1d4e2;
}

.alpeh-programme th {
  color: #65286B;
  font-weight: 700;
}

.alpeh-programme td:first-child,
.alpeh-programme th:first-child {
  width: 90px;
  white-space: nowrap;
}

.alpeh-programme td:last-child,
.alpeh-programme th:last-child {
  width: 110px;
  white-space: nowrap;
  text-align: right;
}

.alpeh-programme td:nth-child(2),
.alpeh-programme th:nth-child(2) {
  width: auto;
}

.alpeh-programme tbody tr:last-child td {
  border-bottom: none;
}

.programme-image {
  flex: 0 0 220px;
  max-width: 220px;
}

a.lien-programme{
  color:#08A1DD !important;
  font-weight:600;
  text-decoration:none;
}

a.lien-programme:hover{
  color:#D62B71 !important;
  text-decoration:underline;
}

@media (max-width: 900px) {
  .programme-layout {
    flex-direction: column;
  }

  .programme-image {
    flex: none;
    max-width: 220px;
    width: 100%;
    margin: 0 auto;
  }
}


/* Couleur titre événement */
.card h1,
.card h2{
  color:#D62B71;
}

/* Couleur sous-titre */
.card p:first-of-type{
  color:#08A1DD;
  font-weight:600;
}
/* FOOTER */

footer {
  margin-top: auto;
  border-top: 1px solid var(--alpeh-border);
  background: #fafafa;
}

.footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0.8rem 1.2rem 1.2rem;
  font-size: 0.8rem;
  color: #666;
  display: flex;
  justify-content: space-between;
  gap: 0.7rem;
  flex-wrap: wrap;
}

/*menu hamburger*/

@media (max-width: 720px) {
  .nav-container {
    flex-wrap: wrap;
  }

  nav {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: 100%;
  }

  .nav-toggle {
    display: block;
  }

  .nav-links {
    width: 100%;
    margin-top: 0.8rem;
    padding: 1rem;
    list-style: none;
    background: #fff;
    border: 1px solid var(--alpeh-border);
    border-radius: 12px;
    box-shadow: 0 8px 16px rgba(0,0,0,0.1);
  }

  .btn-adhesion {
    display: none;
  }
}

@media (max-width: 720px) {
  .nav-toggle {
    display: block !important;
  }

  .nav-container {
    flex-wrap: wrap !important;
  }

  nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    width: 100% !important;
  }

  ul.nav-links {
    display: none !important;
    width: 100% !important;
    margin: 0.8rem 0 0 0 !important;
    padding: 1rem !important;
    list-style: none !important;
    background: #fff !important;
    border: 1px solid var(--alpeh-border) !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 16px rgba(0,0,0,0.1) !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 1rem !important;
    position: static !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  ul.nav-links.open {
    display: flex !important;
  }

  .btn-adhesion {
    display: none !important;
  }
}

/*encart à la une*/

.alpeh-highlight {
  margin: 2rem 0 2.5rem;
  padding: 1.8rem;
  border-radius: 20px;
  background: linear-gradient(135deg,
    rgba(214, 43, 113, 0.1),
    rgba(8, 161, 221, 0.1)
  );
  border: 2px solid var(--alpeh-pink);
  box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

.alpeh-highlight-badge {
  display: inline-block;
  margin-bottom: 0.8rem;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  background: var(--alpeh-pink);
  color: #fff;
  font-weight: 700;
  font-size: 0.8rem;
}

.alpeh-highlight h2 {
  margin: 0 0 0.6rem;
  color: var(--alpeh-purple);
}

.alpeh-highlight p {
  margin: 0;
  color: #5a2a6d;
}

.alpeh-highlight-btn {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.5rem 0.9rem;
  border-radius: 8px;
  background: var(--alpeh-blue);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

/* ================================
   VERSION COMPACTE SUR LA HOME
   ================================ */

.home .alpeh-highlight {
  margin: 1.2rem 0 1.8rem;
  padding: 1.1rem 1.3rem;
}

.home .alpeh-highlight h2 {
  margin: 0 0 0.7rem;
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  line-height: 1.2;
}

.home .alpeh-highlight ul {
  margin: 0 0 0.8rem 1.2rem;
  padding: 0 0 0.7rem;
}

.home .alpeh-highlight li {
  margin-bottom: 0.45rem;
  font-size: 0.98rem;
  line-height: 1.4;
}

.home .alpeh-highlight p {
  margin: 0.45rem 0;
  font-size: 0.98rem;
  line-height: 1.5;
}

.home .alpeh-highlight p:first-of-type {
  font-size: 1rem;
}

.home .alpeh-highlight-badge {
  margin-bottom: 0.6rem;
  padding: 0.3rem 0.8rem;
  font-size: 0.78rem;
}

.home .alpeh-highlight-btn {
  margin-top: 0.8rem;
  padding: 0.55rem 0.9rem;
  font-size: 0.92rem;
  border-radius: 9px;
}

.home .alpeh-highlight img {
  max-width: 180px;
  height: auto;
  display: block;
  margin-top: 0.8rem;
}

@media (max-width: 768px) {
  .home .alpeh-highlight {
    padding: 1rem 1rem;
  }

  .home .alpeh-highlight h2 {
    font-size: 1rem;
  }

  .home .alpeh-highlight li,
  .home .alpeh-highlight p {
    font-size: 0.95rem;
  }

  .home .alpeh-highlight img {
    max-width: 140px;
  }
}

.alpeh-separator-ag {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 2.5rem 0 2rem;
  position: relative;
}

.alpeh-separator-ag::before,
.alpeh-separator-ag::after {
  content: "";
  flex: 1;
  height: 2px;
  background: linear-gradient(
    to right,
    transparent,
    var(--alpeh-blue),
    var(--alpeh-pink),
    transparent
  );
  opacity: 0.6;
}

.alpeh-divider-strong {
  border: none;
  height: 0;
  margin: 2.3rem 0 1.8rem;
  border-top: 2px solid rgba(214, 43, 113, 0.22);
}