/* =========================================================================
   VERS UN MIEUX-ÊTRE — style.css
   Feuille de style pure CSS pour le header (bandeau + nav) et le footer.
   Indépendante de Tailwind / du compilateur Pinegrow : peut être éditée
   avec n'importe quel éditeur (Nova, VS Code...) sans étape de build.

   ⚠️ Les variables --primary-* et --accent-* ci-dessous sont des ESTIMATIONS
   basées sur le rendu visuel de votre thème Tailwind personnalisé (je n'ai
   pas accès à votre tailwind.config.js). Si elles ne tombent pas exactement
   juste, il suffit de corriger les valeurs ici — tout le reste du fichier
   les référence automatiquement, rien d'autre à toucher.
   ========================================================================= */

:root{
  /* --- Couleurs de marque (estimées) --- */
  --primary-50:  #EDF4EF;
  --primary-100: #E3EEE6;
  --primary-400: #6E8F78;
  --primary-500: #5C7F63;
  --primary-600: #4C6B52;
  --primary-700: #1C3A2E;   /* couleur "encre" confirmée (header, boutons) */
  --primary-800: #142B21;

  --accent-100:  rgba(255,255,255,0.85);
  --accent-300:  #E3A48F;
  --accent-400:  #D98F72;
  --accent-500:  #C97B63;   /* terracotta confirmé (logo, puce top-bar) */
  --accent-900:  #5C2E1F;

  /* --- Palette neutre (Tailwind slate, valeurs standard) --- */
  --slate-50:  #f8fafc;
  --slate-100: #f1f5f9;
  --slate-200: #e2e8f0;
  --slate-300: #cbd5e1;
  --slate-400: #94a3b8;
  --slate-500: #64748b;
  --slate-600: #475569;
  --slate-700: #334155;
  --slate-800: #1e293b;
  --slate-900: #0f172a;

  /* --- Palette accent chaud (Tailwind amber/orange, valeurs standard) --- */
  --amber-300: #fcd34d;
  --amber-400: #fbbf24;
  --amber-500: #f59e0b;
  --amber-700: #b45309;
  --orange-400:#fb923c;

  /* --- Typo --- */
  --font-sans:  -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-serif: Georgia, "Times New Roman", serif; /* remplacez par votre police serif si différente (ex: Lora) */
}

/* Utilitaire minimal : conservé pour compatibilité avec le JS existant qui
   fait probablement classList.toggle('hidden') sur le menu mobile. */
.hidden{ display:none !important; }

@-webkit-keyframes fadeInDown{
  from{ opacity:0; -webkit-transform:translateY(-10px); transform:translateY(-10px); }
  to{ opacity:1; -webkit-transform:translateY(0); transform:translateY(0); }
}

@keyframes fadeInDown{
  from{ opacity:0; -webkit-transform:translateY(-10px); transform:translateY(-10px); }
  to{ opacity:1; -webkit-transform:translateY(0); transform:translateY(0); }
}
@-webkit-keyframes pingAnim{
  75%, 100%{ -webkit-transform:scale(2); transform:scale(2); opacity:0; }
}
@keyframes pingAnim{
  75%, 100%{ -webkit-transform:scale(2); transform:scale(2); opacity:0; }
}
@-webkit-keyframes pulseAnim{
  0%, 100%{ opacity:1; }
  50%{ opacity:.5; }
}
@keyframes pulseAnim{
  0%, 100%{ opacity:1; }
  50%{ opacity:.5; }
}

/* =========================================================================
   TOP BAR
   ========================================================================= */
.top-bar{
  background-color: var(--primary-700);
  color:#fff;
  padding: 0.75rem 1rem;
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
      -ms-flex-direction:column;
          flex-direction:column;
  -webkit-box-pack:justify;
      -ms-flex-pack:justify;
          justify-content:space-between;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  font-size:0.875rem;
  -webkit-box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
          box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
  position:relative;
  z-index:50;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
@media (min-width:640px){
  .top-bar{ -webkit-box-orient:horizontal; -webkit-box-direction:normal; -ms-flex-direction:row; flex-direction:row; }
}
@media (min-width:768px){
  .top-bar{ padding-left:3rem; padding-right:3rem; }
}

.top-bar__welcome{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  gap:0.75rem;
  margin-bottom:0.5rem;
}
@media (min-width:640px){
  .top-bar__welcome{ margin-bottom:0; }
}

.top-bar__dot-wrap{
  position:relative;
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  -webkit-box-pack:center;
      -ms-flex-pack:center;
          justify-content:center;
  width:1.5rem;
  height:1.5rem;
}
.top-bar__ping{
  position:absolute;
  display:-webkit-inline-box;
  display:-ms-inline-flexbox;
  display:inline-flex;
  inset:0;
  border-radius:9999px;
  background-color: var(--accent-500);
  opacity:0.3;
  -webkit-animation: pingAnim 1.2s cubic-bezier(0,0,0.2,1) infinite;
          animation: pingAnim 1.2s cubic-bezier(0,0,0.2,1) infinite;
}
.top-bar__dot{
  width:0.5rem;
  height:0.5rem;
  border-radius:9999px;
  background-color: var(--accent-500);
  -webkit-box-shadow: 0 0 10px rgba(201,123,99,0.6);
          box-shadow: 0 0 10px rgba(201,123,99,0.6);
}

.top-bar__text{
  -webkit-filter: drop-shadow(0 1px 1px rgba(0,0,0,0.1));
          filter: drop-shadow(0 1px 1px rgba(0,0,0,0.1));
  font-weight:400;
  text-transform:none;
  color: var(--accent-100);
  font-size:0.75rem;
  letter-spacing:0.05em;
}
.top-bar__cabinet{ font-weight:700; font-size:0.875rem; }
.top-bar__city{ text-transform:capitalize; font-weight:600; font-size:0.875rem; }
.top-bar__region{ font-weight:300; font-size:0.75rem; }

.top-bar__actions{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -ms-flex-wrap:wrap;
      flex-wrap:wrap;
  gap:1rem;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  -webkit-box-pack:center;
      -ms-flex-pack:center;
          justify-content:center;
  margin-top:0.625rem;
  margin-inline:auto;
}
@media (min-width:640px){
  .top-bar__actions{
    -webkit-box-pack:end;
        -ms-flex-pack:end;
            justify-content:flex-end;
    margin-left:auto;
    margin-right:0;
    margin-top:0;
  }
}

.top-bar__phone{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  gap:0.5rem;
  color: var(--accent-100);
  text-decoration:none;
  -webkit-transition:color .2s ease;
  transition:color .2s ease;
}
.top-bar__phone:hover{ color:#fff; }
.top-bar__phone:hover .top-bar__phone-label{
  text-decoration:underline;
  text-decoration-color: var(--accent-500);
  text-underline-offset:4px;
}
.top-bar__phone-label{
  font-weight:500;
  display:none;
}
@media (min-width:640px){
  .top-bar__phone-label{ display:inline; }
}

.top-bar__divider{
  width:1px;
  height:1rem;
  background-color:rgba(255,255,255,0.2);
  display:none;
}
@media (min-width:640px){
  .top-bar__divider{ display:block; }
}

.top-bar__cta{
  display:-webkit-inline-box;
  display:-ms-inline-flexbox;
  display:inline-flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  gap:0.5rem;
  background:#fff;
  color: var(--primary-700);
  padding:0.375rem 1.25rem;
  border-radius:9999px;
  font-size:0.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.05em;
  text-decoration:none;
  -webkit-transition: background .2s ease, border-color .2s ease, -webkit-box-shadow .2s ease;
  transition: background .2s ease, border-color .2s ease, -webkit-box-shadow .2s ease;
  transition: background .2s ease, box-shadow .2s ease, border-color .2s ease;
  transition: background .2s ease, box-shadow .2s ease, border-color .2s ease, -webkit-box-shadow .2s ease;
  -webkit-box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
          box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
  margin-left:0.5rem;
  border:1px solid transparent;
}
.top-bar__cta:hover{
  background: #F3F1EA;
  border-color: rgba(201,123,99,0.3);
  -webkit-box-shadow: 0 10px 15px -3px rgba(28,58,46,0.2);
          box-shadow: 0 10px 15px -3px rgba(28,58,46,0.2);
}

/* =========================================================================
   HEADER PRINCIPAL (logo + navigation)
   ========================================================================= */
.site-header{
  backdrop-filter: blur(12px);
  background-color: rgba(255,255,255,0.9);
  border-bottom:1px solid var(--slate-200);
  -webkit-box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
          box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
  position:sticky;
  top:0;
  width:100%;
  z-index:40;
}
@media (min-width:940px){
  .site-header{ background-color:#f3f4f6; }
}

.site-header__inner{
  max-width:90rem; /* 80rem = 1280px */
  margin-inline:auto;
  padding:1rem 1.5rem;
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-pack:justify;
      -ms-flex-pack:justify;
          justify-content:space-between;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
}

/* --- Logo / nom du site --- */
.brand-block{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
      -ms-flex-direction:column;
          flex-direction:column;
  -webkit-box-pack:center;
      -ms-flex-pack:center;
          justify-content:center;
}
.brand-link{
  color: var(--primary-700);
  font-family: var(--font-serif);
  font-weight:700;
  font-size:1.5rem;
  line-height:1;
  text-decoration:none;
  -webkit-transition:color .3s ease;
  transition:color .3s ease;
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  gap:0.5rem;
}
.brand-link:hover{ color: var(--primary-800); }
@media (min-width:768px){
  .brand-link{ font-size:1.875rem; }
}
.brand-link__icon{
  width:2rem;
  height:2rem;
  -ms-flex-negative:0;
      flex-shrink:0;
  margin-left:10px;
  margin-right:-9px;
}
@media (min-width:768px){
  .brand-link__icon{ width:2.25rem; height:2.25rem; }
}
.brand-link__text{ color:inherit; }
.brand-link__accent{ color: var(--amber-500); }

.brand-tagline{
  font-size:0.75rem;
  color: var(--primary-400);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.2em;
  margin-top:0.25rem;
  margin-left:0.5rem;
}
@media (min-width:768px){
  .brand-tagline{ font-size:0.875rem; }
}

/* --- Bouton menu mobile --- */
.menu-toggle{
  display:block;
  color: var(--slate-600);
  padding:0.5rem;
  background:none;
  border:none;
  border-radius:0.5rem;
  cursor:pointer;
  -webkit-transition:background-color .2s ease;
  transition:background-color .2s ease;
}
.menu-toggle:hover{ background-color: var(--slate-100); }
.menu-toggle:focus-visible{
  outline:none;
  -webkit-box-shadow:0 0 0 2px var(--primary-500);
          box-shadow:0 0 0 2px var(--primary-500);
}
@media (min-width:940px){
  .menu-toggle{ display:none; }
}
.menu-toggle svg{
  width:1.5rem;
  height:1.5rem;
  display:block;
  -webkit-transition:-webkit-transform .3s ease;
  transition:-webkit-transform .3s ease;
  transition:transform .3s ease;
  transition:transform .3s ease, -webkit-transform .3s ease;
}
#menu-icon-close{ -webkit-transform:rotate(90deg); -ms-transform:rotate(90deg); transform:rotate(90deg); }

/* --- Menu de navigation --- */
.main-menu{
  display:none;              /* caché par défaut (mobile, fermé) */
  position:absolute;
  left:0;
  top:100%;
  width:100%;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
      -ms-flex-direction:column;
          flex-direction:column;
  gap:0.5rem;
  background-color:rgba(255,255,255,0.95);
  backdrop-filter: blur(12px);
  border-bottom:1px solid var(--slate-200);
  -webkit-box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1);
          box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1);
  padding:1.5rem 1rem;
  font-weight:500;
  color: var(--slate-500);
  font-size:0.875rem;
  text-transform:uppercase;
  letter-spacing:0.1em;
}
.main-menu.is-open{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;               /* affiché quand on clique le hamburger */
  -webkit-animation: fadeInDown .25s ease-out;
          animation: fadeInDown .25s ease-out;
}
@media (min-width:940px){
  .main-menu{
    position:static;
    width:auto;
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-orient:horizontal;
    -webkit-box-direction:normal;
        -ms-flex-direction:row;
            flex-direction:row;
    gap:1rem;
    -webkit-box-align:center;
        -ms-flex-align:center;
            align-items:center;
    /* margin-inline:auto;  ← supprimez cette ligne */
    padding:0;
    background:transparent;
    backdrop-filter:none;
    border:none;
    -webkit-box-shadow:none;
            box-shadow:none;
    -webkit-animation:none;
            animation:none;
  }
}
@media (min-width:1024px){
  .main-menu{ gap:2rem; }
}

.main-menu__link{
  display:block;
  padding:0.75rem 1rem;
  border-radius:0.5rem;
  text-decoration:none;
  color:inherit;
  -webkit-transition: background-color .2s ease, color .2s ease, border-color .2s ease;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.main-menu__link:hover{
  background-color: var(--slate-50);
  color: var(--primary-600);
}
@media (min-width:940px){
  .main-menu__link{
    padding:0 0 0.25rem 0;
    background:transparent;
    border-radius:0;
    border-bottom:2px solid transparent;
  }
  .main-menu__link:hover{
    background:transparent;
    border-bottom-color: var(--primary-600);
  }
}

.main-menu__link--active{
  background-color: var(--primary-50);
  color: var(--primary-800);
  border-left:4px solid var(--primary-600);
  font-weight:700;
}
@media (min-width:940px){
  .main-menu__link--active{
    background:transparent;
    border-left:none;
    border-bottom:2px solid var(--primary-600);
    color: var(--primary-700);
    padding:0 0 0.25rem 0;
    border-radius:0;
    -webkit-box-shadow:none;
            box-shadow:none;
  }
}

.main-menu__divider{
  padding:0.5rem 2rem;
}
@media (min-width:940px){
  .main-menu__divider{ display:none; }
}
.main-menu__divider-line{
  height:1px;
  width:100%;
  background: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(rgba(180,83,9,0.6)), to(transparent));
  background: linear-gradient(to right, transparent, rgba(180,83,9,0.6), transparent);
}

.main-menu__legal{
  display:block;
  padding:0.5rem 1rem;
  border-radius:0.5rem;
  font-size:0.75rem;
  font-weight:700;
  color: var(--slate-400);
  text-transform:uppercase;
  letter-spacing:0.1em;
  text-decoration:none;
  -webkit-transition: background-color .2s ease, color .2s ease;
  transition: background-color .2s ease, color .2s ease;
}

.main-menu__legal:hover{
  background-color: var(--slate-50);
  color: var(--primary-600);
}
@media (min-width:940px){
  .main-menu__legal, .main-menu__legal-item { display:none; }
}


/* =========================================================================
   SOUS-MENU PAGES LÉGALES (desktop uniquement)
   ========================================================================= */
.legal-subnav{
  display: none;                 /* masqué par défaut (mobile) */
  position: sticky;
  top: 82px;                     /* doit correspondre à la hauteur du header
                                     principal — à ajuster si celle-ci change */
  margin-top: 5px;
  width: 100%;
  background-color: var(--slate-50);
  border-bottom: 1px solid #dbeafe; /* blue-100 */
  z-index: 40;
  -webkit-box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
          box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
}
@media (min-width: 768px){
  .legal-subnav{ display: block; }
}

.legal-subnav__inner{
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 1.5rem;
  max-width: 80rem;
  margin: 0.25rem auto 0;
  padding: 0.75rem 1.5rem;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--slate-400);
}

.legal-subnav__link{
  color: inherit;
  text-decoration: none;
  -webkit-transition: color .2s ease;
  transition: color .2s ease;
}
.legal-subnav__link:hover{ color: #2563eb; } /* blue-600 */

.legal-subnav__link--active{
  color: #172554; /* blue-950 */
  border-bottom: 2px solid var(--amber-400);
  padding-bottom: 2px; /* évite que la bordure ne colle au texte */
}
.legal-subnav__link--active:hover{ color: #172554; } /* pas de changement au survol sur la page active */



/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{
  background-color: var(--slate-900);
  color: var(--slate-300);
  position:relative;
  padding-top:6rem;
  overflow:hidden;
  font-family: var(--font-sans);
}

.site-footer__glow{
  position:absolute;
  top:-6rem;
  right:-6rem;
  width:24rem;
  height:24rem;
  background-color:rgba(92,46,31,0.4); /* accent-900 / 40% */
  border-radius:9999px;
  -webkit-filter:blur(64px);
          filter:blur(64px);
  mix-blend-mode:screen;
  pointer-events:none;
}
.site-footer__fade{
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:50%;
  background:-webkit-gradient(linear, left bottom, left top, from(rgba(0,0,0,0.5)), to(transparent));
  background:linear-gradient(to top, rgba(0,0,0,0.5), transparent);
  pointer-events:none;
}

.site-footer__inner{
  max-width:80rem;
  margin-inline:auto;
  padding:0 1.5rem 3rem;
  position:relative;
  z-index:10;
}

.site-footer__grid{
  display:-ms-grid;
  display:grid;
  -ms-grid-columns:1fr;
  grid-template-columns:1fr;
  gap:3rem;
  margin-bottom:1.5rem;
  padding-bottom:1.5rem;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
@media (min-width:768px){
  .site-footer__grid{ -ms-grid-columns:(1fr)[2]; grid-template-columns:repeat(2,1fr); }
}
@media (min-width:1024px){
  .site-footer__grid{ -ms-grid-columns:(1fr)[12]; grid-template-columns:repeat(12,1fr); }
}

/* --- Colonne marque --- */
.site-footer__brand{ display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; gap:1.5rem; }
@media (min-width:1024px){
  .site-footer__brand{ -ms-grid-column-span: 4; grid-column: span 4; }
}
.site-footer__brand-link{ display:inline-block; text-decoration:none; }
.site-footer__eyebrow{
  display:block;
  font-weight:600;
  margin-bottom:1rem;
  color: var(--amber-500);
  font-size:0.875rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
}
.site-footer__title{
  font-weight:700;
  font-family: var(--font-serif);
  font-size:1.875rem;
  color:#fff;
  display:block;
  margin-bottom:0.75rem;
}
@media (min-width:1024px){
  .site-footer__title{ font-size:2.25rem; }
}
.site-footer__title-accent{ color: var(--amber-400); -webkit-transition:color .2s ease; transition:color .2s ease; }
.site-footer__brand-link:hover .site-footer__title-accent{ color: var(--orange-400); }

.site-footer__author{
  margin-top:-1.25rem;
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  gap:0.75rem;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  color: var(--slate-300);
  -webkit-transition:color .2s ease;
  transition:color .2s ease;
}
.site-footer__brand-link:hover .site-footer__author{ color:#fff; }
.site-footer__author-line{
  height:1px;
  width:1.5rem;
  background-color: rgba(245,158,11,0.5);
  -webkit-transition:background-color .2s ease;
  transition:background-color .2s ease;
}
.site-footer__brand-link:hover .site-footer__author-line{ background-color: var(--amber-400); }
.site-footer__author-name{ font-size:1rem; font-weight:500; letter-spacing:0.02em; }

.site-footer__desc{
  color: var(--slate-400);
  line-height:1.7;
  max-width:24rem;
}

/* --- Colonne navigation --- */
.site-footer__nav{}
@media (min-width:1024px){
  .site-footer__nav{ -ms-grid-column: 6; -ms-grid-column-span: 2; grid-column: 6 / span 2; }
}
.site-footer__heading{
  color:#fff;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:0.75rem;
  margin-bottom:1.5rem;
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  gap:0.75rem;
}
.site-footer__heading-dot{
  width:0.5rem;
  height:0.5rem;
  border-radius:9999px;
  -ms-flex-negative:0;
      flex-shrink:0;
}
.site-footer__heading-dot--amber{ background-color: var(--amber-400); -webkit-box-shadow:0 0 12px rgba(251,191,36,0.5); box-shadow:0 0 12px rgba(251,191,36,0.5); }
.site-footer__heading-dot--primary{ background-color: var(--primary-500); -webkit-box-shadow:0 0 12px rgba(92,127,99,0.5); box-shadow:0 0 12px rgba(92,127,99,0.5); }
.site-footer__heading-dot--accent{ background-color: var(--accent-400); -webkit-box-shadow:0 0 12px rgba(217,143,114,0.5); box-shadow:0 0 12px rgba(217,143,114,0.5); }

.site-footer__nav-list{ list-style:none; margin:0; padding:0; display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; gap:0.75rem; font-size:0.875rem; }
.site-footer__nav-link{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  gap:0.5rem;
  color:inherit;
  text-decoration:none;
  -webkit-transition:color .2s ease;
  transition:color .2s ease;
}
.site-footer__nav-link:hover{ color: var(--amber-300); }
.site-footer__nav-link-dot{
  width:0.25rem;
  height:0.25rem;
  border-radius:9999px;
  background-color: var(--slate-600);
  -webkit-transition:background-color .2s ease;
  transition:background-color .2s ease;
}
.site-footer__nav-link:hover .site-footer__nav-link-dot{ background-color: var(--amber-300); }

/* --- Colonne contact --- */
.site-footer__contact{}
@media (min-width:1024px){
  .site-footer__contact{ -ms-grid-column-span: 3; grid-column: span 3; }
}
.site-footer__contact-list{ list-style:none; margin:0; padding:0; display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; gap:1rem; font-size:0.875rem; }
.site-footer__contact-item{ display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-align:start; -ms-flex-align:start; align-items:flex-start; gap:0.75rem; }
.site-footer__contact-icon{
  width:2rem;
  height:2rem;
  border-radius:0.5rem;
  background-color: var(--slate-800);
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  -webkit-box-pack:center;
      -ms-flex-pack:center;
          justify-content:center;
  color: var(--primary-500);
  -ms-flex-negative:0;
      flex-shrink:0;
  -webkit-transition: background-color .2s ease, color .2s ease;
  transition: background-color .2s ease, color .2s ease;
}
.site-footer__contact-item:hover .site-footer__contact-icon{
  background-color: var(--primary-500);
  color:#fff;
}
.site-footer__contact-icon svg{ width:1rem; height:1rem; }
.site-footer__contact-label{ display:block; color:#fff; font-weight:500; margin-bottom:0.125rem; }
.site-footer__contact-value{ color: var(--slate-400); font-size:0.75rem; }
.site-footer__contact-value a{ color:inherit; text-decoration:none; -webkit-transition:color .2s ease; transition:color .2s ease; }
.site-footer__contact-value a:hover{ color:#fff; }

/* --- Colonne horaires --- */
.site-footer__schedule{}
@media (min-width:1024px){
  .site-footer__schedule{ -ms-grid-column-span: 2; grid-column: span 2; }
}
.site-footer__schedule-card{
  background-color:rgba(30,41,59,0.5);
  border-radius:0.75rem;
  padding:1rem;
  border:1px solid rgba(51,65,85,0.5);
  backdrop-filter: blur(4px);
}
.site-footer__schedule-row{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-pack:justify;
      -ms-flex-pack:justify;
          justify-content:space-between;
  font-size:0.875rem;
  margin-bottom:0.5rem;
}
.site-footer__schedule-row:last-child{ margin-bottom:0; }
.site-footer__schedule-day{ color: var(--slate-300); }
.site-footer__schedule-time{ color: var(--accent-300); font-weight:500; }
.site-footer__schedule-sep{
  width:100%;
  height:1px;
  background-color: var(--slate-700);
  margin:0.5rem 0;
}

/* --- Bas de footer --- */
.site-footer__bottom{
  border-top:1px solid rgba(30,41,59,0.5);
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-orient:vertical;
  -webkit-box-direction:normal;
      -ms-flex-direction:column;
          flex-direction:column;
  gap:1rem;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  -webkit-box-pack:justify;
      -ms-flex-pack:justify;
          justify-content:space-between;
  margin-top:1rem;
  padding-top:2rem;
  text-align:center;
}
@media (min-width:768px){
  .site-footer__bottom{ -webkit-box-orient:horizontal; -webkit-box-direction:normal; -ms-flex-direction:row; flex-direction:row; }
}
.site-footer__copyright{ color: var(--slate-300); font-size:0.875rem; margin:0; }

.site-footer__credit{
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -ms-flex-wrap:wrap;
      flex-wrap:wrap;
  gap:0.375rem;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  -webkit-box-pack:center;
      -ms-flex-pack:center;
          justify-content:center;
  color: var(--slate-50);
  font-size:0.875rem;
}
.site-footer__credit-text{
  color:inherit;
  text-decoration:none;
  opacity:0.7;
  -webkit-transition:opacity .2s ease, color .2s ease;
  transition:opacity .2s ease, color .2s ease;
}
.site-footer__credit-text:hover{ opacity:1; color:#fff; }

.site-footer__credit-badge{
  background-color: var(--slate-800);
  border:1px solid var(--slate-700);
  text-transform:capitalize;
  font-weight:700;
  display:-webkit-inline-box;
  display:-ms-inline-flexbox;
  display:inline-flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  gap:0.5rem;
  padding:0.25rem 0.75rem;
  border-radius:0.375rem;
  color: var(--amber-500);
  font-size:0.75rem;
  letter-spacing:0.05em;
  text-decoration:none;
  -webkit-transition: border-color .2s ease, color .2s ease, -webkit-box-shadow .2s ease;
  transition: border-color .2s ease, color .2s ease, -webkit-box-shadow .2s ease;
  transition: border-color .2s ease, color .2s ease, box-shadow .2s ease;
  transition: border-color .2s ease, color .2s ease, box-shadow .2s ease, -webkit-box-shadow .2s ease;
}
.site-footer__credit-badge:hover{
  border-color: rgba(245,158,11,0.5);
  color: var(--amber-400);
  -webkit-box-shadow: 0 0 15px rgba(245,158,11,0.2);
          box-shadow: 0 0 15px rgba(245,158,11,0.2);
}
.site-footer__credit-dot{
  width:0.375rem;
  height:0.375rem;
  border-radius:9999px;
  background-color: var(--amber-500);
}
.site-footer__credit-badge:hover .site-footer__credit-dot{
  -webkit-animation: pulseAnim 2s cubic-bezier(0.4,0,0.6,1) infinite;
          animation: pulseAnim 2s cubic-bezier(0.4,0,0.6,1) infinite;
}


/* =========================================================================
   FOOTER RÉDUIT (pages légales)
   ========================================================================= */
.footer-slim{
  background-color: var(--slate-900);
  color: var(--slate-300);
  padding: 3rem 0;
  border-top: 1px solid var(--slate-800);
  text-align: center;
  font-size: 0.875rem;
}
.footer-slim__inner{
  max-width: 80rem; /* équivalent max-w-7xl, cf. correctif "container" appliqué au header */
  margin-inline: auto;
  padding: 0 1.5rem;
}

.footer-slim__links{
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
@media (min-width: 768px){
  .footer-slim__links{ -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; }
}

.footer-slim__link{
  color: inherit;
  text-decoration: none;
  -webkit-transition: color .2s ease;
  transition: color .2s ease;
}
.footer-slim__link:hover{ color: #fff; }
.footer-slim__link--current{
  color: #fff;
  font-weight: 700;
  cursor: default;
}
.footer-slim__link--current:hover{ color: #fff; } /* pas d'effet hover sur la page courante */

.footer-slim__dot{
  width: 0.25rem;
  height: 0.25rem;
  border-radius: 9999px;
  background-color: var(--slate-700);
  display: none;
}
@media (min-width: 768px){
  .footer-slim__dot{ display: block; }
}

.footer-slim__copyright{
  color: var(--slate-300);
  margin: 0;
}
.footer-slim__credit{
  font-weight: 500;
  color: var(--amber-500);
  text-decoration: none;
  -webkit-transition: color .2s ease;
  transition: color .2s ease;
}
.footer-slim__credit:hover{ color: var(--amber-400); }



/* =========================================================================
   BOUTON "RETOUR EN HAUT"
   ========================================================================= */
.back-to-top{
  position:fixed;
  bottom:1.5rem;
  right:1.5rem;
  z-index:50;
  display:-webkit-inline-box;
  display:-ms-inline-flexbox;
  display:inline-flex;
  -webkit-box-align:center;
      -ms-flex-align:center;
          align-items:center;
  -webkit-box-pack:center;
      -ms-flex-pack:center;
          justify-content:center;
  padding:0.75rem;
  background-color: var(--amber-500);
  color:#fff;
  border-radius:9999px;
  text-decoration:none;
  -webkit-box-shadow:
    0 0 0 1px rgba(255,255,255,0.2),      /* ring-1 ring-white/20 */
    0 1px 2px 0 rgba(245,158,11,0.3);
          box-shadow:
    0 0 0 1px rgba(255,255,255,0.2),      /* ring-1 ring-white/20 */
    0 1px 2px 0 rgba(245,158,11,0.3);     /* shadow-sm, teinté amber/30 */
  -webkit-transition: background-color .3s ease, -webkit-transform .3s ease, -webkit-box-shadow .3s ease;
  transition: background-color .3s ease, -webkit-transform .3s ease, -webkit-box-shadow .3s ease;
  transition: transform .3s ease, background-color .3s ease, box-shadow .3s ease;
  transition: transform .3s ease, background-color .3s ease, box-shadow .3s ease, -webkit-transform .3s ease, -webkit-box-shadow .3s ease;
}
.back-to-top:hover{
  background-color: #d97706; /* amber-600 */
  -webkit-transform: translateY(-4px);
      -ms-transform: translateY(-4px);
          transform: translateY(-4px);
  -webkit-box-shadow:
    0 0 0 1px rgba(255,255,255,0.2),
    0 25px 50px -12px rgba(0,0,0,0.25);
          box-shadow:
    0 0 0 1px rgba(255,255,255,0.2),
    0 25px 50px -12px rgba(0,0,0,0.25);   /* shadow-2xl */
}
.back-to-top svg{
  -webkit-transition: -webkit-transform .2s ease;
  transition: -webkit-transform .2s ease;
  transition: transform .2s ease;
  transition: transform .2s ease, -webkit-transform .2s ease;
}
.back-to-top:hover svg{
  -webkit-transform: scale(1.1);
      -ms-transform: scale(1.1);
          transform: scale(1.1);
}
