html{
    --font-celtic:'Celtic', Arial, sans-serif;
    --font-arial:'Arial Rounded', Arial, sans-serif;
    --btn-color: #996533;
    --bg-color-brown: #996533;
    --white: #ffffff;
    --black: #000000;
    --dark-primary: #7a502a;
    --light-primary: #c49b76;
}

@font-face {
    font-family: 'Celtic';
    src: url('../fonts/CELTG___.TTF') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Arial Rounded';
    src: url('../fonts/arlrdbd.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

header {
    color: var(--dark-primary);
    text-align: center;
    padding: 2rem 0;
    margin-bottom: 2rem;
}

h1 {
    font-family: var(--font-celtic);
    font-size: 2.5rem;
    margin: 0;
}

h2 {
    font-family: var(--font-arial);
    color: var(--dark-primary);
    border-bottom: 2px solid var(--bg-color-brown);
    padding-bottom: 0.5rem;
    margin-top: 2rem;
}

    /* ── Filtres ── */
    .filter-bar {
      display: flex;
      flex-wrap: wrap;
      gap: .5rem;
      justify-content: center;
      margin: 1.5rem auto 2rem;
      max-width: 860px;
      padding: 0 1rem;
    }
    .filter-btn {
      background: #fff;
      border: 2px solid #8B6914;
      border-radius: 2rem;
      color: #8B6914;
      cursor: pointer;
      font-size: .9rem;
      font-weight: 600;
      padding: .4rem 1.1rem;
      transition: background .2s, color .2s;
    }
    .filter-btn:hover,
    .filter-btn.active {
      background: #8B6914;
      color: #fff;
    }

    /* ── Grille ── */
    .publi-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.2rem;
      margin: 0 auto 3rem;
      max-width: 1100px;
      padding: 0 1rem;
    }
    @media (max-width: 768px) {
      .publi-grid { grid-template-columns: repeat(2, 1fr); gap: .8rem; }
    }
    @media (max-width: 480px) {
      .publi-grid { grid-template-columns: 1fr; }
    }

    .publi-card {
      border-radius: 10px;
      cursor: zoom-in;
      overflow: hidden;
      position: relative;
      box-shadow: 0 2px 8px rgba(0,0,0,.12);
      transition: transform .2s, box-shadow .2s;
    }
    .publi-card:hover {
      box-shadow: 0 6px 20px rgba(0,0,0,.22);
      transform: translateY(-3px);
    }
    .publi-card img {
      display: block;
      height: 220px;
      object-fit: cover;
      width: 100%;
    }
    .publi-card .badge {
      background: rgba(139,105,20,.82);
      border-radius: 0 0 0 8px;
      color: #fff;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .04em;
      padding: .25rem .6rem;
      position: absolute;
      right: 0;
      text-transform: uppercase;
      top: 0;
    }
    .publi-card.hidden { display: none; }

    /* ── Lightbox ── */
    #lightbox {
      align-items: center;
      background: rgba(0,0,0,.88);
      display: none;
      height: 100%;
      justify-content: center;
      left: 0;
      position: fixed;
      top: 0;
      width: 100%;
      z-index: 9999;
    }
    #lightbox.open { display: flex; }
    #lightbox img {
      border-radius: 8px;
      max-height: 90vh;
      max-width: 92vw;
      object-fit: contain;
      box-shadow: 0 8px 40px rgba(0,0,0,.6);
    }
    #lb-close {
      color: #fff;
      cursor: pointer;
      font-size: 2.2rem;
      line-height: 1;
      position: absolute;
      right: 1.2rem;
      top: .8rem;
      user-select: none;
    }
    #lb-prev, #lb-next {
      background: rgba(255,255,255,.15);
      border: none;
      border-radius: 50%;
      color: #fff;
      cursor: pointer;
      font-size: 1.8rem;
      height: 3rem;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 3rem;
    }
    #lb-prev { left: 1rem; }
    #lb-next { right: 1rem; }
    #lb-prev:hover, #lb-next:hover { background: rgba(255,255,255,.3); }

    /* ── Intro ── */
    .publi-intro {
      max-width: 700px;
      margin: 0 auto 1rem;
      padding: 0 1rem;
      text-align: center;
      color: #555;
      font-size: 1rem;
      line-height: 1.6;
    }

    .link {
    color: var(--dark-primary);
    text-decoration: none;
    border-bottom: 1px dotted var(--dark-primary);
    }

    .link:hover {
        color: var(--bg-color-brown);
    }