
*{box-sizing:border-box}
html,body{margin:0;padding:0;min-height:100%}
body{
  background:radial-gradient(circle at 50% 0%, rgba(255,255,255,.86), transparent 46%), #f4f1ea;
  color:#3b3029;
  font-family:Georgia,"Times New Roman",serif;
  overflow-x:hidden;
}
a{color:inherit}

/* ===== MENU UNIQUE, REFAIT À ZÉRO ===== */
.site-header{
  position:relative;
  z-index:1000;
  width:100%;
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:26px;
  padding:10px 28px;
  background:#2d5139;
  border-bottom:1px solid rgba(184,145,66,.55);
  box-shadow:0 8px 22px rgba(0,0,0,.16);
}
.site-logo{
  position:absolute;
  left:26px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
}
.site-logo img{width:52px;height:52px;object-fit:contain;display:block;border:0;box-shadow:none}
.site-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  padding:0 70px;
  margin:0;
}
.site-nav>a,.site-nav-parent{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 15px;
  color:#fff8df;
  background:transparent;
  border:1px solid transparent;
  border-radius:999px;
  text-decoration:none;
  font:600 16px/1 Georgia,"Times New Roman",serif;
  white-space:nowrap;
}
.site-nav-parent{cursor:default}
.site-nav>a:hover,.site-nav-item:hover>.site-nav-parent,.site-nav-item.open>.site-nav-parent{
  border-color:rgba(184,145,66,.70);
  background:rgba(255,255,255,.08);
  color:#fff;
}
.site-nav-item{position:relative;display:inline-flex;align-items:center;min-height:44px}
.site-nav-item::after{content:"";position:absolute;left:0;right:0;top:100%;height:12px}
.site-submenu{
  position:absolute;
  top:calc(100% + 8px);
  left:50%;
  transform:translateX(-50%);
  min-width:245px;
  display:none;
  flex-direction:column;
  gap:4px;
  padding:10px;
  background:#2d5139;
  border:1px solid rgba(184,145,66,.62);
  border-radius:13px;
  box-shadow:0 16px 32px rgba(0,0,0,.24);
  z-index:2000;
}
.site-nav-item:hover>.site-submenu,.site-nav-item:focus-within>.site-submenu,.site-nav-item.open>.site-submenu{display:flex}
.site-submenu a{
  display:block;
  padding:10px 12px;
  border-radius:8px;
  color:#fff8df;
  text-decoration:none;
  font-size:15px;
  line-height:1.15;
  white-space:nowrap;
  text-align:left;
}
.site-submenu a:hover{background:rgba(184,145,66,.22);color:#fff}

/* ===== COMMUN ===== */
.page-main{width:min(1240px,94vw);margin:0 auto;padding:52px 0 72px}
.intro-card,.page-card{
  background:rgba(255,255,255,.50);
  border:1px solid rgba(184,145,66,.34);
  border-radius:18px;
  box-shadow:0 18px 38px rgba(62,40,16,.10);
}
h1,h2{
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif;
  font-weight:400;
  color:#b89142;
  margin:0;
  text-shadow:none;
  text-transform:none;
}
h1{font-size:clamp(54px,6vw,88px);line-height:.92}
h2{font-size:clamp(34px,4vw,58px);line-height:.95}
p{font-size:20px;line-height:1.48;color:#3b3029;text-shadow:none}
.eyebrow{margin:0 0 8px;color:#b89142;font-size:clamp(34px,5vw,62px);font-style:italic;line-height:1}
.motto{margin:22px 0 0;color:#8a5a2c;font-size:clamp(24px,3vw,36px);font-style:italic}
.decor-separator{
  display:flex;align-items:center;justify-content:center;gap:18px;
  width:min(380px,80vw);margin:24px auto 32px;color:#b89142;font-size:14px;
}
.decor-separator:before,.decor-separator:after{content:"";height:1px;flex:1;background:#b89142}
.button-primary,.button-secondary{
  display:inline-flex;align-items:center;justify-content:center;min-height:42px;
  padding:0 22px;border-radius:999px;text-decoration:none;font-size:17px;
  border:1px solid rgba(184,145,66,.58);margin:5px;
}
.button-primary{background:#2d5139;color:#fff8df}
.button-secondary{background:rgba(255,255,255,.55);color:#6e4b2a}
.button-primary:hover,.button-secondary:hover{transform:translateY(-1px)}

/* ===== INDEX ===== */
.page-index .index-page{min-height:calc(100vh - 76px);display:flex;align-items:center;justify-content:center;text-align:center}
.index-card{width:min(980px,94vw);padding:44px 54px 46px}
.index-card h1{color:#2d5139;font-size:clamp(64px,7vw,104px)}
.index-card .text-block{max-width:820px;margin:0 auto 30px}
.index-card .text-block p{margin:0 0 15px;font-size:clamp(18px,2vw,22px)}

/* ===== ORIGINES ===== */
.page-origines .origines-page{width:min(1180px,94vw);margin:0 auto;padding:52px 0 72px}
.origines-carte{background:rgba(255,255,255,.5);border:1px solid rgba(184,145,66,.34);border-radius:18px;box-shadow:0 18px 38px rgba(62,40,16,.10);padding:42px 52px;text-align:center}
.origines-carte h1{color:#2d5139}
.origines-texte{text-align:left;margin:30px auto;max-width:980px}
.origines-texte p{font-size:20px;margin:0 0 18px}

/* ===== BLASON ===== */
.blason-page{width:min(1160px,94vw);margin:0 auto;padding:52px 0 72px;text-align:center}
.blason-contenu{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:34px;align-items:start;margin-top:30px;text-align:left}
.blason-image-cadre,.claude-image-cadre,.image-document{background:rgba(255,255,255,.48);border:1px solid rgba(184,145,66,.32);border-radius:16px;padding:15px;box-shadow:0 12px 28px rgba(62,40,16,.10)}
.blason-image-cadre img,.claude-image-cadre img,.image-document img{width:100%;height:auto;display:block;border:0;box-shadow:none;border-radius:10px}
.blason-texte{background:rgba(255,255,255,.48);border:1px solid rgba(184,145,66,.24);border-radius:16px;padding:24px}
.blason-texte p{font-size:20px}

/* ===== GÉNÉALOGIE ===== */
.genealogie-page{width:min(1320px,96vw);margin:0 auto;padding:52px 0 78px;text-align:center}
.genealogie-texte{max-width:1050px;margin:0 auto 28px;text-align:left}
.genealogie-texte p{font-size:20px;margin:0 0 18px}
.genealogie-zone-arbre{margin-top:24px}
.genealogie-arbre-complet{width:min(1160px,100%);height:auto;display:block;margin:0 auto;border:0;box-shadow:none}
.boutons-sous-arbre{width:min(1160px,100%);margin:10px auto 22px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.bouton-partie-arbre{display:flex;align-items:center;justify-content:center;min-height:26px;padding:0 8px;border-radius:999px;background:#2d5139;color:#fff8df;text-decoration:none;font-size:12px;border:1px solid rgba(184,145,66,.55)}
.geneanet-bas-page{margin:28px auto 0;text-align:center}
.geneanet-bas-page p{margin:0 0 8px;color:#8a5a2c;font-weight:bold}
.geneanet-bas-page a{color:#2d5139;font-weight:bold}

/* popups généalogie */
.image-popup{display:none;position:fixed;inset:0;z-index:5000;background:rgba(20,14,8,.88);padding:22px;overflow:auto}
.image-popup:target{display:block}
.image-popup .popup-contenu{width:max-content;max-width:none;margin:0 auto;text-align:center}
.image-popup img{display:block;width:auto;max-width:none;max-height:none;height:90vh;margin:38px auto 16px;border:0;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.image-popup a{color:#fff8df;background:#2d5139;border:1px solid rgba(184,145,66,.8);border-radius:999px;padding:8px 16px;text-decoration:none;margin:4px;display:inline-block}

/* ===== CLAUDE / CONTACT ===== */
.claude-page,.contact-page{width:min(1160px,94vw);margin:0 auto;padding:52px 0 72px;text-align:center}
.claude-intro-grid,.claude-enigme-grid{display:grid;grid-template-columns:1fr 420px;gap:34px;margin:30px 0;text-align:left;align-items:start}
.claude-texte-intro,.claude-texte-enigme,.contact-carte,.contact-avertissement{background:rgba(255,255,255,.48);border:1px solid rgba(184,145,66,.24);border-radius:16px;padding:24px}
.claude-bloc-vide{display:none}
.claude-enigme-titre-zone{text-align:center;margin-top:20px}
.contact-intro{max-width:920px;margin:0 auto 28px}
.contact-grille{display:grid;grid-template-columns:1fr 1fr;gap:28px;text-align:left}
.contact-carte h2{text-align:center;margin-bottom:12px}
.contact-formulaire label{display:block;margin:14px 0 5px;color:#6e4b2a;font-weight:bold}
.contact-formulaire input,.contact-formulaire textarea{width:100%;padding:10px 12px;border-radius:9px;border:1px solid rgba(184,145,66,.55);background:rgba(255,255,255,.75);font:inherit;color:#3b3029}
.contact-formulaire textarea{min-height:110px}
.contact-formulaire button{margin-top:14px;width:100%;min-height:42px;border-radius:999px;border:1px solid rgba(184,145,66,.55);background:#2d5139;color:#fff8df;font:700 16px Georgia,"Times New Roman",serif;cursor:pointer}

/* ===== CARTES / DOCUMENTS / GALERIE / HISTOIRE ===== */
.page-title{text-align:center;margin-bottom:34px}
.page-title p{max-width:880px;margin:0 auto;color:#8a5a2c}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.content-card{display:block;background:rgba(255,255,255,.50);border:1px solid rgba(184,145,66,.30);border-radius:16px;padding:18px;text-decoration:none;color:#3b3029;box-shadow:0 12px 26px rgba(62,40,16,.09)}
.content-card:hover{transform:translateY(-2px);border-color:rgba(184,145,66,.62)}
.content-card img{width:100%;height:210px;object-fit:cover;display:block;border-radius:10px;border:0;box-shadow:none;background:#efe3c8}
.content-card h2{font-size:42px;margin:16px 0 8px}
.content-card p{font-size:17px;margin:0}
.histoire-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.detail-page{text-align:center}
.image-document{width:min(980px,94vw);margin:0 auto 24px}
.detail-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}

/* ===== IMAGE VIEWER ===== */
.page-viewer{background:#2b1608;color:#fff8df}
.viewer-bar{position:sticky;top:0;z-index:1200;background:#2d5139;padding:10px;text-align:center}
.viewer-image{padding:20px;overflow:auto}
.viewer-image img{display:block;max-width:none;width:auto;height:auto}

/* ===== RESPONSIVE ===== */
@media(max-width:980px){
  .site-header{padding-top:72px}
  .site-logo{left:50%;top:14px;transform:translateX(-50%)}
  .site-nav{padding:0;gap:6px}
  .blason-contenu,.claude-intro-grid,.claude-enigme-grid,.contact-grille{grid-template-columns:1fr}
  .card-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .site-nav{flex-direction:column;align-items:stretch;width:100%}
  .site-nav>a,.site-nav-item,.site-nav-parent{width:100%}
  .site-submenu{position:static;transform:none;min-width:0;width:100%;box-shadow:none;margin-top:5px}
  .index-card,.origines-carte{padding:32px 20px}
  .boutons-sous-arbre{grid-template-columns:1fr;gap:6px}
}


/* =========================================================
   AJUSTEMENT MENU : suppression Accueil Histoire + survol stable
   ========================================================= */

.site-nav-item:hover > .site-submenu,
.site-nav-item:focus-within > .site-submenu,
.site-nav-item.open > .site-submenu{
  display:flex !important;
}

.site-nav-parent{
  pointer-events:none;
}

.site-nav-item{
  cursor:default;
}

.site-submenu{
  z-index:5000 !important;
}

.site-header{
  z-index:4000 !important;
}


/* =========================================================
   INDEX : texte "Pourquoi ce site ?"
   ========================================================= */

.index-intro h2{
  margin:0 0 22px !important;
  color:#b89142 !important;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif !important;
  font-size:clamp(46px, 5vw, 72px) !important;
  line-height:.95 !important;
  font-weight:400 !important;
  text-align:center !important;
  text-shadow:none !important;
}

.index-objectifs{
  max-width:820px;
  margin:6px auto 22px;
  padding-left:28px;
  text-align:left;
  color:#3b3029;
  font-size:clamp(18px, 2vw, 22px);
  line-height:1.45;
}

.index-objectifs li{
  margin:0 0 8px;
}

body.page-index .index-card,
body.page-index-corrigee .index-carte-accueil{
  width:min(1060px, 94vw) !important;
}

body.page-index .index-card .index-intro,
body.page-index-corrigee .index-intro{
  max-width:900px !important;
  text-align:left !important;
}

body.page-index .index-card .index-intro h2,
body.page-index-corrigee .index-intro h2{
  text-align:center !important;
}

body.page-index .index-card .index-intro p,
body.page-index-corrigee .index-intro p{
  text-align:left !important;
}


/* =========================================================
   INDEX : ajustements titre / sous-titre
   ========================================================= */

.page-index .index-card{
  width:min(1120px, 95vw) !important;
}

.page-index .index-card .eyebrow{
  font-size:clamp(24px, 2.6vw, 38px) !important;
  margin:0 0 10px !important;
  letter-spacing:.02em;
}

.page-index .index-card h1{
  font-size:clamp(40px, 4.6vw, 72px) !important;
  line-height:1 !important;
  white-space:nowrap;
}

.page-index .index-card .decor-separator{
  margin:18px auto 24px !important;
}

.page-index .index-intro h2{
  font-size:clamp(22px, 2.3vw, 32px) !important;
  line-height:1.05 !important;
  margin:0 0 18px !important;
}

@media (max-width: 760px){
  .page-index .index-card h1{
    white-space:normal;
  }
}


/* =========================================================
   ACCUEIL : même titre que la page index
   ========================================================= */

.page-origines .origines-carte .accueil-famille{
  font-size:clamp(24px, 2.6vw, 38px) !important;
  margin:0 0 10px !important;
  color:#b89142 !important;
  font-style:italic !important;
  line-height:1 !important;
}

.page-origines .origines-carte .accueil-titre-principal{
  color:#2d5139 !important;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif !important;
  font-size:clamp(40px, 4.6vw, 72px) !important;
  line-height:1 !important;
  white-space:nowrap !important;
  font-weight:400 !important;
  text-transform:none !important;
  letter-spacing:.01em !important;
}

@media (max-width: 760px){
  .page-origines .origines-carte .accueil-titre-principal{
    white-space:normal !important;
  }
}


/* =========================================================
   BLASON : ajustement des titres
   ========================================================= */

.page-blason .blason-titre h1{
  font-size:clamp(24px, 2.6vw, 38px) !important;
  line-height:1 !important;
  color:#b89142 !important;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif !important;
  font-weight:400 !important;
  text-transform:none !important;
}

.page-blason .blason-texte h2{
  font-size:clamp(22px, 2.3vw, 32px) !important;
  line-height:1.05 !important;
  color:#b89142 !important;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif !important;
  font-weight:400 !important;
  text-transform:none !important;
  text-align:center !important;
  margin:0 0 18px !important;
}


/* =========================================================
   BLASON : signification de la devise
   ========================================================= */

.page-blason .devise-blason{
  background:rgba(255,255,255,.48);
  border:1px solid rgba(184,145,66,.24);
  border-radius:16px;
  padding:22px 24px;
  margin:18px 0 0;
  text-align:left;
  box-shadow:0 12px 28px rgba(62,40,16,.08);
}

.page-blason .devise-blason h3{
  margin:0 0 12px;
  color:#b89142;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif;
  font-size:clamp(22px, 2.3vw, 32px);
  line-height:1.05;
  font-weight:400;
  text-align:center;
}

.page-blason .devise-blason p{
  margin:0 0 12px;
  color:#3b3029;
  font-size:18px;
  line-height:1.45;
  text-shadow:none;
}

.page-blason .devise-blason p:last-child{
  margin-bottom:0;
}


/* =========================================================
   BLASON : encadré devise plus large et harmonisation des titres
   ========================================================= */

.page-blason .blason-contenu{
  align-items:start !important;
}

.page-blason .devise-blason{
  width:min(980px, 94vw) !important;
  max-width:980px !important;
  margin:28px auto 0 !important;
  background:rgba(255,255,255,.48) !important;
  border:1px solid rgba(184,145,66,.24) !important;
  border-radius:16px !important;
  padding:24px 32px !important;
  text-align:left !important;
  box-shadow:0 12px 28px rgba(62,40,16,.08) !important;
}

.page-blason .devise-blason h3{
  margin:0 0 14px !important;
  color:#b89142 !important;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif !important;
  font-size:clamp(22px, 2.3vw, 32px) !important;
  line-height:1.05 !important;
  font-weight:400 !important;
  text-align:center !important;
}

.page-blason .devise-blason p{
  margin:0 0 12px !important;
  color:#3b3029 !important;
  font-size:18px !important;
  line-height:1.45 !important;
  text-shadow:none !important;
}

.page-blason .devise-blason p:last-child{
  margin-bottom:0 !important;
}

/* Titres principaux : modèle Blason pour les prochaines pages */
.blason-titre h1,
.page-title h1,
.genealogie-titre h1,
.claude-titre h1,
.contact-titre h1,
.documents-titre h1,
.galerie-titre h1,
.document-detail-titre h1{
  font-size:clamp(24px, 2.6vw, 38px) !important;
  line-height:1 !important;
  color:#b89142 !important;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif !important;
  font-weight:400 !important;
  text-transform:none !important;
  letter-spacing:.02em !important;
}

@media(max-width:760px){
  .page-blason .devise-blason{
    padding:22px 20px !important;
  }
}


/* Suppression des encadrés autour des images */
.blason-image-cadre,.claude-image-cadre,.image-document{background:transparent !important;border:none !important;border-radius:0 !important;padding:0 !important;box-shadow:none !important;}
.blason-image-cadre img,.claude-image-cadre img,.image-document img{border:0 !important;box-shadow:none !important;border-radius:0 !important;}


/* =========================================================
   CLAUDE MARIE : image cliquable en grand
   ========================================================= */

.image-zoom-link{
  display:block;
  cursor:zoom-in;
  text-decoration:none;
}

.image-zoom-link img{
  transition:transform .18s ease, opacity .18s ease;
}

.image-zoom-link:hover img{
  transform:scale(1.015);
  opacity:.96;
}

.image-zoom-indication{
  margin:8px 0 0 !important;
  font-size:14px !important;
  line-height:1.2 !important;
  color:#8a5a2c !important;
  text-align:center !important;
  font-style:italic;
}

.claude-popup .popup-contenu{
  width:min(1400px, 96vw) !important;
  max-width:96vw !important;
}

.claude-popup img{
  width:auto !important;
  max-width:96vw !important;
  height:auto !important;
  max-height:none !important;
  margin:22px auto 16px !important;
  border:0 !important;
  box-shadow:none !important;
}

.popup-fermer,
.popup-telecharger{
  color:#fff8df;
  background:#2d5139;
  border:1px solid rgba(184,145,66,.8);
  border-radius:999px;
  padding:8px 16px;
  text-decoration:none;
  margin:4px;
  display:inline-block;
}


/* =========================================================
   CORRECTION : image Claude Marie vraiment cliquable
   ========================================================= */

.claude-image-cadre{
  position:relative !important;
}

.claude-image-cadre .image-zoom-link{
  display:block !important;
  width:100% !important;
  cursor:zoom-in !important;
  text-decoration:none !important;
  position:relative !important;
  z-index:10 !important;
}

.claude-image-cadre .image-zoom-link img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  pointer-events:auto !important;
}

.claude-image-cadre .image-zoom-link:hover img{
  opacity:.94 !important;
  transform:scale(1.01) !important;
}

.image-zoom-indication{
  margin:8px 0 0 !important;
  font-size:14px !important;
  line-height:1.2 !important;
  color:#8a5a2c !important;
  text-align:center !important;
  font-style:italic !important;
}


/* =========================================================
   PAGE JEAN AUTHEVEL
   ========================================================= */

.jean-page{
  width:min(1160px,94vw);
  margin:0 auto;
  padding:52px 0 72px;
  text-align:center;
}

.jean-titre h1{
  font-size:clamp(24px, 2.6vw, 38px) !important;
  line-height:1 !important;
  color:#b89142 !important;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif !important;
  font-weight:400 !important;
  text-transform:none !important;
  letter-spacing:.02em !important;
}

.jean-separateur{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  width:min(380px,80vw);
  margin:18px auto 30px;
  color:#b89142;
  font-size:14px;
}

.jean-separateur:before,
.jean-separateur:after{
  content:"";
  height:1px;
  flex:1;
  background:#b89142;
}

.jean-contenu{
  background:rgba(255,255,255,.48);
  border:1px solid rgba(184,145,66,.24);
  border-radius:16px;
  padding:28px 32px;
  box-shadow:0 12px 28px rgba(62,40,16,.08);
}

.jean-texte{
  max-width:960px;
  margin:0 auto 28px;
  text-align:left;
}

.jean-texte p{
  margin:0 0 16px;
  font-size:20px;
  line-height:1.48;
  color:#3b3029;
}

.jean-images{
  display:grid;
  grid-template-columns:1.55fr 1fr 1fr;
  gap:18px;
  align-items:start;
  margin:8px auto 10px;
}

.jean-images figure{
  margin:0;
}

.jean-images img{
  width:100%;
  height:auto;
  display:block;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
}

.jean-indication{
  margin:12px 0 0 !important;
  font-size:14px !important;
  color:#8a5a2c !important;
  text-align:center !important;
  font-style:italic;
}

.jean-popup .popup-contenu{
  width:min(1500px,96vw) !important;
  max-width:96vw !important;
}

.jean-popup img{
  width:auto !important;
  max-width:96vw !important;
  height:auto !important;
  max-height:none !important;
  margin:22px auto 16px !important;
  border:0 !important;
  box-shadow:none !important;
}

@media(max-width:900px){
  .jean-images{
    grid-template-columns:1fr;
  }
  .jean-contenu{
    padding:24px 18px;
  }
}


/* =========================================================
   PAGE LÉON GUILLAUMIN - MISE EN PAGE MODELE
   ========================================================= */

.leon-modele-page{
  width:min(1680px, 99vw);
  margin:0 auto;
  padding:8px 0 40px;
}

.leon-modele-cadre{
  background:#d9c6b1;
  border:1px solid rgba(125,83,34,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
  padding:16px 22px 30px;
  color:#17130f;
}

.leon-modele-titre{
  margin:2px 0 22px;
  text-align:center;
  font-size:26px !important;
  font-style:italic;
  font-family:Arial, Helvetica, sans-serif !important;
  font-weight:700 !important;
  color:#141414 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}

.leon-modele-haut{
  display:grid;
  grid-template-columns:minmax(520px, 1.65fr) 170px minmax(350px, .95fr);
  gap:26px;
  align-items:start;
}

.leon-modele-texte{
  font-family:Arial, Helvetica, sans-serif;
  font-style:italic;
  font-weight:700;
  color:#181411;
  font-size:23px;
  line-height:1.2;
  text-align:left;
}

.leon-modele-texte p{
  margin:0 0 20px;
}

.leon-modele-texte h2{
  margin:8px 0 8px;
  font-family:Arial, Helvetica, sans-serif;
  font-size:23px;
  font-style:normal;
  font-weight:700;
  color:#181411;
}

.leon-modele-portrait-wrap{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding-top:56px;
}

.leon-modele-image-portrait img{
  display:block;
  width:180px;
  max-width:100%;
  height:auto;
  border:0 !important;
  box-shadow:none !important;
}

.leon-modele-roman-wrap{
  display:flex;
  justify-content:flex-end;
}

.leon-modele-image-roman img{
  display:block;
  width:min(100%, 470px);
  height:auto;
  border:3px solid rgba(120,120,120,.65) !important;
  box-shadow:6px 8px 10px rgba(0,0,0,.25) !important;
  background:#efe2d1;
}

.leon-modele-source{
  font-family:Arial, Helvetica, sans-serif;
  color:#16120f;
}

.leon-modele-source p{
  margin:0 0 10px;
}

.leon-modele-source a{
  color:#0f0f0f;
  text-decoration:none;
}

.leon-modele-source-centre{
  text-align:center;
  margin:46px auto 90px;
}

.leon-modele-source-centre p:first-child{
  font-style:italic;
  font-size:26px;
  font-weight:400;
}

.leon-modele-source-centre p:last-child{
  font-size:28px;
  font-weight:700;
  font-style:italic;
}

.leon-modele-source-bas{
  text-align:left;
  margin-left:124px;
  max-width:900px;
}

.leon-modele-source-bas p:first-child,
.leon-modele-source-bas p:last-child{
  font-size:18px;
  font-weight:700;
}

.page-leon-guillaumin .leon-indication{
  margin:14px 0 0 !important;
  font-size:14px !important;
  text-align:center !important;
  color:#6a4a29 !important;
  font-style:italic;
}

.leon-popup .popup-contenu{
  width:min(1500px,96vw) !important;
  max-width:96vw !important;
}

.leon-popup img{
  width:auto !important;
  max-width:96vw !important;
  height:auto !important;
  max-height:none !important;
  margin:22px auto 16px !important;
  border:0 !important;
  box-shadow:none !important;
}

@media (max-width: 1350px){
  .leon-modele-haut{
    grid-template-columns:1.25fr .65fr;
    grid-template-areas:
      "text roman"
      "portrait roman";
  }
  .leon-modele-texte{grid-area:text; font-size:21px;}
  .leon-modele-portrait-wrap{grid-area:portrait; padding-top:0; justify-content:flex-start;}
  .leon-modele-roman-wrap{grid-area:roman;}
}

@media (max-width: 980px){
  .leon-modele-page{width:min(98vw, 980px);}
  .leon-modele-cadre{padding:16px 14px 24px;}
  .leon-modele-haut{
    grid-template-columns:1fr;
    gap:18px;
  }
  .leon-modele-texte{font-size:19px;}
  .leon-modele-portrait-wrap,
  .leon-modele-roman-wrap{justify-content:center; padding-top:0;}
  .leon-modele-source-centre{margin:30px auto 40px;}
  .leon-modele-source-centre p:first-child{font-size:22px;}
  .leon-modele-source-centre p:last-child{font-size:23px;}
  .leon-modele-source-bas{margin-left:0;}
}


/* =========================================================
   LÉON GUILLAUMIN : fond blanc ivoire comme les autres pages
   ========================================================= */

.page-leon-guillaumin .leon-modele-cadre{
  background:rgba(255,255,255,.50) !important;
  border:1px solid rgba(184,145,66,.24) !important;
  box-shadow:0 12px 28px rgba(62,40,16,.08) !important;
}

.page-leon-guillaumin .leon-modele-source{
  background:transparent !important;
}


/* =========================================================
   PAGE GRAND HIVER 1709
   ========================================================= */

.page-grand-hiver .grand-hiver-page{
  width:min(1200px,94vw);
  margin:0 auto;
  padding:52px 0 72px;
}

.page-grand-hiver .grand-hiver-contenu{
  background:rgba(255,255,255,.48);
  border:1px solid rgba(184,145,66,.24);
  border-radius:16px;
  padding:30px 34px 34px;
  box-shadow:0 12px 28px rgba(62,40,16,.08);
}

.page-grand-hiver .grand-hiver-image{
  margin:0 0 28px;
}

.page-grand-hiver .grand-hiver-image img{
  display:block;
  width:min(100%, 980px);
  height:auto;
  margin:0 auto;
  border:0 !important;
  box-shadow:none !important;
}

.page-grand-hiver .grand-hiver-texte{
  max-width:1020px;
  margin:0 auto;
  text-align:left;
}

.page-grand-hiver .grand-hiver-texte p{
  margin:0 0 16px;
  font-size:20px;
  line-height:1.55;
  color:#3b3029;
}

.page-grand-hiver .grand-hiver-paragraphe-ouverture{
  margin-top:6px;
}

.page-grand-hiver .lettrine{
  float:left;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif;
  font-size:78px;
  line-height:.8;
  padding-right:8px;
  padding-top:6px;
  color:#b89142;
}

@media(max-width:760px){
  .page-grand-hiver .grand-hiver-contenu{
    padding:24px 18px 26px;
  }
  .page-grand-hiver .grand-hiver-texte p{
    font-size:18px;
  }
  .page-grand-hiver .lettrine{
    font-size:62px;
    padding-top:4px;
  }
}


/* =========================================================
   PAGE GUERRE DE COMTÉ
   ========================================================= */

.page-guerre-comte .guerre-comte-page{
  width:min(1200px,94vw);
  margin:0 auto;
  padding:52px 0 72px;
}

.page-guerre-comte .guerre-comte-contenu{
  background:rgba(255,255,255,.48);
  border:1px solid rgba(184,145,66,.24);
  border-radius:16px;
  padding:30px 34px 34px;
  box-shadow:0 12px 28px rgba(62,40,16,.08);
}

.page-guerre-comte .guerre-comte-image{
  margin:0 0 28px;
}

.page-guerre-comte .guerre-comte-image img{
  display:block;
  width:min(100%, 980px);
  height:auto;
  margin:0 auto;
  border:0 !important;
  box-shadow:none !important;
}

.page-guerre-comte .guerre-comte-texte{
  max-width:1020px;
  margin:0 auto;
  text-align:left;
}

.page-guerre-comte .guerre-comte-texte p{
  margin:0 0 16px;
  font-size:20px;
  line-height:1.55;
  color:#3b3029;
}

.page-guerre-comte .guerre-comte-paragraphe-ouverture{
  margin-top:6px;
}

.page-guerre-comte .lettrine{
  float:left;
  font-family:"Microsoft Himalaya", Georgia, "Times New Roman", serif;
  font-size:78px;
  line-height:.8;
  padding-right:8px;
  padding-top:6px;
  color:#b89142;
}

.page-guerre-comte .guerre-comte-conclusion{
  text-align:center;
  font-weight:700;
  max-width:900px;
  margin:28px auto 0;
}

@media(max-width:760px){
  .page-guerre-comte .guerre-comte-contenu{
    padding:24px 18px 26px;
  }
  .page-guerre-comte .guerre-comte-texte p{
    font-size:18px;
  }
  .page-guerre-comte .lettrine{
    font-size:62px;
    padding-top:4px;
  }
}


.page-guerre-comte .guerre-comte-actions{
  margin-top:30px;
}

.page-guerre-comte-suite .guerre-comte-suite-texte p:first-child{
  margin-top:6px;
}


/* =========================================================
   GUERRE DE COMTÉ : lien vers la suite très visible
   ========================================================= */

.page-guerre-comte .guerre-comte-lien-suite-haut{
  margin:22px auto 30px;
  text-align:center;
}

.page-guerre-comte .guerre-comte-lien-suite-bas{
  margin:32px auto 4px;
  text-align:center;
}

.page-guerre-comte .bouton-suite-visible{
  display:inline-flex !important;
  min-height:48px !important;
  padding:0 30px !important;
  font-size:19px !important;
  font-weight:700 !important;
  background:#2d5139 !important;
  color:#fff8df !important;
  border:2px solid rgba(184,145,66,.85) !important;
  box-shadow:0 8px 18px rgba(62,40,16,.16) !important;
}


/* ===== COUPURES DE JOURNAUX ===== */
.press-page{width:min(1360px,95vw)}
.press-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;align-items:start}
.press-card{display:flex;flex-direction:column;gap:10px;padding:12px;background:rgba(255,255,255,.62);border:1px solid rgba(184,145,66,.28);border-radius:16px;box-shadow:0 10px 24px rgba(62,40,16,.08);text-decoration:none;transition:transform .18s ease, box-shadow .18s ease}
.press-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(62,40,16,.12)}
.press-card img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:none}
.press-card-label{text-align:center;font-size:16px;color:#6b4f2a;font-weight:600}


/* ===== BOUTON RETOUR BAS DE PAGE ===== */
.retour-page-zone{
  display:flex;
  justify-content:center;
  margin:36px auto 0;
  padding-bottom:4px;
}

.retour-page-bouton{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(184,145,66,.62);
  background:rgba(255,255,255,.62);
  color:#6e4b2a;
  font-family:Georgia,"Times New Roman",serif;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 6px 16px rgba(62,40,16,.08);
  transition:transform .18s ease, background .18s ease;
}

.retour-page-bouton:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.82);
}


/* ===== PAGES DE VISIONNAGE DES COUPURES DE JOURNAUX ===== */
.page-coupure-viewer{
  background:#f7f1e5;
  color:#3b3029;
}

.page-coupure-viewer .viewer-bar{
  background:rgba(255,255,255,.86);
  border-bottom:1px solid rgba(184,145,66,.28);
  box-shadow:0 8px 18px rgba(62,40,16,.08);
}

.page-coupure-viewer .viewer-image{
  padding:28px 18px 60px;
}

.page-coupure-viewer .viewer-image img{
  display:block;
  width:auto;
  max-width:min(1200px,96vw);
  height:auto;
  margin:0 auto;
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}


/* ===== BOUTON RETOUR DISCRET SUR LES COUPURES EN GRAND ===== */
.coupure-return-discret{
  display:flex;
  justify-content:center;
  margin:10px auto 42px;
}

.coupure-return-discret a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(184,145,66,.42);
  background:rgba(255,255,255,.48);
  color:#7a5a30;
  font-family:Georgia,"Times New Roman",serif;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  box-shadow:none;
}

.coupure-return-discret a:hover{
  background:rgba(255,255,255,.72);
}


/* ===== PAGES DÉPLACEMENTS REFAITES ===== */
.page-docs-deplacements .page-title p,
.page-deplacements-new .page-title p,
.deplacements-hero-copy p{max-width:760px;margin-left:auto;margin-right:auto}
.deplacements-kicker{
  margin:0 0 14px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#8a5a2c;
  font-size:14px;
  font-weight:700;
}
.deplacements-doc-highlight,
.deplacements-hero{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:28px;
  align-items:center;
  padding:28px;
  margin:0 0 34px;
  background:linear-gradient(180deg, rgba(255,255,255,.84), rgba(245,239,228,.92));
  border:1px solid rgba(184,145,66,.32);
  border-radius:24px;
  box-shadow:0 18px 38px rgba(62,40,16,.10);
}
.deplacements-doc-copy h2{
  margin:0 0 12px;
}
.deplacements-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.deplacements-doc-visual,
.deplacements-figure{
  display:block;
  background:#fff;
  border-radius:20px;
  border:1px solid rgba(184,145,66,.28);
  box-shadow:0 18px 36px rgba(59,48,41,.12);
  overflow:hidden;
}
.deplacements-doc-visual img,
.deplacements-figure img{
  display:block;
  width:100%;
  height:auto;
}
.content-card-featured{outline:2px solid rgba(184,145,66,.28)}
.deplacements-hero-side{display:flex;justify-content:center}
.deplacements-note{
  width:min(100%, 320px);
  padding:24px;
  background:rgba(45,81,57,.95);
  color:#fff8df;
  border-radius:20px;
  box-shadow:0 18px 34px rgba(45,81,57,.18);
}
.deplacements-note strong{display:block;margin-bottom:10px;color:#f1d58a}
.deplacements-note p{margin:0;color:#fff8df;font-size:18px;line-height:1.5}
.deplacements-figure-wrap{margin:0 0 30px}
.deplacements-figure figcaption{
  padding:12px 16px 16px;
  font-size:16px;
  color:#6d5845;
  text-align:center;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,244,236,.95));
}
@media (max-width: 900px){
  .deplacements-doc-highlight,
  .deplacements-hero{grid-template-columns:1fr}
}


/* ===== PAGE DOCS PHOTOS ===== */
.docs-photos-page{
  width:min(1280px,94vw);
}

.docs-photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:22px;
  margin-top:30px;
}

.docs-photo-card{
  background:rgba(255,255,255,.55);
  border:1px solid rgba(184,145,66,.34);
  border-radius:18px;
  box-shadow:0 18px 38px rgba(62,40,16,.10);
  overflow:hidden;
}

.docs-photo-card a{
  display:block;
  color:#3b3029;
  text-decoration:none;
}

.docs-photo-card img{
  width:100%;
  height:260px;
  object-fit:cover;
  display:block;
  border:0;
  box-shadow:none;
}

.docs-photo-card span{
  display:block;
  padding:14px 16px 16px;
  color:#6e4b2a;
  font-weight:700;
  font-size:16px;
  line-height:1.35;
}

.doc-photo-page{
  width:min(1280px,94vw);
}

.doc-photo-grand{
  background:rgba(255,255,255,.50);
  border:1px solid rgba(184,145,66,.34);
  border-radius:18px;
  padding:18px;
  box-shadow:0 18px 38px rgba(62,40,16,.10);
}

.doc-photo-grand img{
  width:100%;
  height:auto;
  display:block;
  border:0;
  box-shadow:none;
}

.doc-photo-actions{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}


/* ===== GALERIE PORTRAITS ===== */
.galerie-page{
  width:min(1180px,94vw);
}

.galerie-couples{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
  gap:28px;
  margin-top:34px;
}

.couple-card{
  background:rgba(255,255,255,.56);
  border:1px solid rgba(184,145,66,.34);
  border-radius:22px;
  padding:24px 20px 26px;
  box-shadow:0 18px 38px rgba(62,40,16,.10);
}

.couple-card h2{
  text-align:center;
  font-size:clamp(34px,4vw,54px);
  margin:0 0 22px;
  color:#b89142;
}

.couple-portraits{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  gap:24px;
  flex-wrap:wrap;
}

.portrait-card{
  width:140px;
  margin:0;
  text-align:center;
}

.portrait-card img{
  display:block;
  width:120px;
  height:160px;
  object-fit:cover;
  margin:0 auto 10px;
  border:0;
  box-shadow:none;
  background:#f5efe4;
}

.portrait-card figcaption{
  color:#2f6d2d;
  font-family:Georgia,"Times New Roman",serif;
  font-size:13px;
  line-height:1.22;
}

.portrait-card figcaption strong,
.portrait-card figcaption span{
  display:block;
}

@media (max-width:640px){
  .galerie-couples{grid-template-columns:1fr}
  .couple-portraits{gap:18px}
}


/* ===== TEXTE CONFIDENTIALITÉ GALERIE ===== */
.galerie-confidentialite{
  margin:0 0 30px;
  padding:24px 30px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(184,145,66,.34);
  border-radius:20px;
  box-shadow:0 18px 38px rgba(62,40,16,.10);
}

.galerie-confidentialite h2{
  margin:0 0 14px;
  text-align:center;
  color:#b89142;
  font-size:clamp(32px,4vw,50px);
}

.galerie-confidentialite p{
  margin:0 0 12px;
  font-size:19px;
  line-height:1.55;
  color:#3b3029;
}

.galerie-confidentialite p:last-child{
  margin-bottom:0;
}


/* ===== GALERIE : silhouette sans texte ===== */
.portrait-card-sans-texte{
  padding-top:0;
}

.portrait-card-sans-texte figcaption{
  display:none;
}


/* ===== DOCS : FICHIER FAMILLE PDF/ZIP ===== */
.docs-famille-zip{
  display:grid;
  grid-template-columns:minmax(210px, 310px) 1fr;
  gap:26px;
  align-items:center;
  margin:0 0 32px;
  padding:24px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(184,145,66,.34);
  border-radius:22px;
  box-shadow:0 18px 38px rgba(62,40,16,.10);
}

.docs-famille-preview img{
  display:block;
  width:100%;
  max-height:380px;
  object-fit:contain;
  border:0;
  box-shadow:none;
  background:#f8f4ee;
}

.docs-famille-kicker{
  margin:0 0 8px;
  color:#8a5a2c;
  font-size:15px;
  font-weight:bold;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.docs-famille-content h2{
  margin:0 0 12px;
  color:#b89142;
}

.docs-famille-content p{
  margin:0 0 16px;
  font-size:19px;
  line-height:1.5;
}

.docs-famille-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

@media(max-width:780px){
  .docs-famille-zip{
    grid-template-columns:1fr;
  }
}


/* ===== TRANSITION DE PAGE : FONDU PLUS LONG ===== */
body{
  opacity:0;
  transition:opacity 1.15s ease-in-out;
}

body.page-loaded{
  opacity:1;
}

body.page-fade-out{
  opacity:0;
}


/* ===== PAGE CONTRIBUER ===== */
.contribuer-page{
  width:min(1160px,94vw);
  margin:0 auto;
  padding:52px 0 72px;
}

.contribuer-intro,
.contact-contribuer,
.contribuer-contact{
  background:rgba(255,255,255,.50);
  border:1px solid rgba(184,145,66,.30);
  border-radius:18px;
  padding:24px 30px;
  box-shadow:0 18px 38px rgba(62,40,16,.10);
  margin:0 0 28px;
  text-align:center;
}

.contribuer-intro p,
.contact-contribuer p,
.contribuer-contact p{
  margin:0 0 14px;
  font-size:20px;
  line-height:1.5;
}

.contribuer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin:28px 0;
}

.contribuer-card{
  background:rgba(255,255,255,.56);
  border:1px solid rgba(184,145,66,.30);
  border-radius:18px;
  padding:24px 26px;
  box-shadow:0 14px 30px rgba(62,40,16,.09);
}

.contribuer-card h2,
.contact-contribuer h2{
  margin:0 0 14px;
  color:#b89142;
  font-size:clamp(28px,3.4vw,46px);
  text-align:center;
}

.contribuer-card p{
  margin:0;
  font-size:19px;
  line-height:1.5;
}

.contribuer-card-large{
  grid-column:1 / -1;
}

.contact-contribuer{
  margin:28px 0;
}

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

.ai-footer{
  text-align:center;
  font-size:12px;
  color:#999;
  margin:40px 0 10px;
}


/* Liens retour directs : plus fiable en ligne qu'un bouton JavaScript history.back() */
a.retour-page-bouton{
  display:inline-block;
  text-decoration:none;
}


.contact-mail-note{
  text-align:center;
  color:#4f3b25;
  font-size:0.95rem;
  margin:0.5rem auto 1.5rem;
}
