:root{
  --cream:#f3f1ea;
  --ink:#1d3320;
  --rust:#2f5d34;      /* vert principal (remplace l'accent terracotta) */
  --rust-dark:#1f3f24;  /* vert foncé (hover / contraste) */
  --olive:#3c5a3a;      /* vert bandeau */
  --gold:#7fa86f;       /* vert clair (remplace l'accent doré) */
  --line: rgba(14,20,16,0.14);
  --maxw: 1180px;
}

*{box-sizing:border-box;}
.img-slot{display:block; width:100%; height:100%;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family: Georgia, 'Times New Roman', serif;
  background:var(--cream);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family: Georgia, 'Times New Roman', serif;
  font-weight:400;
  letter-spacing:0.01em;
  margin:0;
}

.eyebrow{
  font-family: 'Courier New', monospace;
  text-transform:uppercase;
  letter-spacing:0.22em;
  font-size:0.72rem;
  color:var(--rust);
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
section{position:relative;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

/* ---------- HEADER ---------- */
header.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(243,241,234,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:var(--maxw); margin:0 auto; padding:14px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.logo{
  display:flex; align-items:center; gap:10px;
  font-size:1.25rem; letter-spacing:0.04em;
}
.logo .mark{
  width:34px;height:34px;border-radius:50%;
  background: conic-gradient(from 200deg, var(--rust), var(--gold), var(--olive), var(--rust));
  display:flex; align-items:center; justify-content:center;
  color:var(--cream); font-family:'Courier New',monospace; font-weight:700; font-size:0.85rem;
}
.logo strong{font-weight:700;color:var(--rust-dark);}

nav.main-nav{display:flex; align-items:center; gap:30px;}
nav.main-nav > ul{list-style:none; display:flex; gap:30px; margin:0; padding:0;}
nav.main-nav > ul > li{position:relative;}
nav.main-nav > ul > li > a{
  font-family:'Courier New', monospace;
  font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase;
  padding:8px 0; border-bottom:1px solid transparent;
  transition:border-color .2s ease, color .2s ease;
}
nav.main-nav > ul > li > a:hover,
nav.main-nav > ul > li > a.active{border-color:var(--rust); color:var(--rust-dark);}

.submenu{
  list-style:none; margin:0; padding:10px 0;
  position:absolute; top:100%; left:0;
  background:var(--cream); border:1px solid var(--line);
  min-width:200px;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
  box-shadow:0 14px 30px rgba(35,27,20,0.12);
}
nav.main-nav > ul > li:hover .submenu{opacity:1; visibility:visible; transform:translateY(0);}
.submenu li a{
  display:block; padding:9px 18px;
  font-family:'Courier New', monospace; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase;
}
.submenu li a:hover,
.submenu li a.active{background:rgba(169,70,28,0.08); color:var(--rust-dark);}

.header-contact{display:flex; align-items:center; gap:18px; font-size:0.85rem;}
.header-contact a{display:flex; align-items:center; gap:6px;}
.btn-call{
  border:1px solid var(--rust); padding:8px 16px; border-radius:999px;
  font-family:'Courier New', monospace; font-size:0.74rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--rust-dark);
  transition: background .2s ease, color .2s ease;
}
.btn-call:hover{background:var(--rust); color:var(--cream);}

.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
.nav-toggle span{display:block; width:24px; height:2px; background:var(--ink); margin:5px 0;}

/* ---------- HERO (accueil) ---------- */
.hero{
  min-height:92vh; display:flex; align-items:center;
  background:
    linear-gradient(180deg, rgba(20,40,24,0.45), rgba(20,40,24,0.22)),
    repeating-linear-gradient(135deg, #2c4a30 0px, #2c4a30 2px, #355938 2px, #355938 60px);
  color:var(--cream); text-align:center;
}
.hero .wrap{display:flex; flex-direction:column; align-items:center; gap:28px;}
.hero .eyebrow{color:var(--gold);}
.hero h1{
  font-size:clamp(2.4rem, 6vw, 4.6rem);
  line-height:1.05; max-width:14ch;
  font-style:italic;
}
.hero p.sub{max-width:46ch; font-size:1.05rem; opacity:0.88; line-height:1.6;}
.hero .cta{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--rust); color:var(--cream); padding:15px 30px; border-radius:999px;
  font-family:'Courier New', monospace; font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase;
  transition:transform .2s ease, background .2s ease;
}
.hero .cta:hover{background:var(--rust-dark); transform:translateY(-2px);}

/* ---------- PAGE HERO (pages prestations) ---------- */
.page-hero{
  padding:90px 0 60px;
  background:
    linear-gradient(180deg, rgba(20,40,24,0.5), rgba(20,40,24,0.28)),
    repeating-linear-gradient(135deg, #2c4a30 0px, #2c4a30 2px, #355938 2px, #355938 60px);
  color:var(--cream);
}
.page-hero .wrap{max-width:780px;}
.page-hero .eyebrow{color:var(--gold);}
.page-hero h1{font-size:clamp(2rem,4.4vw,3rem); margin:14px 0 16px; font-style:italic;}
.page-hero p{line-height:1.7; opacity:0.9; max-width:60ch; margin:0;}
.breadcrumb{
  font-family:'Courier New', monospace; font-size:0.7rem; letter-spacing:0.08em;
  text-transform:uppercase; opacity:0.7; margin-bottom:18px;
}
.breadcrumb a:hover{color:var(--gold);}

/* ---------- SECTION HEADERS ---------- */
.section-head{margin-bottom:50px;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem); margin-top:10px;}
.section-head .rule{width:54px; height:2px; background:var(--rust); margin:18px 0;}

/* ---------- MA CUISINE ---------- */
#ma-cuisine{padding:110px 0 90px;}
.cuisine-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:64px; align-items:start;}
.cuisine-text p{line-height:1.8; font-size:1.02rem; color:#202b22; margin:0 0 20px;}
.link-more{
  font-family:'Courier New', monospace; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--rust-dark); border-bottom:1px solid var(--rust); padding-bottom:2px;
}
.bio-card{
  background:#fff; border:1px solid var(--line); border-radius:4px; padding:30px; margin-top:50px;
}
.bio-card h3{font-style:italic; font-size:1.3rem; color:var(--rust-dark); margin-bottom:10px;}
.bio-card p{margin:0; line-height:1.7; color:#202b22; font-size:0.96rem;}

.cuisine-photos{display:grid; gap:20px;}
.cuisine-photos .img-slot{
  aspect-ratio:4/3; border-radius:4px; overflow:hidden; display:block; position:relative;
}
.cuisine-photos .ph{
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  color:rgba(14,20,16,0.4); font-family:'Courier New',monospace; font-size:0.75rem;
  letter-spacing:0.08em; text-transform:uppercase; text-align:center; padding:14px;
}
.cuisine-photos img.ph{display:block; width:100%; height:100%; object-fit:cover; object-position:left center; padding:0;}
.ph.a.placeholder{background:repeating-linear-gradient(45deg, #d8e3d4, #d8e3d4 12px, #c9d9c2 12px, #c9d9c2 24px);}
.ph.b.placeholder{background:repeating-linear-gradient(45deg, #cfdccb, #cfdccb 12px, #bdd0b6 12px, #bdd0b6 24px);}

/* ---------- BANDEAU EVENEMENT ---------- */
.band{
  background:var(--olive); color:var(--cream); padding:60px 0; text-align:center;
}
.band .wrap{max-width:780px;}
.band .eyebrow{color:var(--gold);}
.band h2{font-size:clamp(1.6rem,3vw,2.1rem); margin:14px 0 16px; font-style:italic;}
.band p{line-height:1.7; opacity:0.92; margin:0;}

/* ---------- PRESTATIONS (grille accueil) ---------- */
#prestations{padding:110px 0;}
.prestations-intro{max-width:760px; line-height:1.8; color:#202b22; margin-bottom:10px;}
.prestations-note{font-size:0.85rem; color:#445244; margin-bottom:50px;}
.prestations-note strong{color:var(--rust-dark);}

.prestations-grid{
  display:grid; grid-template-columns:repeat(5, 1fr); gap:2px;
  background:var(--line); border:1px solid var(--line);
}
.prestation-card{
  background:var(--cream); padding:36px 22px; min-height:230px;
  display:flex; flex-direction:column; justify-content:space-between;
  transition:background .25s ease;
}
.prestation-card:hover{background:#fff;}
.prestation-card .num{
  font-family:'Courier New', monospace; font-size:0.75rem; color:var(--rust);
  letter-spacing:0.1em;
}
.prestation-card h3{
  font-size:1.18rem; margin:18px 0 14px; line-height:1.3; font-style:italic;
}
.prestation-card .go{
  font-family:'Courier New', monospace; font-size:0.7rem; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--rust-dark); opacity:0.7;
  display:flex; align-items:center; gap:6px;
}
.prestation-card:hover .go{opacity:1;}

/* ---------- PRESTATION PAGE DETAIL ---------- */
.detail-grid{padding:100px 0; display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:start;}
.detail-text p{line-height:1.85; font-size:1.02rem; color:#202b22; margin:0 0 20px;}
.detail-list{list-style:none; margin:30px 0 0; padding:0; display:flex; flex-direction:column; gap:14px;}
.detail-list li{
  display:flex; gap:14px; align-items:flex-start; line-height:1.6; color:#202b22; font-size:0.98rem;
}
.detail-list li::before{
  content:"—"; color:var(--rust); flex-shrink:0; font-weight:700;
}
.detail-photo-wrap .img-slot{
  aspect-ratio:3/4; border-radius:4px; overflow:hidden; display:block;
}
.detail-photo{
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center; text-align:center; padding:20px;
  color:rgba(14,20,16,0.4); font-family:'Courier New',monospace; font-size:0.75rem;
  letter-spacing:0.08em; text-transform:uppercase;
}
.detail-photo.placeholder{
  background:repeating-linear-gradient(45deg, #d8e3d4, #d8e3d4 12px, #c9d9c2 12px, #c9d9c2 24px);
}
img.detail-photo{display:block; width:100%; height:100%; object-fit:cover; object-position:left center; padding:0;}
.detail-cta{
  margin-top:36px; background:#fff; border:1px solid var(--line); border-radius:4px; padding:28px;
}
.detail-cta h3{font-style:italic; font-size:1.2rem; color:var(--rust-dark); margin-bottom:10px;}
.detail-cta p{margin:0 0 18px; line-height:1.6; color:#202b22; font-size:0.94rem;}

.other-prestations{padding:0 0 100px;}
.other-prestations .section-head{margin-bottom:30px;}
.other-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line); border:1px solid var(--line);}
.other-grid a{
  background:var(--cream); padding:26px 20px; display:flex; flex-direction:column; gap:10px;
  transition:background .2s ease;
}
.other-grid a:hover{background:#fff;}
.other-grid .num{font-family:'Courier New',monospace; font-size:0.7rem; color:var(--rust);}
.other-grid h4{font-size:1.02rem; font-style:italic; font-weight:400; margin:0;}

/* ---------- REALISATIONS ---------- */
#realisations{padding:110px 0; background:#e7ece4;}
.gallery{
  display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:160px; gap:14px;
}
.gallery .img-slot{border-radius:3px; overflow:hidden; display:block;}
.gallery .g{
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  color:rgba(14,20,16,0.36); font-family:'Courier New',monospace; font-size:0.68rem;
  text-transform:uppercase; letter-spacing:0.07em; text-align:center; padding:8px;
}
img.gallery, .gallery img.g{display:block; width:100%; height:100%; object-fit:cover; object-position:left center; padding:0;}
.gallery .img-slot:nth-child(4n+1){grid-row:span 2;}
.gallery .img-slot:nth-child(4n+4){grid-row:span 2;}
.gallery .g.placeholder:nth-child(4n+1){background:repeating-linear-gradient(60deg,#d3e0cd,#d3e0cd 10px,#c0d4b7 10px,#c0d4b7 20px);}
.gallery .g.placeholder:nth-child(4n+2){background:repeating-linear-gradient(60deg,#cddacb,#cddacb 10px,#b9cdb3 10px,#b9cdb3 20px);}
.gallery .g.placeholder:nth-child(4n+3){background:repeating-linear-gradient(60deg,#dbe5d6,#dbe5d6 10px,#c6d8bf 10px,#c6d8bf 20px);}
.gallery .g.placeholder:nth-child(4n+4){background:repeating-linear-gradient(60deg,#c8d9c2,#c8d9c2 10px,#b3cba9 10px,#b3cba9 20px);}

/* ---------- TEMOIGNAGES ---------- */
#avis{padding:110px 0;}
.avis-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px;}
.avis-card{
  background:#fff; border:1px solid var(--line); border-radius:4px; padding:32px;
  display:flex; flex-direction:column; gap:18px;
}
.avis-card .quote-mark{font-family:Georgia,serif; font-size:2.6rem; color:var(--rust); line-height:1; height:30px;}
.avis-card p{margin:0; line-height:1.7; color:#202b22; font-style:italic;}
.avis-card .who{
  font-family:'Courier New', monospace; font-size:0.74rem; letter-spacing:0.06em;
  text-transform:uppercase; color:#445244;
}
.avis-cta{text-align:center; margin-top:50px;}

/* ---------- CONTACT ---------- */
#contact{padding:110px 0; background:var(--ink); color:var(--cream);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
#contact .eyebrow{color:var(--gold);}
#contact .section-head .rule{background:var(--gold);}
.contact-grid p{line-height:1.8; opacity:0.85; margin:0 0 30px;}
.contact-links{display:flex; flex-direction:column; gap:14px;}
.contact-links a{
  display:flex; align-items:center; gap:12px; font-size:1.05rem;
  border-bottom:1px solid rgba(243,241,234,0.18); padding-bottom:14px;
  transition:color .2s ease;
}
.contact-links a:hover{color:var(--gold);}
.contact-links .ic{
  width:34px;height:34px;border-radius:50%;border:1px solid rgba(243,241,234,0.3);
  display:flex;align-items:center;justify-content:center; font-size:0.85rem; flex-shrink:0;
}
.map-box{
  aspect-ratio:4/3; border-radius:4px; overflow:hidden; position:relative;
  background:repeating-linear-gradient(135deg,#24402a,#24402a 14px,#2d4d32 14px,#2d4d32 28px);
  display:flex; align-items:center; justify-content:center;
}
.map-box span{
  font-family:'Courier New', monospace; font-size:0.78rem; letter-spacing:0.1em;
  text-transform:uppercase; color:rgba(243,241,234,0.55); border:1px solid rgba(243,241,234,0.3);
  padding:14px 22px; border-radius:999px;
}

/* ---------- CONTACT MINI (bas de page prestation) ---------- */
.contact-mini{padding:80px 0; background:var(--ink); color:var(--cream); text-align:center;}
.contact-mini .wrap{max-width:600px;}
.contact-mini .eyebrow{color:var(--gold);}
.contact-mini h2{font-size:clamp(1.5rem,3vw,2rem); margin:14px 0 16px; font-style:italic;}
.contact-mini p{line-height:1.7; opacity:0.85; margin:0 0 28px;}
.contact-mini .cta{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--rust); color:var(--cream); padding:15px 30px; border-radius:999px;
  font-family:'Courier New', monospace; font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase;
  transition:transform .2s ease, background .2s ease;
}
.contact-mini .cta:hover{background:var(--rust-dark); transform:translateY(-2px);}

/* ---------- FOOTER ---------- */
footer{background:#16271a; color:rgba(243,241,234,0.7); padding:60px 0 26px;}
.footer-top{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px;
  padding-bottom:40px; border-bottom:1px solid rgba(243,241,234,0.12);
}
.footer-brand{font-size:1.3rem; color:var(--cream);}
.footer-brand strong{color:var(--gold);}
.footer-phone{font-family:'Courier New', monospace; letter-spacing:0.05em; font-size:1.1rem; color:var(--cream); margin-top:10px;}
.footer-addr{line-height:1.7; font-size:0.92rem;}
.footer-bottom{
  padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:0.78rem; font-family:'Courier New', monospace; letter-spacing:0.03em;
}
.footer-bottom a{border-bottom:1px solid transparent;}
.footer-bottom a:hover{border-color:rgba(243,241,234,0.5);}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 980px){
  .cuisine-grid, .contact-grid, .detail-grid{grid-template-columns:1fr; gap:40px;}
  .prestations-grid{grid-template-columns:repeat(2,1fr);}
  .other-grid{grid-template-columns:repeat(2,1fr);}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .avis-grid{grid-template-columns:1fr;}
  .detail-photo{aspect-ratio:16/9;}
}

@media (max-width: 760px){
  nav.main-nav{
    position:fixed; inset:0 0 0 auto; width:78%; height:100vh;
    background:var(--cream); flex-direction:column; align-items:flex-start;
    padding:90px 30px 30px; gap:0;
    transform:translateX(100%); transition:transform .3s ease;
    box-shadow:-10px 0 30px rgba(0,0,0,0.15);
  }
  nav.main-nav.open{transform:translateX(0);}
  nav.main-nav > ul{flex-direction:column; gap:0; width:100%;}
  nav.main-nav > ul > li{width:100%; border-bottom:1px solid var(--line);}
  nav.main-nav > ul > li > a{display:block; padding:16px 0;}
  .submenu{position:static; opacity:1; visibility:visible; transform:none; border:none; box-shadow:none; display:none; padding:0 0 10px;}
  nav.main-nav > ul > li.show-sub .submenu{display:block;}
  .header-contact{display:none;}
  .nav-toggle{display:block;}
  .prestations-grid{grid-template-columns:1fr;}
  .other-grid{grid-template-columns:1fr;}
}

.hero-logo-under-cta {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

.hero-logo-under-cta img {
  width: 440px;
  height: auto;
}

@media (max-width: 760px) {
  .hero-logo-under-cta img {
    width: 260px;
  }
}