:root{
  --noir:#0a0a0a;
  --noir-2:#111111;
  --noir-3:#1a1714;
  --or:#c9a14a;
  --or-clair:#e7c878;
  --or-fonce:#8c6d2f;
  --texte:#e9e4da;
  --texte-doux:#9c958a;
  --bordure:rgba(201,161,74,0.22);
  --ombre:0 18px 50px rgba(0,0,0,0.55);
  --serif:"Cormorant Garamond","Times New Roman",serif;
  --sans:"Poppins","Segoe UI",system-ui,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  background:var(--noir);
  color:var(--texte);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
ul{list-style:none}

h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:.5px}

.or{color:var(--or)}

.conteneur{width:min(1200px,92%);margin-inline:auto}

.section{padding:110px 0}
.section-sombre{background:var(--noir-2)}

.titre-section{
  font-size:clamp(2rem,5vw,3.4rem);
  text-align:center;
  margin-bottom:14px;
}
.surtitre{
  display:block;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:6px;
  font-size:.78rem;
  color:var(--or);
  margin-bottom:18px;
  font-family:var(--sans);
}
.sous-titre-section{
  text-align:center;
  color:var(--texte-doux);
  max-width:620px;
  margin:0 auto 60px;
  font-size:1.02rem;
}

.trait{
  width:70px;height:2px;
  background:linear-gradient(90deg,transparent,var(--or),transparent);
  margin:0 auto 40px;
}

.btn{
  display:inline-block;
  padding:15px 38px;
  font-family:var(--sans);
  font-size:.82rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:2.5px;
  border:1px solid var(--or);
  color:var(--or);
  background:transparent;
  cursor:pointer;
  transition:all .4s ease;
  border-radius:2px;
}
.btn:hover{background:var(--or);color:var(--noir);box-shadow:0 10px 30px rgba(201,161,74,0.3)}
.btn-plein{background:var(--or);color:var(--noir)}
.btn-plein:hover{background:var(--or-clair);border-color:var(--or-clair)}

.entete{
  position:fixed;
  inset:0 0 auto 0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 5%;
  transition:background .4s ease,padding .4s ease,box-shadow .4s ease;
}
.entete.reduite{
  background:rgba(8,8,8,0.92);
  backdrop-filter:blur(12px);
  padding:14px 5%;
  box-shadow:0 8px 30px rgba(0,0,0,0.5);
  border-bottom:1px solid var(--bordure);
}
.logo{
  font-family:var(--serif);
  font-size:1.7rem;
  font-weight:600;
  letter-spacing:3px;
  color:var(--texte);
}
.logo span{color:var(--or)}

.nav-liens{display:flex;gap:34px;align-items:center}
.nav-liens a{
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:var(--texte-doux);
  position:relative;
  padding:6px 0;
  transition:color .3s;
}
.nav-liens a::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:0;height:1px;
  background:var(--or);
  transition:width .3s ease;
}
.nav-liens a:hover,.nav-liens a.actif{color:var(--or)}
.nav-liens a:hover::after,.nav-liens a.actif::after{width:100%}

.burger{
  display:none;
  flex-direction:column;
  gap:6px;
  background:none;border:none;cursor:pointer;
  z-index:1100;
}
.burger span{
  width:28px;height:2px;background:var(--or);
  transition:all .35s ease;
}
.burger.ouvert span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.ouvert span:nth-child(2){opacity:0}
.burger.ouvert span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.hero{
  position:relative;
  height:100vh;
  min-height:620px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
}
.hero-fond{
  position:absolute;inset:0;
  background:url("../photo/hero.jpg") center/cover no-repeat;
  transform:scale(1.05);
  animation:zoomLent 18s ease-in-out infinite alternate;
}
@keyframes zoomLent{to{transform:scale(1.18)}}
.hero::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0.55),rgba(0,0,0,0.4) 40%,rgba(10,10,10,0.95));
  z-index:1;
}
.hero-contenu{position:relative;z-index:2;padding:0 20px;max-width:900px}
.hero-contenu .surtitre{animation:apparait 1s ease both}
.hero h1{
  font-size:clamp(2.8rem,8vw,6rem);
  margin-bottom:22px;
  animation:apparait 1s .15s ease both;
}
.hero p{
  color:var(--texte-doux);
  font-size:1.15rem;
  max-width:560px;
  margin:0 auto 40px;
  animation:apparait 1s .3s ease both;
}
.hero-boutons{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;animation:apparait 1s .45s ease both}

@keyframes apparait{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

.defile{
  position:absolute;
  bottom:30px;left:50%;
  transform:translateX(-50%);
  z-index:2;
  color:var(--or);
  font-size:.7rem;
  letter-spacing:3px;
  text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.defile::after{
  content:"";
  width:1px;height:40px;
  background:linear-gradient(var(--or),transparent);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}

.intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.intro-img{position:relative}
.intro-img img{
  border-radius:4px;
  box-shadow:var(--ombre);
  border:1px solid var(--bordure);
}
.intro-img::before{
  content:"";
  position:absolute;
  inset:18px -18px -18px 18px;
  border:1px solid var(--or);
  z-index:-1;
  border-radius:4px;
}
.intro h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:24px}
.intro p{color:var(--texte-doux);margin-bottom:18px}

.stats{display:flex;gap:50px;margin-top:36px;flex-wrap:wrap}
.stat .num{font-family:var(--serif);font-size:2.6rem;color:var(--or);line-height:1}
.stat .lib{font-size:.8rem;text-transform:uppercase;letter-spacing:2px;color:var(--texte-doux);margin-top:6px}

.cartes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:20px}
.carte{
  position:relative;
  height:440px;
  overflow:hidden;
  border-radius:4px;
  border:1px solid var(--bordure);
}
.carte img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s ease;
}
.carte:hover img{transform:scale(1.1)}
.carte::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,0.85));
  transition:background .4s;
}
.carte-texte{
  position:absolute;
  bottom:0;left:0;right:0;
  z-index:2;
  padding:32px;
  transition:transform .4s ease;
}
.carte-texte h3{font-size:1.7rem;margin-bottom:8px}
.carte-texte p{color:var(--texte-doux);font-size:.9rem;margin-bottom:16px}
.carte-texte .lien-or{
  color:var(--or);
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:.78rem;
  opacity:0;
  transition:opacity .4s ease;
}
.carte:hover .carte-texte{transform:translateY(-6px)}
.carte:hover .carte-texte .lien-or{opacity:1}

.galerie{
  column-count:3;
  column-gap:18px;
  margin-top:20px;
}
.galerie-item{
  position:relative;
  margin-bottom:18px;
  break-inside:avoid;
  overflow:hidden;
  border-radius:4px;
  cursor:pointer;
  border:1px solid var(--bordure);
}
.galerie-item img{
  width:100%;
  transition:transform .7s ease,filter .7s ease;
  filter:grayscale(15%) brightness(.92);
}
.galerie-item::after{
  content:"";
  position:absolute;inset:0;
  background:rgba(201,161,74,0);
  transition:background .4s;
}
.galerie-item::before{
  content:"\002b";
  position:absolute;
  z-index:3;
  top:50%;left:50%;
  transform:translate(-50%,-50%) scale(.6);
  width:50px;height:50px;
  border:1px solid var(--or);
  border-radius:50%;
  color:var(--or);
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;
  font-weight:300;
  opacity:0;
  transition:all .4s ease;
}
.galerie-item:hover img{transform:scale(1.08);filter:grayscale(0) brightness(1)}
.galerie-item:hover::after{background:rgba(10,10,10,0.35)}
.galerie-item:hover::before{opacity:1;transform:translate(-50%,-50%) scale(1)}

.lightbox{
  position:fixed;inset:0;z-index:2000;
  background:rgba(5,5,5,0.96);
  display:none;
  align-items:center;
  justify-content:center;
  padding:30px;
}
.lightbox.actif{display:flex;animation:apparait .4s ease}
.lightbox img{
  max-width:90%;max-height:85vh;
  border:1px solid var(--bordure);
  box-shadow:var(--ombre);
}
.lb-fermer,.lb-prec,.lb-suiv{
  position:absolute;
  color:var(--or);
  background:none;border:1px solid var(--bordure);
  width:54px;height:54px;
  font-size:1.6rem;
  cursor:pointer;
  border-radius:50%;
  transition:all .3s;
  display:flex;align-items:center;justify-content:center;
}
.lb-fermer:hover,.lb-prec:hover,.lb-suiv:hover{background:var(--or);color:var(--noir)}
.lb-fermer{top:30px;right:30px}
.lb-prec{left:30px;top:50%;transform:translateY(-50%)}
.lb-suiv{right:30px;top:50%;transform:translateY(-50%)}

.banniere-page{
  height:60vh;
  min-height:380px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
}
.banniere-page::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0.6),rgba(10,10,10,0.95));
  z-index:1;
}
.banniere-fond{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.05)}
.banniere-contenu{position:relative;z-index:2;padding-top:60px}
.banniere-contenu h1{font-size:clamp(2.6rem,7vw,5rem);margin-bottom:14px}
.banniere-contenu p{color:var(--texte-doux);letter-spacing:1px}
.fil{margin-top:16px;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;color:var(--or)}

.presentation-grille{display:grid;grid-template-columns:0.9fr 1.1fr;gap:70px;align-items:center}
.presentation-grille img{border-radius:4px;border:1px solid var(--bordure);box-shadow:var(--ombre)}
.presentation-grille h2{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:22px}
.presentation-grille p{color:var(--texte-doux);margin-bottom:18px}
.signature{
  font-family:var(--serif);
  font-style:italic;
  font-size:1.8rem;
  color:var(--or);
  margin-top:20px;
}

.parcours{margin-top:80px}
.timeline{max-width:760px;margin:50px auto 0;position:relative}
.timeline::before{
  content:"";position:absolute;left:18px;top:0;bottom:0;width:1px;
  background:linear-gradient(var(--or),transparent);
}
.tl-item{position:relative;padding:0 0 44px 60px}
.tl-item::before{
  content:"";position:absolute;left:11px;top:4px;
  width:15px;height:15px;border-radius:50%;
  background:var(--noir);border:2px solid var(--or);
}
.tl-item .annee{color:var(--or);font-family:var(--serif);font-size:1.4rem}
.tl-item h4{font-size:1.15rem;margin:4px 0 8px;font-family:var(--sans);font-weight:500;letter-spacing:1px}
.tl-item p{color:var(--texte-doux);font-size:.95rem}

.tarifs-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:20px}
.forfait{
  background:var(--noir-2);
  border:1px solid var(--bordure);
  border-radius:6px;
  padding:48px 34px;
  text-align:center;
  position:relative;
  transition:transform .4s ease,border-color .4s ease,box-shadow .4s;
}
.forfait:hover{transform:translateY(-12px);border-color:var(--or);box-shadow:var(--ombre)}
.forfait.vedette{border-color:var(--or);background:linear-gradient(180deg,var(--noir-3),var(--noir-2))}
.forfait.vedette::before{
  content:"Populaire";
  position:absolute;top:18px;right:18px;
  background:var(--or);color:var(--noir);
  font-size:.65rem;letter-spacing:2px;text-transform:uppercase;
  padding:5px 12px;border-radius:2px;
}
.forfait h3{font-size:1.6rem;margin-bottom:8px}
.forfait .desc{color:var(--texte-doux);font-size:.88rem;min-height:42px;margin-bottom:18px}
.forfait .prix{font-family:var(--serif);font-size:3.2rem;color:var(--or);line-height:1}
.forfait .prix small{font-size:1rem;color:var(--texte-doux)}
.forfait ul{margin:28px 0;text-align:left}
.forfait ul li{
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,0.05);
  color:var(--texte-doux);
  font-size:.92rem;
  position:relative;
  padding-left:26px;
}
.forfait ul li::before{content:"\2713";position:absolute;left:0;color:var(--or)}

.specialites{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:20px}
.spec{
  text-align:center;padding:40px 22px;
  border:1px solid var(--bordure);border-radius:6px;background:var(--noir-2);
  transition:transform .4s ease,border-color .4s ease,box-shadow .4s ease;
}
.spec:hover{transform:translateY(-8px);border-color:var(--or);box-shadow:var(--ombre)}
.spec-ic{
  width:64px;height:64px;margin:0 auto 20px;
  border:1px solid var(--or);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--or);font-size:1.6rem;
}
.spec h3{font-size:1.3rem;margin-bottom:8px}
.spec p{color:var(--texte-doux);font-size:.9rem}

.cat-bloc{text-align:center;margin:80px 0 34px}
.cat-bloc.premier{margin-top:10px}
.cat-titre{font-size:clamp(1.4rem,3vw,2rem);color:var(--texte);font-weight:500;font-family:var(--serif)}

.tarifs-deux{max-width:760px;margin-inline:auto;grid-template-columns:repeat(2,1fr)}

.options-bloc{
  max-width:820px;margin:34px auto 0;
  background:var(--noir-2);border:1px solid var(--bordure);
  border-radius:6px;padding:26px 34px;text-align:center;
}
.options-bloc h4{color:var(--or);text-transform:uppercase;letter-spacing:2px;font-size:.82rem;font-family:var(--sans);margin-bottom:16px}
.options-liste{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 34px}
.options-liste li{color:var(--texte-doux);font-size:.92rem}
.options-liste b{color:var(--or);font-weight:500}

.partenariat{
  margin-top:90px;
  background:linear-gradient(120deg,var(--noir-3),var(--noir-2));
  border:1px solid var(--or);
  border-radius:8px;
  padding:60px;
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:50px;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.partenariat::before{
  content:"";position:absolute;top:-60px;right:-60px;
  width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,161,74,0.25),transparent 70%);
}
.partenariat .badge{
  display:inline-block;
  border:1px solid var(--or);
  color:var(--or);
  padding:6px 16px;
  font-size:.72rem;letter-spacing:3px;text-transform:uppercase;
  border-radius:30px;margin-bottom:20px;
}
.partenariat h2{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:18px}
.partenariat h2 span{color:var(--or)}
.partenariat p{color:var(--texte-doux);margin-bottom:16px}
.partenariat .avantages li{
  padding-left:26px;position:relative;margin-bottom:10px;color:var(--texte);
}
.partenariat .avantages li::before{content:"\2726";position:absolute;left:0;color:var(--or)}
.partenariat-visuel{
  position:relative;
  border-radius:6px;
  overflow:hidden;
  border:1px solid var(--or);
  min-height:300px;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  background:linear-gradient(160deg,#1c1813,#0c0a08);
  padding:40px;
}
.partenariat-visuel .pizza-logo{font-family:var(--serif);font-size:2.4rem;color:var(--or);line-height:1.1}
.partenariat-visuel .pizza-sous{color:var(--texte-doux);letter-spacing:4px;text-transform:uppercase;font-size:.75rem;margin-top:12px}
.partenariat-visuel .pizza-mention{margin-top:24px;color:var(--texte);font-size:.9rem}

.reservation-grille{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.coord-bloc{margin-bottom:34px}
.coord-bloc h3{font-size:1.4rem;margin-bottom:18px}
.coord-item{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}
.coord-item .ic{
  width:44px;height:44px;flex:none;
  border:1px solid var(--bordure);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--or);font-size:1.1rem;
}
.coord-item .txt b{display:block;font-weight:500;letter-spacing:1px}
.coord-item .txt span{color:var(--texte-doux);font-size:.92rem}

.formulaire{
  background:var(--noir-2);
  border:1px solid var(--bordure);
  border-radius:8px;
  padding:42px;
}
.champ{margin-bottom:22px}
.champ label{
  display:block;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:var(--or);
  margin-bottom:8px;
}
.champ input,.champ select,.champ textarea{
  width:100%;
  background:var(--noir);
  border:1px solid var(--bordure);
  color:var(--texte);
  padding:14px 16px;
  font-family:var(--sans);
  font-size:.95rem;
  border-radius:3px;
  transition:border-color .3s,box-shadow .3s;
}
.champ input:focus,.champ select:focus,.champ textarea:focus{
  outline:none;
  border-color:var(--or);
  box-shadow:0 0 0 3px rgba(201,161,74,0.12);
}
.champ textarea{resize:vertical;min-height:120px}
.champ-double{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.message-retour{
  margin-top:18px;
  padding:14px;
  border-radius:3px;
  text-align:center;
  font-size:.9rem;
  display:none;
}
.message-retour.ok{display:block;background:rgba(201,161,74,0.12);border:1px solid var(--or);color:var(--or-clair)}
.message-retour.erreur{display:block;background:rgba(180,60,50,0.12);border:1px solid #b43c32;color:#e8a59e}

.duree-info{
  margin-top:14px;
  font-size:.88rem;
  color:var(--texte-doux);
  min-height:20px;
}
.duree-info b{color:var(--or);font-weight:500}

input[type=time]{color-scheme:dark}

.formulaire button[disabled]{opacity:.6;cursor:wait}

.creneaux{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.creneau{
  border:1px solid var(--bordure);
  color:var(--texte-doux);
  padding:9px 16px;
  border-radius:30px;
  font-size:.82rem;
  cursor:pointer;
  transition:all .3s;
}
.creneau:hover{border-color:var(--or);color:var(--or)}
.creneau.choisi{background:var(--or);color:var(--noir);border-color:var(--or)}

.bande-cta{
  text-align:center;
  background:linear-gradient(rgba(10,10,10,0.85),rgba(10,10,10,0.85)),url("../photo/exterieur-03.jpg") center/cover fixed;
  padding:120px 20px;
}
.bande-cta h2{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:20px}
.bande-cta p{color:var(--texte-doux);max-width:560px;margin:0 auto 36px}

.pied{
  background:var(--noir-2);
  border-top:1px solid var(--bordure);
  padding:70px 0 30px;
}
.pied-grille{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px;margin-bottom:50px}
.pied .logo{display:inline-block;margin-bottom:18px}
.pied p{color:var(--texte-doux);font-size:.92rem;max-width:320px}
.pied h4{font-size:.85rem;text-transform:uppercase;letter-spacing:2px;color:var(--or);margin-bottom:20px;font-family:var(--sans)}
.pied ul li{margin-bottom:12px}
.pied ul li a{color:var(--texte-doux);font-size:.92rem;transition:color .3s}
.pied ul li a:hover{color:var(--or)}
.reseaux{display:flex;gap:14px;margin-top:6px}
.reseaux a{
  width:42px;height:42px;border:1px solid var(--bordure);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--or);
  font-size:.75rem;letter-spacing:1px;transition:all .3s;
}
.reseaux a:hover{background:var(--or);color:var(--noir)}
.pied-bas{
  text-align:center;
  padding-top:30px;
  border-top:1px solid rgba(255,255,255,0.05);
  color:var(--texte-doux);
  font-size:.82rem;
}
.pied-bas a{color:var(--or)}

.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

@media(max-width:980px){
  .intro,.presentation-grille,.reservation-grille,.partenariat{grid-template-columns:1fr;gap:40px}
  .cartes,.tarifs-grille,.tarifs-deux{grid-template-columns:1fr}
  .specialites{grid-template-columns:repeat(2,1fr)}
  .galerie{column-count:2}
  .pied-grille{grid-template-columns:1fr;gap:36px}
  .intro-img::before{display:none}
  .partenariat{padding:40px}
}

@media(max-width:760px){
  .section{padding:80px 0}
  .nav-liens{
    position:fixed;
    inset:0 0 0 auto;
    width:78%;max-width:320px;
    background:rgba(10,10,10,0.98);
    backdrop-filter:blur(10px);
    flex-direction:column;
    justify-content:center;
    gap:30px;
    transform:translateX(100%);
    transition:transform .45s cubic-bezier(.7,0,.3,1);
    border-left:1px solid var(--bordure);
  }
  .nav-liens.ouvert{transform:translateX(0)}
  .nav-liens a{font-size:1rem}
  .burger{display:flex}
  .stats{gap:30px}
  .champ-double{grid-template-columns:1fr}
  .bande-cta{background-attachment:scroll}
  .lb-prec{left:14px}.lb-suiv{right:14px}
}

@media(max-width:480px){
  .galerie{column-count:1}
  .specialites{grid-template-columns:1fr}
  .formulaire,.partenariat{padding:26px}
  .hero-boutons{flex-direction:column;width:100%}
  .hero-boutons .btn{width:100%}
}
