 body {
   margin: 0;
   font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
   background: var(--bg);
   color: var(--text);
 }

 a {
   color: inherit;
   text-decoration: none;
 }

 a:hover {
   text-decoration: underline;
 }


 .page-title {
   font-size: 1.8rem;
   margin: 0 0 .25rem;
 }

 .page-intro {
   margin: 0 0 1.5rem;
   color: var(--muted);
   font-size: .95rem;
 }

 .posts-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 2rem;
 }

 @media (max-width: 900px) {
   .posts-grid {
     grid-template-columns: repeat(2, minmax(0, 1fr));
   }
 }

 @media (max-width: 640px) {
   .posts-grid {
     grid-template-columns: 1fr;
   }
 }

 .post-card {
   background: var(--card-bg);
   border-radius: 6px;
   overflow: hidden;
   box-shadow: 0 8px 20px rgba(0, 0, 0, .05);
   display: flex;
   flex-direction: column;
   min-height: 100%;
 }

 .post-thumb {
   position: relative;
   padding-bottom: 62%;
   overflow: hidden;
   background: #ddd;
 }

 .post-thumb img {
   position: absolute;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .35s ease;
 }

 .post-card:hover .post-thumb img {
   transform: scale(1.05);
 }

 .post-category {
   position: absolute;
   left: .75rem;
   top: .75rem;
   background: var(--accent);
   color: #fff;
   font-size: .7rem;
   text-transform: uppercase;
   padding: .25rem .6rem;
   border-radius: 999px;
   letter-spacing: .08em;
 }

 .post-body {
   padding: 1rem 1.1rem 1.1rem;
   display: flex;
   flex-direction: column;
   flex: 1;
 }

 .post-meta {
   font-size: .75rem;
   color: var(--muted);
   text-transform: uppercase;
   letter-spacing: .08em;
   margin-bottom: .4rem;
 }

 .post-title {
   font-size: 1.05rem;
   margin: 0 0 .4rem;
   line-height: 1.35;
 }

 .post-title a {
   font-weight: 700;
 }

 .post-excerpt {
   font-size: .9rem;
   color: var(--muted);
   margin: 0 0 .8rem;
   flex: 1;
 }

 .post-readmore {
   font-size: .8rem;
   text-transform: uppercase;
   letter-spacing: .12em;
   color: var(--accent);
   font-weight: 700;
 }

 .post-navigation {
    margin: 40px auto; 
    padding: 20px 0;
    
    /* Pour bien montrer que c'est une zone à part */
    text-align: center;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

 .post-navigation a {
    margin: 0 10px;
   color: #b18e47; /* Exemple de couleur dorée/naturelle pour un gîte */
   text-decoration: underline;
   font-weight: 500;
 }

 .post-navigation a:hover {
   color: #003d80;
   text-decoration: none;
   /* Le soulignement disparaît au survol pour créer un effet */
 }
/* --- Bloc Trace GPS Élégant --- */

.card-traceGps {
    margin: 3rem auto;
    max-width: 800px;
}

.wrapper-traceGps {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.12);
    background: #ffffff; /* Fond blanc pour remplir les marges */
    
    /* On utilise du padding ici pour créer l'espace autour de l'image */
    padding-top: 60px;    /* Espace pour le titre */
    padding-bottom: 40px; /* Espace pour le lien */
}

.img-traceGps {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.6s ease;
    /* On s'assure qu'il n'y a pas de marges résiduelles sur l'image elle-même */
    margin: 0; 
}

/* Le titre reste en haut du cadre blanc */
.title-traceGps {
    top: 0;
    position: absolute;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.95); /* Un peu plus opaque */
    padding: 15px 20px;
    z-index: 2;
    /* On peut enlever le backdrop-filter ici si le fond est blanc pur */
}

/* Le lien reste en bas du cadre blanc */
.overlay-traceGps {
    bottom: 0;
    position: absolute;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.95);
    padding: 12px 20px;
    z-index: 2;
}
/* Le Titre positionné en haut */
.title-traceGps {
    top: 0;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    font-size: 1rem;
    font-weight: 700;
}

/* Le Lien d'action positionné en bas */
.overlay-traceGps {
    bottom: 0;
    text-decoration: none !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-top: 1px solid rgba(0,0,0,0.05);
    transition: all 0.3s ease;
}

/* Interaction au survol du lien */
.overlay-traceGps:hover {
    background: rgba(255, 255, 255, 0.95);
    color: #b18e47; /* Teinte dorée au survol */
}

/* Animation de l'image au survol du bloc complet */
.wrapper-traceGps:hover .img-traceGps {
    transform: scale(1.04);
}

/* Ajustement pour les petits écrans (mobile) */
@media (max-width: 480px) {
    .title-traceGps {
        font-size: 0.95rem;
        padding: 10px 15px;
    }
    .overlay-traceGps {
        font-size: 0.7rem;
        padding: 10px 15px;
    }
}

.post-layout-side {
  display: flex;
  gap: 2rem;
  align-items: center;
  margin: 2rem 0;
}

.side-image, .side-text {
  flex: 1;
}

.side-image img {
  width: 100%;
  height: auto;
  border-radius: 8px; /* Optionnel */
}

/* Version mobile : l'un au dessus de l'autre */
@media (max-width: 480px) {
  .post-layout-side {
    flex-direction: column;
  }
}