:root{
    --stone-rose: #C0755B;
    --stone-rose-deep: #A15C46;
    --stone-dark: #2A2621;
    --parchment: #F1E9DA;
    --parchment-deep: #E6D9C2;
    --forest: #52603F;
    --forest-deep: #3E4A2F;
    --bronze: #86602F;
    --bronze-deep: #6B4B24;
    --slate: #4B4A46;
    --charcoal-panel: #26221E;
    --rule: #C9B8A0;
    --paper: #FBF6EC;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Public Sans', sans-serif;
    color:var(--stone-dark);
    background:var(--parchment);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:600;
    letter-spacing:-0.01em;
  }
  .eyebrow{
    font-family:'Courier Prime', monospace;
    font-size:0.78rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    opacity:0.75;
  }
  .invite_clic{
    font-family:'Courier Prime', monospace;
    font-size:0.9rem;
    letter-spacing:0.14em;
    color:var(--stone-dark);
	text-align:center;
	margin-top:15px;
  }

  /* Skip link */
  .skip-link{
    position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden;
    background:var(--stone-rose); color:var(--paper); padding:10px 18px; z-index:1000;
    text-decoration:none; font-weight:700; border-radius:2px;
  }
  .skip-link:focus{
    left:16px; top:16px; width:auto; height:auto; overflow:visible;
  }

  a{color:inherit;}
  img{display:block; max-width:100%; height:auto;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 24px;}

  /* Skip link / focus */
  a:focus-visible, button:focus-visible{outline:3px solid var(--stone-rose); outline-offset:2px;}

  /* ---------- NAV ---------- */
  header.site-nav{
    position:sticky; top:0; z-index:50;
    background:rgba(241,233,218,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--rule);
  }
  .nav-inner{
    max-width:1120px; margin:0 auto; padding:14px 24px;
    display:flex; align-items:center; justify-content:space-between;
    gap:20px;
  }
  .brand{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem;}
  .brand img{width:34px; height:34px; object-fit:contain;}
  nav.links{display:flex; gap:22px; flex-wrap:wrap;}
  nav.links a{
    font-size:0.86rem; text-decoration:none; font-weight:600;
    padding:6px 2px; border-bottom:2px solid transparent;
    color:var(--slate);
    transition:border-color .25s, color .25s;
  }
  nav.links a.active, nav.links a:hover{color:var(--stone-dark); border-bottom-color: var(--dot, var(--stone-rose));}
  .nav-toggle{display:none; background:none; border:none; font-size:1.6rem; cursor:pointer; color:var(--stone-dark);}

  @media(max-width:860px){
    nav.links{
      display:none; position:absolute; top:100%; left:0; right:0;
      background:var(--paper); flex-direction:column; padding:14px 24px 20px; gap:14px;
      border-bottom:1px solid var(--rule);
    }
    nav.links.open{display:flex;}
    .nav-toggle{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    background:var(--charcoal-panel);
    color:var(--paper);
    overflow:hidden;
  }
  .hero-grid{
    max-width:1120px; margin:0 auto; padding:70px 24px 90px;
    display:grid; grid-template-columns: 1.05fr 0.95fr; gap:48px; align-items:center;
  }
  .hero h1{font-size:clamp(2.4rem, 5vw, 3.6rem); line-height:1.05; color:var(--paper); margin:14px 0 20px;}
  .hero p.lede{font-size:1.08rem; max-width:480px; color:#E9DFCB; opacity:0.92;}
  .hero .eyebrow{color:var(--stone-rose);}
  .hero-actions{margin-top:32px; display:flex; gap:16px; flex-wrap:wrap;}
  .btn{
    display:inline-block; padding:13px 26px; font-weight:700; font-size:0.92rem;
    text-decoration:none; border-radius:2px; transition:transform .2s, background .2s;
  }
  .btn-primary{background:var(--stone-rose); color:var(--paper);}
  .btn-primary:hover{background:var(--stone-rose-deep); transform:translateY(-1px);}
  .btn-ghost{border:1px solid rgba(251,246,236,0.4); color:var(--paper);}
  .btn-ghost:hover{border-color:rgba(251,246,236,0.8);}
  .hero-img-wrap{
    position:relative; border-radius:2px; overflow:hidden;
    box-shadow:0 30px 60px -20px rgba(0,0,0,0.5);
    border:1px solid rgba(251,246,236,0.15);
  }
  .hero-img-wrap img{width:100%; height:420px; object-fit:cover;}
  .hero-caption{
    position:absolute; bottom:0; left:0; right:0;
    background:linear-gradient(to top, rgba(20,17,14,0.85), transparent);
    color:var(--paper); padding:18px 16px 12px; font-family:'Courier Prime',monospace; font-size:0.76rem;
  }
  @media(max-width:860px){ .hero-grid{grid-template-columns:1fr;} .hero-img-wrap img{height:280px;} }

  /* strata divider */
  .strata{height:10px; display:flex;}
  .strata span{flex:1;}

  /* ---------- MISSION ---------- */
  .mission{padding:70px 0; background:var(--paper); border-bottom:1px solid var(--rule);}
  .mission .wrap{display:grid; grid-template-columns: 0.8fr 1.2fr; gap:50px; align-items:start;}
  .mission h2{font-size:1.9rem;}
  .mission-themes{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
  .theme-tag{
    font-family:'Courier Prime',monospace; font-size:0.74rem; padding:6px 12px;
    border:1px solid var(--rule); border-radius:20px; color:var(--slate);
  }
  .mission .eglise{	  
    font-family:'Courier Prime',monospace;
	font-size:0.74rem;
  }
  @media(max-width:860px){ .mission .wrap{grid-template-columns:1fr;} }

  /* ---------- SECTION OVERVIEW GRID ---------- */
  .overview{padding:60px 0 20px; background:var(--paper);}
  .overview h2{font-size:1.7rem; margin-bottom:8px;}
  .overview p.sub{color:var(--slate); max-width:560px; margin-bottom:36px;}
  .card-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:16px;}
  .card-grid a.card{
    display:block; padding:20px 18px; border-radius:2px; text-decoration:none;
    color:var(--paper); position:relative; overflow:hidden; min-height:150px;
    display:flex; flex-direction:column; justify-content:space-between;
    transition:transform .25s, box-shadow .25s;
  }
  .card-grid a.card:hover{transform:translateY(-4px); box-shadow:0 14px 28px -12px rgba(0,0,0,0.35);}
  .card-grid .card .num{font-family:'Courier Prime',monospace; font-size:0.72rem; opacity:0.75;}
  .card-grid .card .name{font-family:'Fraunces',serif; font-size:1.12rem; font-weight:600; margin-top:14px;}
  @media(max-width:900px){ .card-grid{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:520px){ .card-grid{grid-template-columns:1fr;} }

  /* ---------- DETAIL SECTIONS ---------- */
  .section-block{padding:80px 0; border-bottom:1px solid var(--rule);}
  .section-block .wrap.layout{
    display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
  }
  .section-block.reverse .wrap.layout{direction:rtl;}
  .section-block.reverse .wrap.layout > *{direction:ltr;}
  .section-block .eyebrow{margin-bottom:10px;}
  .section-block h2{font-size:2rem; margin-bottom:16px;}
  .section-block .figure{border-radius:2px; overflow:hidden; box-shadow:0 20px 40px -20px rgba(0,0,0,0.25);}
  .section-block .figure img{width:100%; height:380px; object-fit:cover;}
  .section-block .figure figcaption{
    font-family:'Courier Prime',monospace; font-size:0.74rem; padding:10px 4px 0; color:var(--slate);
  }
  .section-block p{margin-bottom:14px; color:#3a352f;}
  .section-block p:last-of-type{margin-bottom:0;}
  @media(max-width:860px){
    .section-block .wrap.layout{grid-template-columns:1fr;}
    .section-block.reverse .wrap.layout{direction:ltr;}
    .section-block{padding:56px 0;}
  }

  /* thematic tints */
  #genealogie{background:var(--paper);}
  #plantes{background:#EEF0E6;}
  #plantes .eyebrow, #plantes h2, #plantes .figure figcaption{color:var(--forest-deep);}
  #maquettes{background:var(--paper);}
  #carrieres{background:var(--parchment-deep);}
  #carrieres .eyebrow{color:var(--stone-rose-deep);}
  #fonderie{background:#EFE6D5;}
  #fonderie .eyebrow{color:var(--bronze-deep);}
  #paleontologie{background:var(--paper);}

  .callout-tree{
    background:var(--forest); color:var(--paper); padding:46px 0;
  }
  .callout-tree .wrap{display:flex; align-items:center; gap:36px; flex-wrap:wrap;}
  .callout-tree .num{font-family:'Fraunces',serif; font-size:3rem; font-weight:600;}
  .callout-tree img{width:120px; height:120px; object-fit:cover; border-radius:2px; flex-shrink:0;}
  .callout-tree p{max-width:560px; opacity:0.95;}

  /* ---------- GALLERY ---------- */
  .gallery{padding:80px 0; background:var(--parchment-deep); color:var(--paper);}
  .gallery h2{color:black; font-size:2rem;}
  .gallery .eyebrow{color:var(--stone-rose);}
  .gallery p.sub{color:black; max-width:600px; margin:14px 0 40px;}
  .postcards{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  .postcard{background:var(--paper); padding:10px 10px 14px; border-radius:2px; box-shadow:0 14px 30px -14px rgba(0,0,0,0.5); transform:rotate(var(--r,0deg));}
  .postcard:nth-child(1){--r:-1.2deg;}
  .postcard:nth-child(2){--r:0.8deg;}
  .postcard:nth-child(3){--r:-0.6deg;}
  .postcard:nth-child(4){--r:1.4deg;}
  .postcard img{height:150px; object-fit:cover; width:100%; filter:sepia(18%) contrast(1.02);}
  .postcard figcaption{font-family:'Courier Prime',monospace; font-size:0.68rem; color:var(--stone-dark); margin-top:8px; text-align:center;}
  @media(max-width:900px){ .postcards{grid-template-columns:repeat(2,1fr);} }

  /* ---------- CONTACT / FOOTER ---------- */
  footer{background:var(--stone-dark); color:var(--paper); padding:70px 0 30px;}
  footer h2{color:var(--paper); font-size:1.9rem; margin-bottom:12px;}
  footer p.sub{color:#cbbfa9; max-width:560px; margin-bottom:44px;}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:50px;}
  .contact-card{border:1px solid rgba(251,246,236,0.18); padding:26px 24px; border-radius:2px;}
  .contact-card .eyebrow{color:var(--stone-rose);}
  .contact-card h3{font-size:1.2rem; margin:10px 0 14px;}
  .contact-card a, .contact-card address{display:block; font-size:0.92rem; color:#e6dcc8; margin-bottom:6px; font-style:normal; text-decoration:none;}
  .contact-card a:hover{color:var(--stone-rose);}
  @media(max-width:760px){ .contact-grid{grid-template-columns:1fr;} }
  .foot-bottom{border-top:1px solid rgba(251,246,236,0.15); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.78rem; color:#9c9182;}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{transition:none !important;}
  }
