*{margin:0;padding:0;box-sizing:border-box}
:root{--noir:#0d0d0d;--charbon:#1a1a1a;--ardoise:#2c2c2c;--cendre:#6b6b6b;--ivoire:#f5f0e8;--or:#c9a84c;--or-pale:#e8d5a3}
html{scroll-behavior:smooth}
body{background:var(--noir);color:var(--ivoire);font-family:'DM Sans',sans-serif;font-weight:300;line-height:1.7;overflow-x:hidden}
::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--noir)}::-webkit-scrollbar-thumb{background:var(--or);border-radius:2px}
.fd{font-family:'Cormorant Garamond',serif}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}
.afu{animation:fadeUp .8s ease forwards}.afi{animation:fadeIn 1s ease forwards}
@keyframes pulse{0%,100%{opacity:.6}50%{opacity:.2}}
.scroll-pulse{animation:pulse 2s ease infinite}
.gold-div{width:48px;height:1px;background:var(--or);margin:.8rem auto 0}
.container{max-width:1200px;margin:0 auto;padding:0 2rem}
@media(min-width:1024px){.container{padding:0 3rem}}
.tag{color:var(--or);font-size:.72rem;letter-spacing:.35em;text-transform:uppercase;margin-bottom:1rem;display:block}
.h2xl{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,4rem);font-weight:300;color:var(--ivoire);line-height:1.1}
.h2s{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:300;color:var(--ivoire);line-height:1.15}
.body-sm{color:rgba(245,240,232,.55);font-size:.9rem;line-height:1.85}
/* Buttons */
.btn-gold{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;background:var(--or);color:var(--noir);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;padding:.9rem 2rem;border:none;cursor:pointer;transition:all .3s;font-family:'DM Sans',sans-serif}
.btn-gold:hover{background:var(--or-pale)}
.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;border:1px solid rgba(245,240,232,.3);color:var(--ivoire);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;padding:.9rem 2rem;background:transparent;cursor:pointer;transition:all .3s;font-family:'DM Sans',sans-serif}
.btn-outline:hover{border-color:rgba(245,240,232,.7)}
.btn-or-outline{display:inline-flex;align-items:center;justify-content:center;width:100%;border:1px solid rgba(201,168,76,.5);color:var(--or);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;padding:.85rem 1.5rem;background:transparent;cursor:pointer;transition:all .3s;font-family:'DM Sans',sans-serif}
.btn-or-outline:hover{background:var(--or);color:var(--noir)}
/* Navbar */
#navbar{position:fixed;top:0;left:0;right:0;z-index:100;transition:all .4s}
#navbar.scrolled{background:rgba(13,13,13,.95);backdrop-filter:blur(8px);border-bottom:1px solid rgba(44,44,44,.5)}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:4.5rem}
@media(min-width:1024px){.nav-inner{padding:0 3rem;height:5rem}}
.nav-logo{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--ivoire);letter-spacing:.12em;background:none;border:none;cursor:pointer}
.nav-logo span{color:var(--or)}
.nav-links{display:none;gap:2.5rem;list-style:none}
@media(min-width:1024px){.nav-links{display:flex}}
.nav-link{position:relative;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,240,232,.7);text-decoration:none;transition:color .3s;background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif}
.nav-link::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1px;background:var(--or);transition:width .3s}
.nav-link:hover{color:var(--ivoire)}.nav-link:hover::after{width:100%}
.nav-cta{display:none;border:1px solid var(--or);color:var(--or);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;padding:.55rem 1.2rem;background:transparent;cursor:pointer;transition:all .3s;font-family:'DM Sans',sans-serif}
.nav-cta:hover{background:var(--or);color:var(--noir)}
@media(min-width:1024px){.nav-cta{display:inline-block}}
.hamburger{display:flex;flex-direction:column;gap:5px;padding:.5rem;background:none;border:none;cursor:pointer}
.hamburger span{display:block;width:1.5rem;height:1px;background:var(--ivoire);transition:all .3s}
@media(min-width:1024px){.hamburger{display:none}}
#mobile-menu{display:none;background:rgba(26,26,26,.98);border-top:1px solid rgba(44,44,44,.4)}
#mobile-menu ul{list-style:none;padding:1.5rem 0}
#mobile-menu li button{display:block;width:100%;text-align:left;padding:.75rem 2rem;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,240,232,.7);background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .3s}
#mobile-menu li button:hover{color:var(--ivoire);padding-left:2.5rem}
/* Hero */
#hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
/* Histoire */
.portrait-wrap{position:relative}
.portrait-wrap img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;filter:grayscale(1);transition:all .7s;display:block}
.portrait-wrap:hover img{filter:grayscale(0)}
.portrait-frame{position:absolute;bottom:-1rem;right:-1rem;width:100%;height:100%;border:1px solid rgba(201,168,76,.3);pointer-events:none}
.portrait-badge{position:absolute;bottom:1.5rem;left:1.5rem;background:rgba(13,13,13,.9);backdrop-filter:blur(8px);padding:1rem 1.25rem;border-left:2px solid var(--or)}
.stats-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.75rem 0;border-top:1px solid var(--ardoise);border-bottom:1px solid var(--ardoise);margin-bottom:2.5rem}
.stat-val{font-family:'Cormorant Garamond',serif;font-size:2.2rem;color:var(--or);font-weight:300}
.stat-lbl{color:rgba(245,240,232,.4);font-size:.68rem;letter-spacing:.08em;margin-top:.2rem}
.grid2{display:grid;gap:4rem}
@media(min-width:1024px){.grid2{grid-template-columns:1fr 1fr;gap:6rem;align-items:center}}
/* Galerie */
.theme-card{position:relative;overflow:hidden;aspect-ratio:3/4;cursor:pointer;border:1px solid transparent;transition:all .3s;background:none;padding:0}
.theme-card.active{border-color:var(--or)}
.theme-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s;display:block}
.theme-card:hover img{transform:scale(1.05)}
.theme-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,13,13,.8),rgba(13,13,13,.2),transparent)}
.theme-label{position:absolute;bottom:0;left:0;right:0;padding:1.5rem}
.theme-label p{font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--ivoire)}
.theme-label small{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or);display:block;margin-top:.3rem;opacity:0;transition:opacity .3s}
.theme-card:hover .theme-label small,.theme-card.active .theme-label small{opacity:1}
.grid4{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
@media(min-width:1024px){.grid4{grid-template-columns:repeat(4,1fr)}}
.photo-grid{columns:2;column-gap:.4rem;margin-top:1.5rem}
@media(min-width:640px){.photo-grid{columns:3}}
@media(min-width:1024px){.photo-grid{columns:4}}
.photo-grid button{break-inside:avoid;display:block;width:100%;margin-bottom:.4rem;overflow:hidden;border:none;cursor:pointer;padding:0;background:none}
.photo-grid button img{width:100%;height:auto;display:block;transition:transform .5s}
.photo-grid button:hover img{transform:scale(1.03)}
/* Lightbox */
.lb-overlay{position:fixed;inset:0;background:rgba(13,13,13,.96);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}
.lb-btn{background:none;border:none;cursor:pointer;padding:.75rem;transition:color .3s;font-size:1.8rem;color:rgba(245,240,232,.5);font-family:'DM Sans',sans-serif}
.lb-btn:hover{color:var(--or)}
/* Prestations */
.pack-filter{background:transparent;border:1px solid var(--ardoise);color:rgba(245,240,232,.5);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;padding:.5rem 1.1rem;cursor:pointer;transition:all .3s;font-family:'DM Sans',sans-serif}
.pack-filter:hover{border-color:rgba(201,168,76,.5);color:var(--or)}
.pack-filter.active{border-color:var(--or);color:var(--or);background:rgba(201,168,76,.08)}
.pack{padding:2rem;border:1px solid var(--ardoise);background:rgba(26,26,26,.3);transition:all .3s;display:flex;flex-direction:column}
.pack:hover{transform:translateY(-4px);border-color:rgba(201,168,76,.3)}
.pack.popular{border-color:var(--or);background:rgba(44,44,44,.5)}
.pack.hidden{display:none!important}
.pack-price{font-family:'Cormorant Garamond',serif;font-size:2.6rem;color:var(--ivoire);font-weight:300;margin-bottom:.2rem}
.pack-feat{list-style:none;flex:1;margin-bottom:1.5rem}
.pack-feat li{display:flex;gap:.75rem;font-size:.82rem;color:rgba(245,240,232,.6);margin-bottom:.6rem;line-height:1.5}
.pack-feat li::before{content:'—';color:var(--or);flex-shrink:0;margin-top:.05rem}
.badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--or);color:var(--noir);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;padding:.3rem 1rem;white-space:nowrap;font-family:'DM Sans',sans-serif;font-weight:500}
.packs-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(265px,1fr))}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
/* Avis */
.avis-card{padding:2rem;border:1px solid var(--ardoise);background:rgba(26,26,26,.2);transition:all .3s}
.avis-card:hover{border-color:rgba(201,168,76,.35)}
.grid-av{display:grid;gap:1rem}
@media(min-width:640px){.grid-av{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.grid-av{grid-template-columns:repeat(4,1fr)}}
/* Contact */
.inp{width:100%;background:transparent;border:none;border-bottom:1px solid var(--ardoise);color:var(--ivoire);font-size:.9rem;padding:.75rem 0;outline:none;font-family:'DM Sans',sans-serif;transition:border-color .3s}
.inp::placeholder{color:var(--cendre)}
.inp:focus{border-bottom-color:var(--or)}
.lbl{display:block;color:rgba(245,240,232,.3);font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;margin-bottom:.5rem}
select.inp option{background:var(--charbon);color:var(--ivoire)}
select.inp optgroup{background:var(--ardoise);color:var(--or);font-style:normal}
.modal-avis-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:500;align-items:center;justify-content:center;padding:1rem}
.modal-avis-bg.open{display:flex}
.modal-avis{background:#1a1a1a;border:1px solid #2c2c2c;padding:2.5rem;width:100%;max-width:480px;position:relative}
.modal-avis::before,.modal-avis::after{content:'';position:absolute;width:20px;height:20px}
.modal-avis::before{top:-1px;left:-1px;border-top:1px solid #c9a84c;border-left:1px solid #c9a84c}
.modal-avis::after{bottom:-1px;right:-1px;border-bottom:1px solid #c9a84c;border-right:1px solid #c9a84c}
.modal-avis-title{font-family:'Cormorant Garamond',serif;font-size:1.75rem;font-weight:300;color:#f5f0e8;margin-bottom:.5rem}
.modal-avis-sub{color:rgba(245,240,232,.35);font-size:.78rem;margin-bottom:2rem}
.modal-avis-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:rgba(245,240,232,.3);font-size:1.1rem;cursor:pointer;transition:color .2s}
.modal-avis-close:hover{color:#f5f0e8}
.modal-field{margin-bottom:1.25rem}
.modal-label{display:block;color:rgba(245,240,232,.4);font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;margin-bottom:.45rem}
.modal-input{width:100%;background:#0d0d0d;border:1px solid #2c2c2c;color:#f5f0e8;padding:.7rem .9rem;font-size:.88rem;font-family:'DM Sans',sans-serif;font-weight:300;outline:none;transition:border-color .2s}
.modal-input:focus{border-color:#c9a84c}
.stars-input{display:flex;gap:.4rem;margin-top:.2rem}
.star-btn{background:none;border:none;font-size:1.5rem;color:rgba(201,168,76,.25);cursor:pointer;transition:color .15s;padding:0;line-height:1}
.star-btn.lit{color:#c9a84c}
.modal-avis-confirm{display:none;text-align:center;padding:2rem 0}
.modal-avis-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}
