/* ===== GM Photos — feuille de style ===== */
@font-face{font-family:"Cormorant";src:url("../fonts/cormorant-garamond-latin-wght-normal.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant";src:url("../fonts/cormorant-garamond-latin-wght-italic.woff2") format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --noir:#0b0b0c; --noir-2:#121214; --noir-3:#1a1a1d; --ligne:#2a2a2e;
  --texte:#ece9e2; --texte-doux:#a9a59c; --or:#c9a24b; --or-clair:#e2c07a;
  --titre:"Cormorant",Georgia,"Times New Roman",serif;
  --corps:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --largeur:1280px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--noir);color:var(--texte);font-family:var(--corps);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
main{overflow-x:clip}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--titre);font-weight:500;line-height:1.1;letter-spacing:.005em}
h1{font-size:clamp(2.6rem,6.5vw,5.2rem)}
h2{font-size:clamp(2rem,4.2vw,3.2rem)}
h3{font-size:1.7rem}
strong{color:#fff;font-weight:600}
.surtitre{font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;color:var(--or);margin-bottom:1rem;font-weight:500}

/* Boutons */
.btn{display:inline-block;padding:.95rem 1.9rem;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:all .3s ease;font-family:var(--corps);text-align:center}
.btn-or{background:var(--or);color:#0b0b0c;border-color:var(--or)}
.btn-or:hover{background:var(--or-clair);border-color:var(--or-clair);transform:translateY(-2px);box-shadow:0 10px 30px rgba(201,162,75,.25)}
.btn-contour{border-color:rgba(236,233,226,.45);color:var(--texte)}
.btn-contour:hover{border-color:var(--or);color:var(--or)}
.btn-petit{padding:.6rem 1.2rem;font-size:.72rem}
.btn-large{width:100%;padding:1.1rem}

/* En-tête */
.entete{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.1rem clamp(16px,4vw,48px);transition:background .4s,padding .4s,box-shadow .4s}
.entete.compact,body:not(.accueil) .entete{background:rgba(11,11,12,.92);backdrop-filter:blur(10px);padding-top:.6rem;padding-bottom:.6rem;box-shadow:0 1px 0 var(--ligne)}
.logo img{height:58px;width:auto;transition:height .4s}
.entete.compact .logo img,body:not(.accueil) .logo img{height:46px}
.menu{display:flex;align-items:center;gap:2.2rem;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500}
.menu a:not(.btn){position:relative;padding:.4rem 0}
.menu a:not(.btn):hover{color:var(--or)}
.menu-galeries{position:relative}
.sous-menu{position:absolute;top:100%;left:-1.2rem;min-width:210px;background:rgba(18,18,20,.97);border:1px solid var(--ligne);padding:.6rem 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:all .25s}
.menu-galeries:hover .sous-menu,.menu-galeries:focus-within .sous-menu{opacity:1;visibility:visible;transform:none}
.sous-menu a{display:block;padding:.55rem 1.2rem !important}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative;z-index:60}
.burger span{display:block;width:26px;height:2px;background:var(--texte);margin:6px auto;transition:all .3s}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Hero */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;display:flex;align-items:flex-end;overflow:hidden}
.hero-img{position:absolute;inset:0;background-size:cover;background-position:center 30%;opacity:0;transform:scale(1.08);transition:opacity 1.8s ease,transform 8s ease-out}
.hero-img.actif{opacity:1;transform:scale(1)}
.hero-voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,.55) 0%,rgba(11,11,12,.05) 30%,rgba(11,11,12,.35) 60%,rgba(11,11,12,.96) 100%)}
.hero-texte{position:relative;z-index:2;width:100%;max-width:var(--largeur);margin:0 auto;padding:0 clamp(16px,4vw,48px) clamp(90px,13vh,150px)}
.hero-texte h1{max-width:15ch;text-shadow:0 2px 30px rgba(0,0,0,.5)}
.hero .surtitre{text-shadow:0 1px 12px rgba(0,0,0,.9);color:var(--or-clair)}
.hero-sous{max-width:52ch;margin:1.4rem 0 2.2rem;font-size:1.08rem;color:#d9d5cc}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}
.hero-fleche{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:2;color:var(--or);font-size:1.4rem;animation:rebond 2.2s infinite}
@keyframes rebond{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

/* Sections */
.section{padding:clamp(70px,10vw,130px) clamp(16px,4vw,48px)}
.section-sombre{background:var(--noir-2)}
.section-tete{text-align:center;max-width:760px;margin:0 auto clamp(40px,6vw,70px)}
.section-intro{color:var(--texte-doux);margin-top:1.2rem}

/* Cartes galeries */
.cartes{max-width:var(--largeur);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.carte{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--noir-3);display:block}
.carte:nth-child(1),.carte:nth-child(4){grid-column:span 2;aspect-ratio:auto;min-height:100%}
.carte img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .6s;filter:brightness(.82)}
.carte:hover img{transform:scale(1.07);filter:brightness(1)}
.carte::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.85) 100%);pointer-events:none}
.carte-texte{position:absolute;left:0;right:0;bottom:0;padding:1.6rem;z-index:2}
.carte-texte h3{font-size:2rem}
.carte-texte p{color:#d0ccc2;font-size:.9rem}
.carte-lien{display:inline-block;margin-top:.7rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--or);opacity:0;transform:translateY(8px);transition:all .4s}
.carte:hover .carte-lien{opacity:1;transform:none}
.carte-basket{grid-column:1/-1;aspect-ratio:auto;min-height:230px;background:radial-gradient(circle at 70% 20%,#3a2a12 0%,#17130c 55%,#0e0d0b 100%);border:1px solid #3a2f1a}
.carte-basket::before{content:"";position:absolute;right:-4%;top:-60%;width:min(46%,420px);aspect-ratio:1;border-radius:50%;border:2px solid rgba(201,162,75,.35);box-shadow:inset 0 0 0 40px rgba(201,162,75,.04);background:
  linear-gradient(90deg,transparent 49.4%,rgba(201,162,75,.35) 49.4% 50.6%,transparent 50.6%),
  linear-gradient(0deg,transparent 49.4%,rgba(201,162,75,.35) 49.4% 50.6%,transparent 50.6%);transition:transform 1.2s}
.carte-basket:hover::before{transform:rotate(25deg) scale(1.05)}
.carte-basket .carte-lien{opacity:1;transform:none}

/* À propos */
.apropos{max-width:var(--largeur);margin:0 auto;display:grid;grid-template-columns:5fr 6fr;gap:clamp(30px,6vw,90px);align-items:center}
.apropos-img{position:relative}
.apropos-img img{width:100%;aspect-ratio:4/5;object-fit:cover}
.apropos-img::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--or);z-index:-1;opacity:.6}
.apropos-img{z-index:1}
.apropos-texte p{color:#cfcbc2;margin-bottom:1.1rem}
.apropos-texte h2{margin-bottom:1.4rem}
.atouts{list-style:none;margin:1.8rem 0 2.2rem;border-top:1px solid var(--ligne)}
.atouts li{display:flex;gap:1.2rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--ligne);color:#dcd8cf}
.atouts span{font-family:var(--titre);font-size:1.5rem;color:var(--or);min-width:2ch}

/* Tarifs */
.tarifs{max-width:1140px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.tarif{border:1px solid var(--ligne);background:var(--noir-2);padding:2.4rem 2rem;display:flex;flex-direction:column;transition:border-color .3s,transform .3s}
.tarif:hover{border-color:#4a4030;transform:translateY(-4px)}
.tarif-vedette{border-color:var(--or);background:linear-gradient(180deg,#1b1710,#121214)}
.tarif-pour{color:var(--texte-doux);font-size:.85rem;margin:.4rem 0 1.4rem}
.tarif-prix{font-family:var(--titre);font-size:2.1rem;color:var(--or);padding-bottom:1.3rem;margin-bottom:1.3rem;border-bottom:1px solid var(--ligne)}
.tarif ul{list-style:none;margin-bottom:2rem;flex:1}
.tarif li{padding:.45rem 0 .45rem 1.6rem;position:relative;color:#d5d1c8;font-size:.93rem}
.tarif li::before{content:"";position:absolute;left:0;top:1.05em;width:9px;height:1px;background:var(--or)}

/* Contact */
.section-contact{background:linear-gradient(180deg,var(--noir-2),var(--noir))}
.contact{max-width:1140px;margin:0 auto;display:grid;grid-template-columns:5fr 6fr;gap:clamp(30px,6vw,80px);align-items:start}
.contact-texte h2{margin-bottom:1.4rem}
.contact-texte p{color:#cfcbc2}
.contact-direct{display:flex;flex-direction:column;gap:.7rem;margin-top:2rem;font-size:1.1rem}
.contact-direct a{color:var(--texte)}
.contact-direct a:hover{color:var(--or)}
.formulaire{background:var(--noir-3);border:1px solid var(--ligne);padding:clamp(1.4rem,3vw,2.6rem);display:flex;flex-direction:column;gap:1.1rem}
.formulaire label{display:flex;flex-direction:column;gap:.45rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux);font-weight:500}
.formulaire input,.formulaire select,.formulaire textarea{background:var(--noir);border:1px solid var(--ligne);color:var(--texte);padding:.9rem 1rem;font:400 1rem var(--corps);border-radius:2px;width:100%;transition:border-color .25s}
.formulaire textarea{resize:vertical;min-height:140px}
.formulaire input:focus,.formulaire select:focus,.formulaire textarea:focus{outline:none;border-color:var(--or)}
.champs-2{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.pot{position:absolute;left:-9999px;height:0;overflow:hidden}
.form-note{font-size:.78rem;color:var(--texte-doux);text-align:center}
.message{padding:1rem 1.2rem;border-radius:2px;font-size:.95rem}
.message-ok{background:rgba(201,162,75,.12);border:1px solid var(--or);color:var(--or-clair)}
.message-erreur{background:rgba(200,60,50,.12);border:1px solid #a8453c;color:#f0b4ad}

/* Page galerie */
.galerie-tete{padding:clamp(130px,16vw,190px) clamp(16px,4vw,48px) clamp(30px,5vw,60px);text-align:center;max-width:860px;margin:0 auto}
.galerie-tete .surtitre a:hover{color:var(--or-clair)}
.galerie-accroche{font-family:var(--titre);font-style:italic;font-size:1.6rem;color:var(--or);margin:.6rem 0 1.4rem}
.galerie-texte{color:#cfcbc2;margin-bottom:1.5rem}
.mosaique{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px;max-width:1800px;margin:0 auto}
.mosaique::after{content:"";flex-grow:1000000000}
.photo{--h:340px;flex-grow:calc(var(--ratio)*100);flex-basis:calc(var(--ratio)*var(--h));height:var(--h);overflow:hidden;background:var(--noir-3);cursor:zoom-in;position:relative}
.photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .5s}
.photo:hover img{transform:scale(1.04);filter:brightness(1.08)}
.vide{padding:4rem;text-align:center;width:100%;color:var(--texte-doux)}
.appel{text-align:center;padding:clamp(70px,10vw,120px) 16px}
.appel p{color:var(--texte-doux);margin:1rem 0 2rem}
.appel .hero-actions{justify-content:center}
.texte-long{max-width:760px;margin:0 auto;padding:0 clamp(16px,4vw,48px) 100px}
.texte-long h2{font-size:1.7rem;margin:2.2rem 0 .7rem;color:var(--or-clair)}
.texte-long p{color:#cfcbc2}

/* Visionneuse */
.visionneuse{position:fixed;inset:0;z-index:100;background:rgba(5,5,6,.97);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.visionneuse[hidden]{display:none}
.visionneuse.ouverte{opacity:1}
.visionneuse img{max-width:92vw;max-height:90vh;max-height:90svh;object-fit:contain;box-shadow:0 20px 80px rgba(0,0,0,.6);transition:opacity .25s;user-select:none;-webkit-user-drag:none}
.visionneuse button{position:absolute;background:none;border:0;color:var(--texte);cursor:pointer;font-family:var(--titre);opacity:.7;transition:opacity .2s,color .2s;z-index:2}
.visionneuse button:hover{opacity:1;color:var(--or)}
.v-fermer{top:14px;right:22px;font-size:3rem;line-height:1}
.v-prec,.v-suiv{top:50%;transform:translateY(-50%);font-size:4.5rem;padding:1rem 1.4rem;line-height:1}
.v-prec{left:0}.v-suiv{right:0}
.v-compteur{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font-size:.75rem;letter-spacing:.2em;color:var(--texte-doux)}

/* Pied */
.pied{border-top:1px solid var(--ligne);background:#08080a;padding:60px clamp(16px,4vw,48px) 30px}
.pied-grille{max-width:var(--largeur);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.pied h4{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or);margin-bottom:1rem;font-weight:600}
.pied-grille img{height:50px;width:auto}
.pied-grille a{display:block;color:var(--texte-doux);padding:.2rem 0;font-size:.92rem}
.pied-grille a:hover{color:var(--or)}
.pied-grille p{color:var(--texte-doux);margin-top:1rem;font-size:.92rem}
.pied-legal{max-width:var(--largeur);margin:40px auto 0;padding-top:24px;border-top:1px solid var(--ligne);font-size:.78rem;color:#77736b;text-align:center}
.pied-legal a{text-decoration:underline}

/* Apparition au défilement */
.apparait{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.apparait.visible{opacity:1;transform:none}
.sans-js .apparait{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.apparait{opacity:1;transform:none;transition:none}.hero-img{transition:opacity 1s}html{scroll-behavior:auto}}

/* Tablette & mobile */
@media (max-width:1000px){
  .cartes{grid-template-columns:repeat(2,1fr)}
  .carte:nth-child(1),.carte:nth-child(4){grid-column:span 1;aspect-ratio:4/5}
  .tarifs{grid-template-columns:1fr;max-width:520px}
  .apropos,.contact{grid-template-columns:1fr}
  .apropos-img{max-width:480px;margin:0 auto 20px}
  .pied-grille{grid-template-columns:1fr 1fr}
  .pied-grille>div:first-child{grid-column:span 2}
}
@media (max-width:820px){
  .burger{display:block}
  .menu{position:fixed;inset:0;background:rgba(11,11,12,.98);flex-direction:column;justify-content:center;gap:1.6rem;font-size:1rem;opacity:0;visibility:hidden;transition:all .35s}
  .menu.ouvert{opacity:1;visibility:visible}
  .menu-galeries{text-align:center}
  .sous-menu{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;display:grid;grid-template-columns:1fr 1fr;gap:0 1.4rem;font-size:.8rem;color:var(--texte-doux);min-width:0}
  .photo{--h:230px}
  .v-prec,.v-suiv{font-size:3rem;padding:.6rem}
}
@media (max-width:560px){
  .cartes{grid-template-columns:1fr;gap:10px}
  .carte,.carte:nth-child(1),.carte:nth-child(4){aspect-ratio:5/4}.carte-basket{aspect-ratio:auto}
  .carte-lien{opacity:1;transform:none}
  .champs-2{grid-template-columns:1fr}
  .photo{--h:auto;flex-basis:100%;height:auto}
  .photo img{height:auto}
  .hero-actions .btn{flex:1 1 100%}
  .pied-grille{grid-template-columns:1fr}
  .pied-grille>div:first-child{grid-column:auto}
}
