/* ===== Fonts — Switzer (Fontshare) ===== */
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/Switzer-300.woff2') format('woff2');
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/Switzer-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/Switzer-400-italic.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/Switzer-500.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/Switzer-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/Switzer-700.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/Switzer-800.woff2') format('woff2');
  font-weight: 800; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Switzer';
  src: url('../assets/fonts/Switzer-900.woff2') format('woff2');
  font-weight: 900; font-style: normal; font-display: swap;
}

/* ===== Fonts — Anton (Google Fonts) : titres display ===== */
@font-face {
  font-family: 'Anton';
  src: url('../assets/fonts/Anton-latin.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Anton';
  src: url('../assets/fonts/Anton-latin-ext.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ===== Fonts — General Sans (Fontshare) : texte courant ===== */
@font-face {
  font-family: 'General Sans';
  src: url('../assets/fonts/GeneralSans-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'General Sans';
  src: url('../assets/fonts/GeneralSans-400-italic.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'General Sans';
  src: url('../assets/fonts/GeneralSans-500.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'General Sans';
  src: url('../assets/fonts/GeneralSans-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'General Sans';
  src: url('../assets/fonts/GeneralSans-700.woff2') format('woff2');
  font-weight: 700 900; font-style: normal; font-display: swap;
}

/* ===== Base ===== */
/* Pas de scroll-behavior:smooth : certaines extensions (adblock/smooth-scroll)
   interrompent l'animation native et le clic d'ancre ne défile plus du tout.
   Le saut instantané, lui, fonctionne partout. */
body { margin: 0; background: #FAF5EC; }

/* Le héro reste sur photo sombre : son texte garde la couleur crème.
   Idem pour les sections bordeaux (Adhésion, CTA, confirmation). */
#hero,
section[style*="#5E0F1F"],
section[style*="#7A1A2A"] { color: #FFF7E6; }

/* ===== Animations ===== */
@keyframes celest-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes celest-pulse { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } }
@keyframes celest-scan { from { background-position: 0 0; } to { background-position: 0 56px; } }

/* ===== Typographie ===== */
/* Titres display : Anton (une seule graisse, condensée — l'esprit affiche de match).
   Tout le reste : General Sans (la graisse 700 sert les font-weight 700 à 900). */
h1, h2, .page-title, .hero-title {
  font-family: 'Anton', 'Switzer', sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.5px !important;
}
/* Anton est condensée : on compense la largeur perdue sur le titre héro */
.hero-title { font-size: 76px !important; }
#stats-grid span[id^="stat-"],
.carte-col span[style*="font-size:46px"] {
  font-family: 'Anton', 'Switzer', sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.5px !important;
}
p, .legal li {
  font-family: 'General Sans', 'Switzer', sans-serif;
}

/* ===== Header / menu mobile ===== */
.header-inner { position: relative; }
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 40px;
  height: 40px;
  padding: 0 9px;
  background: rgba(255, 253, 248, 0.75);
  border: 1px solid rgba(166, 118, 7, 0.5);
  cursor: pointer;
  flex-shrink: 0;
}
.menu-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background: #8A5B06;
}

/* ===== Hover states (from design style-hover attributes) ===== */
.nav-link:hover { color: #A67607 !important; }
.link-member:hover { color: #5E0F1F !important; }
.btn-gold:hover { background: #ffc93d !important; }
.btn-outline:hover { border-color: #F1B51D !important; color: #F1B51D !important; }
.card-hover:hover { border-color: rgba(166, 118, 7, 0.6) !important; }
/* Cartes cliquables (lien_url en base) : lien sans soulignement, couleurs héritées */
a.card-hover { text-decoration: none; color: inherit; }
.footer-link:hover { color: #FFF7E6 !important; }

/* ===== Responsive ===== */
/* Les surcharges utilisent !important car la mise en page du design est en styles inline. */

@media (max-width: 980px) {
  .site-nav { display: none !important; }
  .site-nav.open {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0 !important;
    padding: 18px 28px 22px;
    background: rgba(250, 245, 236, 0.98);
    border-bottom: 1px solid rgba(166, 118, 7, 0.3);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    font-size: 15px !important;
  }
  .menu-toggle { display: flex; }
  .link-member { display: none !important; }

  .grid-association { grid-template-columns: 1fr !important; gap: 40px !important; }
  .assoc-left { position: static !important; }
  .grid-adhesion { grid-template-columns: 1fr !important; gap: 40px !important; }
  .carte-col { max-width: 480px; width: 100%; margin: 0 auto; }
  .grid-events { grid-template-columns: repeat(2, 1fr) !important; }
  .grid-boutique { grid-template-columns: repeat(2, 1fr) !important; }
  .grid-transparence { grid-template-columns: 1fr !important; gap: 40px !important; }
  .grid-rdv { grid-template-columns: 1fr !important; }
  .grid-detail { grid-template-columns: 1fr !important; gap: 32px !important; }
  #stats-grid { grid-template-columns: repeat(2, 1fr) !important; row-gap: 28px !important; }
  .grid-footer { grid-template-columns: 1fr 1fr !important; }
}

@media (max-width: 768px) {
  .section-inner { padding: 64px 20px !important; }
  .hero-content { padding: 140px 20px 48px !important; }
  .hero-title { font-size: 52px !important; }
  .page-title { font-size: 36px !important; }
  h2 { font-size: 30px !important; letter-spacing: -0.5px !important; }
  #stats-grid { padding: 40px 20px !important; }
  #stats-grid span[id^="stat-"] { font-size: 28px !important; }
  .grid-avantages { grid-template-columns: 1fr !important; }
  .section-head { flex-wrap: wrap; align-items: flex-start !important; }
  .grid-footer { padding: 48px 20px 32px !important; }
  header .btn-gold { font-size: 12.5px !important; padding: 10px 14px !important; }
  .header-inner { padding: 10px 16px !important; gap: 12px !important; }
}

@media (max-width: 640px) {
  .hero-title { font-size: 42px !important; }
  .page-title { font-size: 31px !important; }
  h2 { font-size: 27px !important; }
  .grid-events { grid-template-columns: 1fr !important; }
  .grid-boutique { grid-template-columns: 1fr !important; }
  .grid-cards2 { grid-template-columns: 1fr !important; }
  .grid-footer { grid-template-columns: 1fr !important; gap: 28px !important; }
  .carte-col { max-width: none; }
}

/* Prix de la carte membre : pas de retour à la ligne sur mobile */
.carte-col span[style*="font-size:46px"] { white-space: nowrap; }
@media (max-width: 640px) {
  .carte-col span[style*="font-size:46px"] { font-size: 38px !important; }
}
