
:root{
  --bg:#0b0d10;
  --bg2:#12161b;
  --text:#eeeae2;
  --muted:#b5b1aa;
  --accent:#d94b3d;
  --line:rgba(255,255,255,.12);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.65;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--max);margin:auto;padding:0 24px}

/* ==================================================
   A1 — MENU
================================================== */
header{
  position:sticky;top:0;z-index:20;
  background:rgba(11,13,16,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav{
  max-width:var(--max);margin:auto;padding:15px 24px;
  display:flex;justify-content:space-between;align-items:center;
}
.logo{font-weight:bold;letter-spacing:.08em}
nav a{margin-left:22px;color:var(--muted);font-size:.95rem}
nav a:hover{color:white}

/* ==================================================
   A2 — GRANDE PHOTO D'OUVERTURE
================================================== */
.hero{
  min-height:78vh;
  display:flex;align-items:end;
  position:relative;overflow:hidden;
  background:#08090b;
}
.hero-photo{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  opacity:1;
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.32));
}
.hero-content{
  position:relative;z-index:1;
  padding:120px 24px 75px;
  max-width:var(--max);width:100%;margin:auto;
}
.kicker{
  color:#f2c6c0;text-transform:uppercase;
  letter-spacing:.16em;font-size:.82rem;
}
h1{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3rem,8vw,7rem);
  line-height:.95;margin:16px 0;
  font-weight:400;
}
.hero p{max-width:720px;font-size:1.2rem;color:#ddd8d0}
.hero .citation{
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:1.6rem;
  color:#f2c6c0;
  margin-top:28px;
}
.button{
  display:inline-block;margin-top:20px;
  padding:12px 18px;border:1px solid rgba(255,255,255,.35);
  border-radius:3px;
}
.button:hover{background:white;color:#111}

/* ==================================================
   A3 — SECTIONS GÉNÉRALES
================================================== */
section{padding:85px 0}
h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,3.4rem);
  font-weight:400;margin:0 0 18px;
}
.lead{font-size:1.2rem;max-width:820px;color:#d6d1c9}
.quote{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,3.5rem);
  line-height:1.2;
  max-width:900px;
  margin:0 auto;
  text-align:center;
}
.quote small{
  display:block;margin-top:25px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.85rem;color:var(--muted);
}

/* ==================================================
   A4 — CHIFFRES CLÉS
================================================== */
.stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--line);
  margin-top:45px;
}
.stat{background:var(--bg2);padding:30px}
.stat strong{
  display:block;font-family:Georgia,serif;
  font-size:3rem;font-weight:400;
}
.stat span{color:var(--muted)}

/* ==================================================
   A5 — CARTE / PLAN
================================================== */
.plan{
  background:var(--bg2);
  padding:20px;border:1px solid var(--line);
}
.plan img{width:100%;max-height:900px;object-fit:contain;background:white}
.note{color:var(--muted);font-size:.9rem;margin-top:12px}

/* ==================================================
   A6 — LIENS VERS LES FICHES D'ÉGLISES
================================================== */
.church-link{display:block;color:inherit;text-decoration:none;cursor:pointer}
.church-link .church-caption p{margin:8px 0 0;color:#d6d1c9;font-size:.9rem}
.church-link:hover .church-caption p{color:white}

/* ==================================================
   A7 — MODÈLE DES FICHES D'ÉGLISES
================================================== */
.church-detail{
  padding:110px 0 100px;
  border-top:1px solid var(--line);
}

.church-detail-header{
  margin-bottom:40px;
}

.church-detail-intro{
  max-width:760px;
  color:#d6d1c9;
  font-size:1.15rem;
}

.church-detail-hero{
  width:100%;
  height:620px;
  overflow:hidden;
  background:#12161b;
  border:1px solid var(--line);
}

.church-detail-hero img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.church-detail-columns{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);
  gap:55px;
  margin-top:55px;
}

.church-detail-main h3,
.church-detail-gallery h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.8rem;
  font-weight:400;
  margin:0 0 15px;
}

.church-detail-main h3:not(:first-child){
  margin-top:45px;
}

.church-detail-main p{
  color:#d6d1c9;
  max-width:760px;
}

.detail-placeholder{
  color:var(--muted) !important;
  font-style:italic;
}

.church-detail-sidebar{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.detail-box{
  background:var(--bg2);
  border:1px solid var(--line);
  padding:24px;
}

.detail-box .tag{
  margin-bottom:10px;
}

.detail-box strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.25rem;
  font-weight:400;
}

.detail-box p{
  color:var(--muted);
  margin:7px 0 0;
}

.church-detail-gallery{
  margin-top:70px;
}

.detail-gallery-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
}

.detail-gallery-grid img{
  width:100%;
  height:auto;
  display:block;
}

.detail-gallery-placeholder{
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:25px;
  background:var(--bg2);
  border:1px dashed rgba(255,255,255,.22);
  color:var(--muted);
  font-size:.9rem;
}

.back-link{
  display:inline-block;
  margin-top:45px;
  color:#f2c6c0;
}

@media(max-width:850px){
  .church-detail-columns{
    grid-template-columns:1fr;
    gap:35px;
  }

  .detail-gallery-grid{
    grid-template-columns:1fr;
  }

  .church-detail-hero{
    height:420px;
  }
}

/* ==================================================
   A8 — ÉVÉNEMENTS / REGARDS
================================================== */
.cards{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:18px;margin-top:35px;
}
.card{
  background:var(--bg2);border:1px solid var(--line);
  padding:28px;
}
.card h3{font-family:Georgia,serif;font-size:1.6rem;font-weight:400;margin-top:0}
.card p{color:var(--muted)}
.tag{
  color:#f0b0a8;font-size:.75rem;
  text-transform:uppercase;letter-spacing:.12em;
}

/* Ajustement de la carte Visites accompagnées */
#evenements .cards{
  align-items:start;
}

#evenements .card-visites{
  grid-column:1 / -1;
  padding:22px 28px;
}

#evenements .card-visites p{
  max-width:820px;
  margin-bottom:0;
}

/* SÉPARATION ENTRE UNE FICHE D'ÉGLISE ET LE PARCOURS GLOBAL */
.parcours-global{
  border-top:1px solid rgba(255,255,255,.22);
}

.parcours-global .section-context{
  display:inline-block;
  margin-bottom:10px;
  color:#f2c6c0;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.15em;
}

/* CRÉDITS PHOTOGRAPHIQUES */
.photo-credit{
  margin:7px 0 0;
  font-size:.72rem;
  line-height:1.3;
  color:var(--muted);
  opacity:.82;
  text-align:right;
  letter-spacing:.02em;
}

/* ==================================================
   A9 — INFORMATIONS PRATIQUES
================================================== */
.info{
  display:grid;grid-template-columns:1fr 1fr;gap:35px;
}
.info-box{border-top:1px solid var(--line);padding-top:20px}
.info-box strong{display:block;margin-bottom:6px}

/* INFORMATIONS PRATIQUES DU PARCOURS */
.info-practical{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:35px;
}

.info-practical .info-box{
  background:var(--bg2);
  border:1px solid var(--line);
  padding:24px;
}

.info-practical .info-box span{
  display:block;
  color:var(--muted);
}

@media(max-width:850px){
  .info-practical{
    grid-template-columns:1fr;
  }
}

/* ==================================================
   A10 — PIED DE PAGE
================================================== */
footer{
  border-top:1px solid var(--line);
  padding:40px 24px;color:var(--muted);
  text-align:center;
}
/* ==================================================
   A11 — GALERIE DES ÉGLISES
================================================== */

.church-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:45px;
}

.church{
  position:relative;
  height:360px;
  overflow:hidden;
  background:#12161b;
  border:1px solid var(--line);
}

.church-feature{
  position:relative;
  grid-column:1 / -1;
  height:620px;
  overflow:hidden;
  background:#12161b;
  border:1px solid var(--line);
}

.church img,
.church-feature img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .7s ease;
}

.church:hover img,
.church-feature:hover img{
  transform:scale(1.035);
}

.church-caption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:55px 24px 22px;
  background:linear-gradient(transparent,rgba(0,0,0,.85));
}

.church-caption span{
  display:block;
  color:#f2c6c0;
  font-size:.72rem;
  letter-spacing:.15em;
  margin-bottom:5px;
}

.church-caption h3{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.5rem;
  font-weight:400;
}

.church-feature .church-caption h3{
  font-size:2.4rem;
}

@media(max-width:560px){
  .church-grid{
    grid-template-columns:1fr;
  }

  .church-feature,
  .church-wide{
    grid-column:auto;
  }

  .church-feature,
  .church{
    height:300px;
  }
}

/* ==================================================
   A12 — VERSION MOBILE
================================================== */
@media(max-width:850px){
  .church-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .info{grid-template-columns:1fr}
}
@media(max-width:560px){
  .stats,.cards,.church-grid{grid-template-columns:1fr}
  .hero{min-height:70vh}
  section{padding:60px 0}
}

/* ==================================================
   ACCUEIL — LE PROJET : VERSION VISUELLE 3 + 2
================================================== */
.project-intro{
  max-width:850px;
  margin-bottom:38px;
}
.project-intro p{
  font-size:1.18rem;
  color:#d6d1c9;
}

.project-feature{
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:50px;
  padding:36px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.project-feature h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:2rem;
  font-weight:400;
  margin:6px 0 0;
}
.project-feature p{
  margin:0;
  color:#d6d1c9;
}

/* Trois blocs en haut, deux plus larges en dessous */
.project-themes{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:20px;
  margin-top:48px;
  background:none;
}
.project-theme{
  position:relative;
  overflow:hidden;
  min-height:230px;
  padding:30px;
  background:linear-gradient(145deg,#12161b,#0d1014);
  border:1px solid rgba(255,255,255,.14);
}
.project-theme:nth-child(1),
.project-theme:nth-child(2),
.project-theme:nth-child(3){
  grid-column:span 2;
}
.project-theme:nth-child(4),
.project-theme:nth-child(5){
  grid-column:span 3;
  min-height:205px;
}
.project-theme::before{
  content:attr(data-number);
  position:absolute;
  right:14px;
  top:-20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:8rem;
  line-height:1;
  color:rgba(242,198,192,.09);
}
.project-theme .tag,
.project-theme h3,
.project-theme p{
  position:relative;
  z-index:1;
}
.project-theme h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.5rem;
  line-height:1.2;
  font-weight:400;
  margin:10px 0 18px;
  max-width:80%;
}
.project-theme p{
  color:var(--muted);
  font-size:.95rem;
  line-height:1.55;
  margin:0;
}
.project-theme strong{
  color:var(--text);
  font-weight:400;
}

/* Grande citation de fin de section */
.project-soul{
  max-width:1050px;
  margin:85px auto 10px;
  padding:60px 40px 55px;
  text-align:center;
  background:rgba(242,198,192,.055);
  border-top:1px solid rgba(242,198,192,.48);
  border-bottom:1px solid rgba(242,198,192,.48);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.7rem,5vw,4.8rem);
  line-height:1.12;
  font-style:italic;
  color:#f2c6c0;
}
.project-soul::before{
  content:"“";
  display:block;
  font-size:6rem;
  line-height:.6;
  margin-bottom:24px;
  color:rgba(242,198,192,.6);
}
.project-soul small{
  display:block;
  margin-top:26px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.72rem;
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--muted);
}

@media(max-width:950px){
  .project-feature{grid-template-columns:1fr}
  .project-themes{grid-template-columns:repeat(2,1fr)}
  .project-theme,
  .project-theme:nth-child(1),
  .project-theme:nth-child(2),
  .project-theme:nth-child(3),
  .project-theme:nth-child(4),
  .project-theme:nth-child(5){
    grid-column:auto;
  }
}

@media(max-width:560px){
  .project-themes{grid-template-columns:1fr}
  .project-theme{min-height:auto}
  .project-soul{padding:45px 20px 40px}
}

/* ==================================================
   ACCUEIL GÉNÉRAL — ÉLÉMENTS SPÉCIFIQUES
================================================== */
.home-hero{min-height:88vh}
.home-hero .hero-content{padding-bottom:90px}

/* TROIS GRANDS PARCOURS */
.parcours-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:30px;
}
.parcours-card{
  position:relative;
  min-height:430px;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--bg2);
}
.parcours-card img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  opacity:.88;
}
.parcours-card::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.88));
}
.parcours-card-content{
  position:absolute;z-index:1;
  left:0;right:0;bottom:0;
  padding:28px;
}
.parcours-card h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.75rem;font-weight:400;
  line-height:1.15;margin:7px 0 5px;
}
.parcours-card p{margin:0;color:#d6d1c9}
.parcours-card:hover img{
  transform:scale(1.035);
  transition:transform .6s ease;
}

@media(max-width:900px){
  .parcours-grid{grid-template-columns:1fr}
  .parcours-card{min-height:340px}
}

.realisation-group{margin-top:55px}
.realisation-group + .realisation-group{margin-top:80px}
.realisation-title{
  font-family:Georgia,"Times New Roman",serif;
  font-size:2rem;
  font-weight:400;
  margin:0 0 12px;
}
.realisation-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:28px;
}
.realisation-card{
  position:relative;
  min-height:390px;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--bg2);
}
.realisation-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.78;
}
.realisation-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.9));
}
.realisation-card-content{
  position:absolute;
  z-index:1;
  left:0;right:0;bottom:0;
  padding:28px;
}
.realisation-card h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.8rem;
  font-weight:400;
  margin:5px 0;
}
.realisation-card p{margin:6px 0;color:#d6d1c9}
.realisation-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:390px;
  border:1px dashed rgba(255,255,255,.22);
  background:var(--bg2);
  color:var(--muted);
  text-align:center;
  padding:30px;
}
.award{
  padding:38px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#f4f1eb;
  color:#171719;
}

.award-banner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:38px;
}

.award-logo{
  width:190px;
  flex:0 0 auto;
}

.award-logo img{
  width:100%;
  height:auto;
}

.award-separator{
  width:1px;
  height:85px;
  background:rgba(0,0,0,.18);
}

.award-text{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.45rem,3vw,2.35rem);
  line-height:1.25;
}

.award-text strong{
  display:block;
  font-weight:400;
}

.award-text span{
  display:block;
  margin-top:6px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#66615c;
}

@media(max-width:700px){
  .award-banner{
    flex-direction:column;
    gap:22px;
    text-align:center;
  }
  .award-separator{
    width:90px;
    height:1px;
  }
  .award-logo{width:165px}
}

.home-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:35px;
}
.home-card{
  background:var(--bg2);
  border:1px solid var(--line);
  padding:30px;
}
.home-card h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.7rem;
  font-weight:400;
  margin:5px 0 10px;
}
.home-card p{color:var(--muted)}

/* ==================================================
   ACCUEIL — L'ESPERLUETTE(&)
================================================== */
.esperluette-intro{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:55px;
  align-items:start;
}

.esperluette-quote{
  margin:0;
  padding:30px 0;
  border-top:1px solid rgba(242,198,192,.32);
  border-bottom:1px solid rgba(242,198,192,.32);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.8rem,3.5vw,2.8rem);
  line-height:1.2;
  font-style:italic;
  color:#f2c6c0;
}

.esperluette-text p{
  color:#d6d1c9;
  font-size:1.08rem;
}

.esperluette-text strong{
  color:var(--text);
  font-weight:400;
}

.esperluette-button{
  margin-top:18px;
}

@media(max-width:850px){
  .esperluette-intro{
    grid-template-columns:1fr;
    gap:30px;
  }
}


.text-excerpt{
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:1.15rem;
  line-height:1.5;
  color:#d6d1c9 !important;
  margin:18px 0;
}


@media(max-width:850px){
  .realisation-grid,.award-inner,.home-cards{grid-template-columns:1fr}
  .realisation-card{min-height:320px}
  .award-year{font-size:6rem}
}

/* ==================================================
   ACCUEIL — CONTACT / ESPERLUETTE
================================================== */
.contact-footer{
  padding:65px 0 45px;
  border-top:1px solid var(--line);
}
.contact-footer-grid{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:55px;
  align-items:start;
}
.contact-footer h2{
  margin-bottom:8px;
}
.contact-details{
  display:grid;
  gap:10px;
  color:#d6d1c9;
}
.contact-details p{
  margin:0;
}
.contact-details a{
  color:var(--text);
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.22);
}
.contact-details a:hover{
  border-bottom-color:var(--text);
}
.contact-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}
@media(max-width:850px){
  .contact-footer-grid{grid-template-columns:1fr}
}


/* ==================================================
   ACCUEIL — SUIVRE / CONTACTER (EN ATTENTE)
================================================== */
.follow-contact{
  padding:75px 0;
  border-top:1px solid var(--line);
}
.follow-intro{
  max-width:760px;
  margin-bottom:38px;
}
.follow-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.follow-box{
  background:var(--bg2);
  border:1px solid var(--line);
  padding:30px;
}
.follow-box h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.7rem;
  font-weight:400;
  margin:5px 0 10px;
}
.follow-box p{
  color:var(--muted);
}
.form-row{
  display:grid;
  gap:10px;
  margin-top:20px;
}
.form-row input,
.form-row textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid rgba(255,255,255,.18);
  background:#0b0d10;
  color:var(--text);
  font:inherit;
}
.form-row textarea{
  min-height:125px;
  resize:vertical;
}
.form-row input:disabled,
.form-row textarea:disabled{
  opacity:.72;
}
.pending-button{
  display:inline-block;
  margin-top:12px;
  padding:12px 18px;
  border:1px solid rgba(255,255,255,.22);
  color:var(--muted);
  cursor:not-allowed;
}
.form-pending{
  margin-top:12px;
  font-size:.78rem;
  color:#f0b0a8;
  letter-spacing:.04em;
}
@media(max-width:850px){
  .follow-grid{grid-template-columns:1fr}
}

.home-button{
  margin-top:10px;
  color:#d6d1c9;
  border-color:rgba(255,255,255,.24);
}

.return-home{
  padding:35px 0 55px;
  text-align:center;
}

.return-home .button{
  margin-top:0;
}

.standalone-church{padding-top:70px}

.church-page-nav{
  border-bottom:1px solid var(--line);
  background:rgba(11,13,16,.94);
}

.church-page-nav .container{
  padding-top:16px;
  padding-bottom:16px;
}

.church-page-nav a{
  color:#f2c6c0;
  font-size:.92rem;
}

.back-to-churches{
  margin-top:0;
  color:#d6d1c9 !important;
  border-color:rgba(255,255,255,.24);
}


/* ==================================================
   NAVIGATION MOBILE
================================================== */
nav{position:relative}

.menu-toggle{
  display:none;
  width:44px;
  height:40px;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:3px;
  background:transparent;
  color:var(--text);
  cursor:pointer;
}

.menu-toggle span{
  display:block;
  height:1px;
  margin:5px 0;
  background:currentColor;
}

@media(max-width:850px){
  .menu-toggle{display:block}

  nav .links{
    display:none;
    position:absolute;
    top:100%;
    left:16px;
    right:16px;
    padding:12px 0;
    background:rgba(11,13,16,.98);
    border:1px solid var(--line);
    box-shadow:0 12px 30px rgba(0,0,0,.35);
  }

  nav .links.is-open{display:block}

  nav .links a{
    display:block;
    margin:0;
    padding:12px 18px;
  }

  nav .links a + a{
    border-top:1px solid rgba(255,255,255,.07);
  }
}

/* SINGULAR REALISATION PAGE */
.singular-hero{padding:72px 0 40px}
.singular-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,7vw,6rem);font-weight:400;line-height:.98;margin:10px 0 20px}
.singular-main-image{margin-top:38px}.singular-main-image img{display:block;width:100%;max-height:820px;object-fit:contain;background:#080a0d}
.media-credit{margin:8px 0 0;font-size:.76rem;color:var(--muted)}
.singular-intro{max-width:850px}.singular-intro p{font-size:1.1rem;color:#d6d1c9}
.singular-gallery,.video-grid,.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:30px}
.singular-gallery figure,.video-grid figure{margin:0}.singular-gallery img{display:block;width:100%;max-height:760px;object-fit:contain;background:#080a0d}
.video-grid video{display:block;width:100%;background:#000}
.document-card{display:block;padding:28px;border:1px solid var(--line);background:var(--bg2);color:var(--text);text-decoration:none}
.document-card h3{font-family:Georgia,"Times New Roman",serif;font-size:1.55rem;font-weight:400}.document-card p{color:var(--muted)}
.press-image{width:100%;max-width:420px;height:auto;margin-top:18px}.page-actions{display:flex;flex-wrap:wrap;gap:12px;padding:25px 0 70px}
@media(max-width:750px){.singular-gallery,.video-grid,.document-grid{grid-template-columns:1fr}}


/* ==================================================
   SAINT-MAXIMIN — LISIBILITÉ DES PHOTOS ET DE LA PRESSE
================================================== */
.singular-main-image,
.singular-gallery figure{
  padding:10px;
  background:#d8d2c8;
  border:1px solid rgba(255,255,255,.32);
}

.singular-main-image img,
.singular-gallery img{
  background:#080a0d;
}

.singular-main-image .media-credit,
.singular-gallery .media-credit{
  color:#393632;
  opacity:.88;
  padding:0 2px 2px;
}

.press-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-height:250px;
}

.press-note{
  max-width:520px;
}

.press-button{
  margin-top:14px;
}

@media(max-width:750px){
  .singular-main-image,
  .singular-gallery figure{
    padding:6px;
  }
}


/* ===== VALLÉE DE LA SAULX — grille et galeries ===== */
body.revigny-page .revigny-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
body.revigny-page .revigny-church{
  position:relative;
  overflow:hidden;
  background:#111;
  border:1px solid rgba(255,255,255,.08);
}
body.revigny-page .revigny-church img{
  display:block;
  width:100%;
  height:360px;
  object-fit:cover;
}
body.revigny-page .church-caption{
  padding:14px 16px 17px;
}
body.revigny-page .church-caption h3{
  margin:2px 0 0;
}
body.revigny-page .revigny-credit{
  font-size:.78rem;
  color:#aaa;
  margin-top:7px;
}
body.revigny-page .gallery-hint{
  margin-top:5px;
  color:#f2c6c0;
  font-size:.78rem;
}
body.revigny-page .church-gallery-trigger{
  cursor:pointer;
  transition:opacity .2s ease, transform .25s ease;
}
body.revigny-page .church-gallery-trigger:hover{
  opacity:.9;
  transform:scale(1.01);
}
body.gallery-open{overflow:hidden}
.revigny-lightbox{
  display:none;
  position:fixed;
  inset:0;
  z-index:1000;
  align-items:center;
  justify-content:center;
  padding:28px;
}
.revigny-lightbox.is-open{display:flex}
.revigny-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.9);
}
.revigny-lightbox-panel{
  position:relative;
  z-index:1;
  width:min(1100px,96vw);
  max-height:94vh;
  overflow:auto;
  padding:28px;
  background:#0b0d10;
  border:1px solid rgba(255,255,255,.14);
}
.revigny-lightbox-panel h2{margin-bottom:20px}
.revigny-lightbox-close{
  position:absolute;
  right:18px;
  top:12px;
  border:0;
  background:transparent;
  color:#eeeae2;
  font-size:2.2rem;
  cursor:pointer;
}
.revigny-lightbox-main{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) 52px;
  gap:12px;
  align-items:center;
}
.revigny-lightbox-main img{
  width:100%;
  max-height:72vh;
  object-fit:contain;
  background:#060708;
}
.revigny-gallery-prev,.revigny-gallery-next{
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.04);
  color:#eeeae2;
  height:58px;
  font-size:2rem;
  cursor:pointer;
}
.revigny-gallery-count{
  margin-top:10px;
  color:#b5b1aa;
  text-align:center;
  font-size:.82rem;
}
@media(max-width:850px){
  body.revigny-page .revigny-grid{grid-template-columns:1fr}
  body.revigny-page .revigny-church img{height:auto}
}


/* ===== VALLÉE DE LA SAULX — ATELIER STAINVILLE COMPACT ===== */
body.revigny-page #atelier .atelier-block{
  padding:22px;
  margin-top:20px;
}
body.revigny-page #atelier .atelier-block .lead{
  font-size:1.02rem;
  line-height:1.55;
  margin-bottom:10px;
}
body.revigny-page #atelier .atelier-block p{
  margin-top:8px;
  margin-bottom:8px;
}
body.revigny-page #atelier .atelier-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}
body.revigny-page #atelier .atelier-gallery img{
  width:100%;
  height:185px;
  object-fit:cover;
  display:block;
}
body.revigny-page #atelier .atelier-gallery img:nth-child(1),
body.revigny-page #atelier .atelier-gallery img:nth-child(7){
  grid-column:auto;
}
@media(max-width:850px){
  body.revigny-page #atelier .atelier-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:560px){
  body.revigny-page #atelier .atelier-gallery{
    grid-template-columns:1fr;
  }
  body.revigny-page #atelier .atelier-gallery img{
    height:auto;
  }
}

.doc-card img{display:block;max-width:100%;height:auto;margin:0 0 14px;border-radius:8px;}

/* Affiche volontairement plus discrète que les articles */
.poster-card img{
  width:180px;
  max-width:55%;
  margin:0 auto 14px;
}

/* Aperçus presse : vignette lisible, clic vers le document en grand */
.press-thumb{
  display:block;
  width:150px;
  margin:10px auto 14px;
}
.press-thumb img{
  display:block;
  width:100%;
  height:190px;
  object-fit:cover;
  object-position:top;
  border-radius:7px;
}
.press-thumb:hover{opacity:.88}

/* L'affiche garde davantage de présence visuelle */
.poster-card img{
  width:260px;
  max-width:75%;
  margin:0 auto 14px;
}
