/* Feuille de style — portfolio Edmond Ghislain Adjahouisso */
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/bebas-neue-400.woff2') format('woff2');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:'Work Sans';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/work-sans-400-italic.woff2') format('woff2');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:'Work Sans';font-style:normal;font-weight:300;font-display:swap;src:url('assets/fonts/work-sans-300.woff2') format('woff2');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:'Work Sans';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/work-sans-400.woff2') format('woff2');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:'Work Sans';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/work-sans-500.woff2') format('woff2');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:'Work Sans';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/work-sans-600.woff2') format('woff2');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}
  :root{
    --black:#0E0D0D;
    --surface:#171512;
    --surface-2:#1F1C17;
    --ivory:#F2ECE0;
    --ivory-dim:#C9C2B4;
    --muted:#9C948A;
    --gold:#C89B3C;
    --gold-dim:#8A6B2C;
    --wine:#7A2E2E;
    --line: rgba(242,236,224,0.12);
    --maxw: 1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--black);
    color:var(--ivory);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Bebas Neue', sans-serif;
    font-weight:400;
    letter-spacing:0.01em;
    line-height:0.92;
    margin:0;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  @media(max-width:640px){ .wrap{padding:0 20px;} }

  /* Film-perforation divider — motif ancré dans le sujet (pellicule) */
  .sprockets{
    display:flex;
    gap:14px;
    padding: 46px 0 14px;
    justify-content:flex-start;
  }
  .sprockets span{
    width:7px;height:11px;
    border:1.5px solid var(--gold-dim);
    border-radius:1px;
    opacity:0.55;
  }

  /* ---------- NAV ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:linear-gradient(to bottom, rgba(14,13,13,0.92), rgba(14,13,13,0));
    padding:22px 0;
    transition:background .3s ease;
  }
  nav.wrap{display:flex; align-items:center; justify-content:space-between;}
  .brand{font-family:'Bebas Neue',sans-serif; font-size:22px; letter-spacing:0.04em;}
  .brand span{color:var(--gold);}
  .navlinks{display:flex; gap:34px; font-size:14px; color:var(--ivory-dim);}
  .navlinks a:hover{color:var(--gold);}
  .navtoggle{display:none; background:none; border:none; color:var(--ivory); font-size:26px; cursor:pointer;}
  @media(max-width:800px){
    .navlinks{position:fixed; top:0; right:0; height:100vh; width:240px; background:var(--surface); flex-direction:column; padding:90px 30px; gap:26px; transform:translateX(100%); transition:transform .35s ease;}
    .navlinks.open{transform:translateX(0);}
    .navtoggle{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{
    min-height:100svh;
    display:flex; align-items:flex-end;
    position:relative;
    padding-bottom:90px;
    background:
      radial-gradient(ellipse 120% 70% at 30% 0%, rgba(200,155,60,0.14), transparent 60%),
      linear-gradient(180deg, #14120F 0%, #0E0D0D 65%);
    overflow:hidden;
  }
  /* REMPLACER : ajoutez ici votre image/vidéo de fond (tournage, plateau, etc.) */
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      repeating-linear-gradient(115deg, rgba(255,255,255,0.025) 0 2px, transparent 2px 90px);
    pointer-events:none;
  }
  .hero-inner{position:relative; z-index:2; width:100%; display:flex; align-items:flex-end; gap:64px;}
  .hero-text-wrap{ order:1; flex:1.3; min-width:0; }
  .hero-photo-wrap{ order:2; flex:0.7; display:flex; justify-content:flex-end; }
  .hero-photo{
    border:1px solid var(--line); padding:10px; background:var(--surface);
    max-width:300px; width:100%;
  }
  .hero-photo img{ width:100%; height:auto; display:block; filter:grayscale(20%) contrast(1.05); }
  @media(max-width:800px){
    .hero-inner{ flex-direction:column; align-items:flex-start; gap:28px; }
    .hero-photo-wrap{ order:-1; width:100%; justify-content:center; }
    .hero-photo{ max-width:180px; }
    .hero{ padding-top:110px; padding-bottom:60px; min-height:auto; }
  }
  .hero-eyebrow{
    color:var(--gold); font-size:14px; letter-spacing:0.02em;
    margin-bottom:18px; display:flex; align-items:center; gap:10px;
  }
  .hero-eyebrow::before{content:""; width:26px; height:1px; background:var(--gold-dim);}
  .hero h1{
    font-size:clamp(48px, 9vw, 118px);
    color:var(--ivory);
    max-width:14ch;
  }
  .hero h1 em{ font-style:normal; color:var(--gold); }
  .hero-sub{
    max-width:520px; margin-top:26px; color:var(--ivory-dim); font-size:17px; font-weight:300;
  }
  .hero-cta{display:flex; gap:18px; margin-top:38px; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 28px; font-size:14px; letter-spacing:0.02em;
    border:1px solid var(--gold-dim); border-radius:2px;
    transition:all .25s ease; cursor:pointer;
  }
  .btn-solid{ background:var(--gold); color:var(--black); border-color:var(--gold); font-weight:500;}
  .btn-solid:hover{ background:#dcae4d; }
  .btn-ghost{ color:var(--ivory); }
  .btn-ghost:hover{ border-color:var(--ivory); background:rgba(242,236,224,0.05); }

  /* ---------- SECTION SHELL ---------- */
  section{padding:130px 0;}
  @media(max-width:800px){ section{padding:90px 0;} }
  .section-head{ margin-bottom:56px; max-width:640px; }
  .section-num{ color:var(--gold); font-family:'Bebas Neue',sans-serif; font-size:16px; margin-bottom:10px; }
  .section-head h2{ font-size:clamp(34px,5vw,56px); color:var(--ivory); }
  .section-head p{ color:var(--muted); margin-top:16px; font-size:16px; max-width:52ch;}

  /* ---------- ABOUT ---------- */
  .about-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:start;}
  @media(max-width:860px){ .about-grid{grid-template-columns:1fr; gap:40px;} }
  .about-photo{
    position:relative; border:1px solid var(--line); padding:14px;
  }
  .about-photo img{ width:100%; height:auto; filter:grayscale(15%) contrast(1.05);}
  .about-photo .tag{
    position:absolute; bottom:-16px; left:14px; background:var(--gold); color:var(--black);
    font-family:'Bebas Neue',sans-serif; font-size:14px; padding:8px 16px; letter-spacing:0.02em;
  }
  .about-text p{ color:var(--ivory-dim); font-size:17px; font-weight:300; margin:0 0 20px; }
  .about-text strong{ color:var(--ivory); font-weight:500; }
  .about-points{ display:grid; grid-template-columns:1fr 1fr; gap:14px 30px; margin-top:32px; list-style:none; padding:0;}
  .about-points li{ font-size:14.5px; color:var(--ivory-dim); padding-left:18px; position:relative;}
  .about-points li::before{ content:"—"; position:absolute; left:0; color:var(--gold-dim);}

  /* ---------- SKILLS ---------- */
  .skills-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  @media(max-width:860px){ .skills-grid{grid-template-columns:1fr;} }
  .skill-card{ background:var(--black); padding:38px 32px;}
  .skill-card h3{ font-family:'Bebas Neue',sans-serif; font-size:26px; color:var(--gold); margin-bottom:20px; letter-spacing:0.01em;}
  .skill-card ul{ list-style:none; padding:0; margin:0;}
  .skill-card li{ font-size:15px; color:var(--ivory-dim); padding:9px 0; border-top:1px solid var(--line);}
  .skill-card li:first-child{ border-top:none; }

  /* ---------- PORTFOLIO / GALLERY ---------- */
  .filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:44px;}
  .filter-btn{
    font-size:13px; padding:10px 18px; border:1px solid var(--line); color:var(--ivory-dim);
    background:transparent; cursor:pointer; border-radius:2px; transition:all .2s ease; font-family:'Work Sans',sans-serif;
  }
  .filter-btn:hover{ border-color:var(--gold-dim); color:var(--ivory);}
  .filter-btn.active{ background:var(--gold); border-color:var(--gold); color:var(--black); font-weight:500;}

  .gallery{ display:grid; grid-template-columns:repeat(6,1fr); gap:18px; grid-auto-flow:dense;}
  @media(max-width:860px){ .gallery{grid-template-columns:repeat(2,1fr);} }
  .card{
    position:relative; overflow:hidden; border:1px solid var(--line);
    grid-column:span 3; aspect-ratio:4/3; cursor:pointer;
  }
  .card.tall{ aspect-ratio:4/5; }
  .card:nth-child(1){grid-column:span 4;}
  .card:nth-child(2){grid-column:span 2;}
  .card:nth-child(3){grid-column:span 2;}
  .card:nth-child(4){grid-column:span 2;}
  .card:nth-child(5){grid-column:span 2;}
  .card:nth-child(6){grid-column:span 4;}
  @media(max-width:860px){
    .card, .card:nth-child(n){grid-column:span 1 !important; aspect-ratio:4/3 !important;}
  }
  /* Vignette de projet : .card-media porte l'image de couverture (classe .bg-N
     définie plus bas), .play-btn l'indicateur de lecture, .card-overlay le texte. */
  .card-media{
    position:absolute; inset:0;
    background:
      linear-gradient(160deg, var(--surface-2), var(--surface));
    display:flex; align-items:center; justify-content:center;
  }
  /* Aperçus réels : l'image remplit la vignette, le dégradé ne sert que de fond */
  .card-media img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; display:block;
  }
  .card-overlay{
    position:absolute; inset:0; padding:20px;
    display:flex; flex-direction:column; justify-content:flex-end;
    background:linear-gradient(0deg, rgba(14,13,13,0.92) 0%, rgba(14,13,13,0.15) 60%, transparent 100%);
    opacity:0; transition:opacity .3s ease;
  }
  .card:hover .card-overlay{ opacity:1; }
  .card:hover .card-media{ transform:scale(1.03); }
  .card-media{ transition:transform .5s ease; }
  .card-cat{ font-size:12px; color:var(--gold); margin-bottom:6px;}
  .card-title{ font-family:'Bebas Neue',sans-serif; font-size:22px; color:var(--ivory);}
  .card-meta{ font-size:12.5px; color:var(--ivory-dim); margin-top:4px;}

  /* Vignette vidéo réelle avec poster + bouton lecture */
  .card-media.has-video{
    background-size:cover; background-position:center;
  }
  .play-btn{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:60px; height:60px; border-radius:50%;
    background:rgba(14,13,13,0.55); border:1.5px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    transition:background .25s ease, transform .25s ease; z-index:2;
  }
  .play-btn::after{
    content:""; width:0; height:0;
    border-top:9px solid transparent; border-bottom:9px solid transparent;
    border-left:14px solid var(--gold); margin-left:4px;
  }
  .card:hover .play-btn{ background:var(--gold); }
  .card:hover .play-btn::after{ border-left-color:var(--black); }

  .view-btn{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:52px; height:52px; border-radius:6px;
    background:rgba(14,13,13,0.55); border:1.5px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    transition:background .25s ease; z-index:2;
  }
  .view-btn::after{
    content:""; width:16px; height:16px;
    border:2px solid var(--gold); border-radius:50%;
    position:relative;
  }
  .view-btn::before{
    content:""; position:absolute; width:2px; height:8px; background:var(--gold);
    transform:rotate(45deg); top:29px; left:31px; z-index:3;
  }
  .card:hover .view-btn{ background:var(--gold); }
  .card:hover .view-btn::after, .card:hover .view-btn::before{ border-color:var(--black); background:var(--black); }

  /* Lightbox vidéo */
  .lightbox{
    position:fixed; inset:0; z-index:1000; background:rgba(8,7,6,0.95);
    display:none; align-items:center; justify-content:center; padding:5vh 4vw;
  }
  .lightbox.open{ display:flex; }
  .lightbox video{ width:100%; max-width:1000px; max-height:88vh; border:1px solid var(--line); background:#000; }
  .lightbox-close{
    position:absolute; top:26px; right:32px; color:var(--ivory); font-size:32px;
    background:none; border:none; cursor:pointer; line-height:1;
  }
  .lightbox-close:hover{ color:var(--gold); }
  .img-lightbox-content{ display:flex; flex-direction:column; gap:16px; max-width:1000px; max-height:88vh; overflow-y:auto; }
  .img-lightbox-content img{ width:100%; border:1px solid var(--line); }
  .card-links{ margin-top:10px; font-size:12.5px; }
  .card-links a{ color:var(--gold); text-decoration:underline; margin-right:14px; }
  .card-links a:hover{ color:var(--ivory); }

  /* ---------- EXPERIENCE TIMELINE ---------- */
  .timeline{ position:relative; padding-left:34px; }
  .timeline::before{ content:""; position:absolute; left:5px; top:6px; bottom:6px; width:1px; background:var(--line);}
  .tl-item{ position:relative; padding-bottom:56px;}
  .tl-item:last-child{ padding-bottom:0;}
  .tl-item::before{
    content:""; position:absolute; left:-34px; top:4px; width:11px; height:11px;
    border-radius:50%; background:var(--black); border:2px solid var(--gold);
  }
  .tl-date{ color:var(--gold); font-size:13.5px; margin-bottom:6px; }
  .tl-role{ font-family:'Bebas Neue',sans-serif; font-size:24px; color:var(--ivory); letter-spacing:0.01em;}
  .tl-org{ color:var(--ivory-dim); font-size:15px; margin-top:2px; margin-bottom:12px;}
  .tl-desc{ color:var(--muted); font-size:15px; max-width:64ch; font-weight:300;}

  /* ---------- TESTIMONIALS ---------- */
  .testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  @media(max-width:860px){ .testi-grid{grid-template-columns:1fr;} }
  .testi-card{ background:var(--black); padding:34px 30px;}
  .testi-quote{ font-size:16px; color:var(--ivory-dim); font-style:italic; font-weight:300; margin-bottom:22px;}
  .testi-name{ font-family:'Bebas Neue',sans-serif; font-size:18px; color:var(--gold);}
  .testi-role{ font-size:13px; color:var(--muted);}

  /* ---------- CONTACT ---------- */
  .contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px;}
  @media(max-width:860px){ .contact-grid{grid-template-columns:1fr; gap:44px;} }
  .contact-line{ font-size:clamp(26px,3.6vw,38px); color:var(--ivory); max-width:14ch; margin-bottom:34px;}
  .contact-info a{ display:block; color:var(--ivory-dim); font-size:15px; padding:12px 0; border-top:1px solid var(--line);}
  .contact-info a:first-child{border-top:none;}
  .contact-info a:hover{ color:var(--gold); }
  .field{ margin-bottom:20px; }
  .field label{ display:block; font-size:12.5px; color:var(--muted); margin-bottom:8px; }
  .field input, .field textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
    color:var(--ivory); font-family:'Work Sans',sans-serif; font-size:15px; padding:10px 0; outline:none;
  }
  .field input:focus, .field textarea:focus{ border-color:var(--gold); }
  .field textarea{ resize:vertical; min-height:80px; }

  /* ---------- FOOTER ---------- */
  footer{ border-top:1px solid var(--line); padding:44px 0; }
  .footer-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
  .footer-brand{ font-family:'Bebas Neue',sans-serif; font-size:19px;}
  .footer-role{ color:var(--muted); font-size:13.5px; margin-top:4px;}
  .footer-social{ display:flex; gap:22px; font-size:14px; color:var(--ivory-dim);}
  .footer-social a:hover{ color:var(--gold); }
  .footer-copy{ color:var(--muted); font-size:12.5px; margin-top:18px; }

  ::selection{ background:var(--gold); color:var(--black); }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{transition:none !important;}
  }
  .bg-1{background-image:url('assets/videos/wedding-poster.jpg');}
  .bg-2{background-image:url('assets/photos/nicoque-poster.jpg');}
  .bg-3{background-image:url('assets/photos/book-rollup.jpg');background-position:top center;}
  .bg-4{background-image:url('assets/photos/mopad-banner.jpg');}
  .bg-5{background-image:url('assets/photos/royalvoice-trophy.jpg');}
  .bg-6{background-image:url('assets/videos/biic-poster.jpg');}
  .bg-7{background-image:url('assets/videos/aic-poster.jpg');}
  .bg-8{background-image:url('assets/photos/expedition-cam.jpg');}
  .bg-9{background-image:url('assets/videos/drone-poster.jpg');}
  .txt-wine{color:var(--wine);}
  .mt-10{margin-top:10px;}
  .form-note{margin-top:10px;font-size:14px;color:var(--ivory-dim);}
  .card:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

  .brand{font-size:20px;letter-spacing:0.02em;}
  .hero-tags{font-family:'Bebas Neue',sans-serif;font-size:19px;letter-spacing:0.06em;color:var(--gold);margin:0 0 18px;}
  .stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-top:44px;border-top:1px solid var(--line);padding-top:38px;}
  .stat-num{font-family:'Bebas Neue',sans-serif;font-size:52px;line-height:1;color:var(--gold);}
  .stat-label{font-size:14px;line-height:1.5;color:var(--ivory-dim);margin-top:10px;}
  .impact-head{margin-top:70px;}
  .exp-intro{max-width:860px;font-size:17px;color:var(--muted);margin:0 0 40px;}
  .exp-outro{max-width:900px;font-size:16px;line-height:1.75;color:var(--ivory-dim);margin:40px 0 0;}
  .services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
  .service-card{border:1px solid var(--line);padding:30px;background:var(--surface);}
  .service-card h3{font-size:26px;margin-bottom:14px;}
  .service-card p{font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 14px;}
  .service-card ul{margin:0;padding-left:18px;}
  .service-card li{font-size:15px;line-height:1.8;color:var(--ivory-dim);}
  @media(max-width:860px){
    .brand{font-size:15px;}
    .stats-grid{grid-template-columns:repeat(2,1fr);gap:20px;}
    .services-grid{grid-template-columns:1fr;}
  }

/* =============================================================
   COMPOSANTS MULTIPAGE
   Ajout : en-tête commun, en-tête de page intérieure, galerie
   dynamique, visionneuses, formulaire, composants divers
   (pager, 404, reveal, footer-bottom).
   Aucune ressource externe — aucun style en ligne.
   Jetons :root et règles existantes non modifiés.
   ============================================================= */

/* ---------- Accessibilité de base ---------- */
.sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
}

/* Lien d'évitement : masqué tant qu'il n'a pas le focus */
.skip-link{
  position:fixed; top:-120px; left:12px; z-index:2000;
  display:inline-block;
  padding:12px 18px;
  background:var(--gold); color:var(--black);
  font-size:14px; font-weight:500; letter-spacing:0.01em;
  border-radius:2px;
  transition:top .2s ease;
}
.skip-link:focus,
.skip-link:focus-visible{
  top:10px;
  outline:2px solid var(--ivory);
  outline-offset:2px;
}

/* Barre de progression de lecture : largeur = --progress (ratio 0 → 1) */
.progress{
  position:fixed; top:0; left:0;
  height:3px;
  width:calc(var(--progress, 0) * 100%);
  background:linear-gradient(90deg, var(--gold-dim), var(--gold));
  z-index:500; pointer-events:none;
  will-change:width;
}

/* ---------- En-tête commun ---------- */
#siteHeader.scrolled{
  background:rgba(14,13,13,0.97);
  box-shadow:0 1px 0 var(--line), 0 14px 34px rgba(0,0,0,0.5);
}
.navlinks a.active{ color:var(--gold); }
.navlinks a.active:hover{ color:var(--gold); }

.nav-cta{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px;
  padding:10px 18px;
  border-radius:999px;
  background:var(--gold); color:var(--black);
  font-weight:500; font-size:13.5px; letter-spacing:0.01em;
  white-space:nowrap;
  transition:background .25s ease, color .25s ease;
}
.navlinks a.nav-cta{ color:var(--black); }
.navlinks a.nav-cta:hover{ color:var(--black); background:#dcae4d; }
.navlinks a.nav-cta:focus-visible{ outline:2px solid var(--ivory); outline-offset:2px; }

.navtoggle{
  min-width:44px; min-height:44px;
  align-items:center; justify-content:center;
  border-radius:2px;
  transition:color .2s ease;
}
.navtoggle[aria-expanded="true"]{ color:var(--gold); }

@media(max-width:800px){
  .navlinks{
    width:min(300px, 86vw);
    padding:92px 30px 36px;
    gap:20px;
    background:linear-gradient(180deg, var(--surface-2), var(--surface));
    border-left:1px solid var(--line);
    box-shadow:-20px 0 50px rgba(0,0,0,0.55);
    overflow-y:auto;
    z-index:110;
  }
  .navlinks a{
    display:flex; align-items:center;
    min-height:44px;
    padding:10px 0;
    border-bottom:1px solid var(--line);
  }
  .navlinks a:last-child{ border-bottom:none; }
  .navlinks a.nav-cta{
    border-bottom:none;
    margin-top:8px;
    border-radius:999px;
    padding:10px 18px;
  }
  .navtoggle{ display:flex; }
}

/* ---------- En-tête de page intérieure ---------- */
.page-head{
  padding:176px 0 72px;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(ellipse 110% 80% at 20% 0%, rgba(200,155,60,0.08), transparent 62%),
    linear-gradient(180deg, #121110 0%, var(--black) 78%);
}
.page-head h1{
  font-size:clamp(44px, 7.5vw, 92px);
  color:var(--ivory);
  margin-top:6px;
}
.page-sub{
  max-width:62ch;
  margin:22px 0 0;
  color:var(--ivory-dim);
  font-size:17px; font-weight:300; line-height:1.7;
}
.breadcrumb{ margin:0 0 26px; }
.breadcrumb ol{
  list-style:none; margin:0; padding:0;
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  font-size:12.5px; letter-spacing:0.03em; color:var(--muted);
}
.breadcrumb li{ display:flex; align-items:center; }
.breadcrumb li + li::before{
  content:"/";
  margin-right:8px;
  color:var(--gold-dim);
}
.breadcrumb a{
  color:var(--ivory-dim);
  text-decoration:none;
}
.breadcrumb a:hover{
  color:var(--gold);
  text-decoration:underline;
  text-underline-offset:3px;
}
.breadcrumb [aria-current="page"]{ color:var(--muted); }
@media(max-width:860px){
  .page-head{ padding:148px 0 56px; }
}
@media(max-width:640px){
  .page-head{ padding:126px 0 46px; }
  .page-sub{ font-size:16px; }
}

/* ---------- Barre d'outils de la galerie ---------- */
.gallery-toolbar{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:18px 24px;
  padding-bottom:24px;
  margin-bottom:38px;
  border-bottom:1px solid var(--line);
}
.gallery-toolbar .filters{
  grid-column:1 / -1;
  margin-bottom:0;
}
.gallery-search{ grid-column:1; min-width:200px; }
.gallery-sort{
  grid-column:2;
  justify-self:start;
  display:flex; align-items:center; gap:10px;
}
.gallery-sort label{
  font-size:12.5px; color:var(--muted); letter-spacing:0.02em;
  white-space:nowrap;
}
.gallery-count{
  grid-column:1 / -1;
  margin:0;
  text-align:right;
  font-size:12.5px; letter-spacing:0.02em; color:var(--muted);
}
@media(max-width:640px){
  .gallery-toolbar{ grid-template-columns:1fr; gap:14px; padding-bottom:18px; margin-bottom:28px; }
  .gallery-search,
  .gallery-sort,
  .gallery-count{ grid-column:1; }
  .gallery-sort{ justify-self:stretch; justify-content:space-between; }
  .gallery-count{ text-align:left; }
}

/* Champs de la barre d'outils */
.gallery-search input,
.gallery-sort select{
  width:100%;
  min-height:44px;
  padding:12px 16px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--ivory);
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  outline:none;
  color-scheme:dark;
  transition:border-color .2s ease, background .2s ease;
}
.gallery-search input::placeholder{ color:var(--muted); }
.gallery-search input:hover,
.gallery-sort select:hover{ border-color:var(--gold-dim); }
.gallery-search input:focus,
.gallery-sort select:focus{
  border-color:var(--gold);
  background:var(--surface-2);
}
.gallery-search input:focus-visible,
.gallery-sort select:focus-visible{
  border-color:var(--gold);
  outline:2px solid var(--gold);
  outline-offset:2px;
}

/* Boutons de filtre (état actif par .active ou aria-pressed="true") */
.filter-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px;
  padding:11px 18px;
}
.filter-btn[aria-pressed="true"],
.filter-btn.active{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--black);
  font-weight:500;
}
.filter-btn[aria-pressed="true"]:hover,
.filter-btn.active:hover{
  background:#dcae4d;
  color:var(--black);
}

/* Message d'état vide de la galerie */
.gallery-empty{
  border:1px dashed var(--line);
  border-radius:2px;
  margin:26px 0 0;
  padding:38px 24px;
  text-align:center;
  color:var(--muted);
  font-size:14.5px;
  line-height:1.7;
}
.gallery-empty[hidden]{ display:none; }

/* ---------- Visionneuses : flèches et compteur ---------- */
.lb-nav{
  position:absolute; top:50%;
  transform:translateY(-50%);
  width:52px; height:52px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:rgba(14,13,13,0.62);
  border:1px solid rgba(242,236,224,0.18);
  color:var(--ivory);
  font-family:'Work Sans', sans-serif;
  font-size:30px; line-height:1;
  cursor:pointer; z-index:4;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.lb-nav:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--black);
}
.lb-nav:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}
.lb-prev{ left:3vw; }
.lb-next{ right:3vw; }
.lb-counter{
  position:absolute; bottom:16px; left:50%;
  transform:translateX(-50%);
  margin:0;
  font-size:12.5px; letter-spacing:0.12em; color:var(--muted);
}
#imgLightbox{ padding-bottom:64px; }
@media(max-width:1100px){
  #imgLightbox{ padding-left:72px; padding-right:72px; }
  #imgLightbox .img-lightbox-content{ max-width:100%; }
}
@media(max-width:640px){
  .lb-nav{ width:46px; height:46px; font-size:26px; }
  .lb-prev{ left:6px; }
  .lb-next{ right:6px; }
  #imgLightbox{ padding-left:14px; padding-right:14px; }
}

/* ---------- Accordéon FAQ (details / summary) ---------- */
.faq{ max-width:820px; }
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-item summary{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  min-height:44px;
  padding:20px 0;
  cursor:pointer;
  list-style:none;
  font-family:'Bebas Neue', sans-serif;
  font-size:22px; font-weight:400; letter-spacing:0.01em;
  color:var(--ivory);
  transition:color .2s ease;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::marker{ content:""; }
.faq-item summary::after{
  content:"";
  flex:0 0 auto;
  width:9px; height:9px;
  border-right:1.5px solid var(--gold);
  border-bottom:1.5px solid var(--gold);
  transform:rotate(45deg);
  transition:transform .25s ease;
}
.faq-item[open] summary::after{ transform:rotate(225deg); }
.faq-item summary:hover{ color:var(--gold); }
.faq-item summary:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.faq-answer{
  padding:0 0 24px;
  max-width:68ch;
  color:var(--ivory-dim);
  font-size:15.5px; font-weight:300; line-height:1.75;
}
.faq-answer p{ margin:0 0 14px; }
.faq-answer p:last-child{ margin-bottom:0; }

/* ---------- Formulaire de contact ---------- */
.contact-form{ display:block; }
.field{ margin-bottom:22px; }
.field label{
  display:block;
  font-size:12.5px; letter-spacing:0.02em; color:var(--muted);
  margin-bottom:8px;
}
.req{ color:var(--gold); font-style:normal; }
.field select{
  width:100%;
  min-height:44px;
  padding:10px 0;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line);
  border-radius:0;
  color:var(--ivory);
  font-family:'Work Sans', sans-serif;
  font-size:15px;
  outline:none;
  color-scheme:dark;
  transition:border-color .2s ease;
}
.field select:focus{ border-color:var(--gold); }
.field-error{
  display:block;
  margin:8px 0 0;
  font-size:12.5px; line-height:1.5;
  color:#D18F8F; /* bordeaux clair, contraste ~7:1 sur --black */
}
.field-error[hidden]{ display:none; }
.contact-form [aria-invalid="true"]{ border-color:#B24B4B; }
.contact-form [aria-invalid="true"]:focus{ border-color:#B24B4B; }
.form-status{
  display:block;
  margin:22px 0 0;
  padding:14px 16px;
  border:1px solid var(--gold-dim);
  border-radius:2px;
  background:rgba(200,155,60,0.08);
  color:var(--ivory);
  font-size:14px; line-height:1.6;
}
.form-status[hidden]{ display:none; }
.form-note{
  display:block;
  margin:12px 0 0;
  font-size:12.5px; line-height:1.6; color:var(--muted);
}
.form-note[hidden]{ display:none; }

/* Bouton de copie de l'adresse email */
.copy-btn{
  display:inline-flex; align-items:center; gap:8px;
  min-height:44px;
  margin-left:10px;
  padding:9px 16px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--ivory-dim);
  font-family:'Work Sans', sans-serif;
  font-size:12.5px; letter-spacing:0.02em;
  cursor:pointer;
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}
.copy-btn:hover{ border-color:var(--gold-dim); color:var(--ivory); }
.copy-btn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.copy-btn.copie,
.copy-btn.copie:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--black);
  font-weight:500;
}

/* ---------- Pagination entre pages intérieures ---------- */
.pager{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:12px 20px;
  padding-top:36px; padding-bottom:96px;
}
.pager-link{
  display:inline-flex; align-items:center; gap:8px;
  min-height:44px;
  padding:8px 0;
  font-size:14px; letter-spacing:0.01em;
  color:var(--ivory-dim);
  transition:color .2s ease;
}
.pager-link:hover{ color:var(--gold); }
.pager-link:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.pager-prev{ margin-right:auto; text-align:left; }
.pager-next{ margin-left:auto; text-align:right; }
@media(max-width:640px){
  .pager{ padding-bottom:64px; }
}

/* ---------- Page 404 ---------- */
.notfound{
  min-height:72svh;
  display:flex; align-items:center; justify-content:center;
  text-align:center;
  padding:164px 0 110px;
}
.notfound .wrap{ max-width:760px; }
.notfound-num{
  margin:0 0 6px;
  font-family:'Bebas Neue', sans-serif;
  font-size:clamp(120px, 26vw, 300px);
  line-height:0.84; letter-spacing:0.02em;
  color:var(--gold);
  opacity:0.32;
}
.notfound h1{
  font-size:clamp(32px, 5vw, 56px);
  color:var(--ivory);
}
.notfound p:not(.notfound-num){
  margin:18px auto 0;
  max-width:48ch;
  color:var(--ivory-dim);
  font-size:16px; font-weight:300;
}
.notfound p .btn{ margin:10px 6px 0; }
@media(max-width:640px){
  .notfound{ padding:132px 0 84px; }
}

/* ---------- Apparition au défilement ---------- */
html.js .reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .6s ease, transform .6s cubic-bezier(0.22, 0.61, 0.36, 1);
}
html.js .reveal.is-visible{
  opacity:1;
  transform:none;
}

/* ---------- Frise : alternance deux colonnes ---------- */
@media(min-width:860px){
  .timeline{
    max-width:1000px;
    margin:0 auto;
    padding-left:0;
  }
  .timeline::before{
    left:50%; top:6px; bottom:6px;
    transform:translateX(-50%);
  }
  .tl-item{
    width:calc(50% - 40px);
    padding-bottom:56px;
  }
  .tl-item::before{ left:auto; }
  .tl-item:nth-child(odd){ text-align:right; }
  .tl-item:nth-child(even){ margin-left:calc(50% + 40px); }
  .tl-item:nth-child(odd)::before{ right:-46px; }
  .tl-item:nth-child(even)::before{ left:-46px; }
  .tl-item .tl-desc{ max-width:100%; }
  .tl-item:last-child{ padding-bottom:0; }
}

/* ---------- Bas de pied de page ---------- */
.footer-bottom{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:10px 24px;
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--line);
}
.footer-bottom .footer-copy{ margin-top:0; }
.footer-legal{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px;
  font-size:12.5px; color:var(--muted);
}
.footer-legal a{
  color:var(--muted);
  padding:4px 0;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.footer-legal a:hover{
  color:var(--gold);
  border-bottom-color:var(--gold);
}
.footer-legal a:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; }
  .skip-link{ transition:none; }
}

/* ===== AJUSTEMENTS — titres de page (l'ancien <h2> de section devient le <h1> de la page) ===== */
.section-head h1{ font-size:clamp(34px,5vw,56px); color:var(--ivory); }
@media(max-width:860px){ .section-head h1{ font-size:clamp(30px,7vw,42px); } }

/* ===== SÉLECTEUR DE LANGUE (FR / EN) ===== */
.nav-outils{ display:flex; align-items:center; gap:14px; }
.langues{
  display:inline-flex; align-items:center; gap:2px;
  border:1px solid var(--line); border-radius:999px; padding:2px;
  font-size:12.5px; letter-spacing:0.06em;
}
.langues a, .langues .langue-active{
  display:inline-block; padding:5px 10px; border-radius:999px; line-height:1;
}
.langues a{ color:var(--ivory-dim); }
.langues a:hover{ color:var(--gold); }
.langues .langue-active{ background:var(--gold); color:var(--black); font-weight:600; }
@media(max-width:860px){
  .nav-outils{ gap:10px; }
  .langues{ font-size:11.5px; }
  .langues a, .langues .langue-active{ padding:4px 8px; }
}
