@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Jost:wght@300;400;500&display=swap');

*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#121110;
  --surface:#1a1918;
  --text:#f5f3ef;
  --mute:#8e8b84;
  --gold:#c5a880; /* Or champagne subtil façon destination wedding */
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',system-ui,sans-serif;
}
html{scroll-behavior:smooth}
body{font:300 15px/1.85 var(--sans);background:var(--bg);color:var(--text);letter-spacing:.02em;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}

/* ANIMATIONS D'APPARITION STYLE VIEW FILMS */
.r{opacity:0;transform:translateY(28px);transition:opacity 1.2s cubic-bezier(.16,1,.3,1),transform 1.2s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}
.r.on{opacity:1;transform:none}

/* NAVIGATION ÉLÉGANTE */
nav{position:fixed;inset:0 0 auto;z-index:40;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:26px 5vw;transition:.5s ease}
nav.sc,body.in nav{background:rgba(18,17,16,.94);backdrop-filter:blur(16px);padding:14px 5vw;border-bottom:1px solid rgba(255,255,255,.05)}
.logo{font:300 22px var(--serif);letter-spacing:.35em;text-transform:uppercase;text-align:center}
nav ul{display:flex;gap:32px;list-style:none}nav ul.rt{justify-content:flex-end}
nav ul a{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--mute);transition:color .3s}nav ul a:hover{color:#fff}

/* HERO PLEIN ÉCRAN CINÉMA */
#hero{position:relative;height:100vh;min-height:640px;display:flex;align-items:flex-end;padding:0 6vw 12vh;overflow:hidden}
#bg{position:absolute;inset:0;z-index:1}
#bg video,#bg iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100vw;height:56.25vw;min-height:100vh;min-width:177.78vh;border:0;object-fit:cover;pointer-events:none}
#hero::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(18,17,16,.15) 0%,rgba(18,17,16,.85) 100%)}
.hc{position:relative;z-index:3;max-width:920px}
.tag{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
h1{font:300 clamp(48px,8vw,100px)/1.02 var(--serif);margin-bottom:28px}
h1 em{font-style:italic}
.acts{display:flex;gap:32px;align-items:center;flex-wrap:wrap}
.btn{background:var(--gold);color:#121110;padding:14px 36px;font-size:11px;letter-spacing:.25em;text-transform:uppercase;border:0;border-radius:1px;transition:.4s cubic-bezier(.16,1,.3,1)}
.btn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.4)}
.sub{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--mute)}

/* TYPOGRAPHIE & SECTIONS */
section,.pg{padding:120px 6vw}
.pg{padding-top:160px;min-height:85vh}
h2{font:300 clamp(36px,5.5vw,70px)/1.1 var(--serif);margin-bottom:20px}
h3{font:300 28px/1.2 var(--serif);margin-bottom:14px}
p{color:var(--mute)}

.split{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center}
.split p{font-size:17px;line-height:1.9}

.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 6vw}
.tile{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--surface);display:flex;align-items:flex-end;padding:40px}
.tile img,.tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.tile:hover img,.tile:hover video{transform:scale(1.05)}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,17,16,.85) 0%,transparent 55%)}
.tile h2{position:relative;z-index:2;margin:0}

/* ÉTAPES */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:60px}
.step{background:var(--surface);padding:38px 28px;border:1px solid rgba(255,255,255,.04)}
.step b{display:block;font:300 48px/1 var(--serif);color:var(--gold);margin-bottom:14px}
.step h3{font-size:22px}

/* BANDEAU STRIP */
#strip{overflow:hidden;padding:80px 0}
#strip div{display:flex;gap:8px;width:max-content;animation:stripSlide 40s linear infinite}
#strip img{width:260px;height:360px;object-fit:cover;transition:transform .6s ease}
#strip img:hover{transform:scale(1.02)}
@keyframes stripSlide{to{transform:translateX(-50%)}}

/* GALERIE PHOTO */
.gal{columns:3 280px;column-gap:14px}
.gal figure{position:relative;break-inside:avoid;margin-bottom:14px;overflow:hidden;background:var(--surface);cursor:zoom-in}
.gal img{width:100%;display:block;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.gal figure:hover img{transform:scale(1.04)}

/* GRILLE 4 FILMS CARRÉS */
.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.fc{position:relative;aspect-ratio:1;background:var(--surface);border:0;overflow:hidden;cursor:pointer;text-align:left}
.fc img,.fc video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.fc:hover img,.fc:hover video{transform:scale(1.05)}
.fc::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,17,16,.85) 0%,transparent 60%)}
.fc span{position:absolute;z-index:2;left:24px;bottom:24px;font:300 26px var(--serif)}
.fc i{position:absolute;z-index:2;right:24px;bottom:24px;width:40px;height:40px;border:1px solid var(--gold);color:var(--gold);border-radius:50%;display:grid;place-items:center}

/* FAQ & CONTACT */
details{border-bottom:1px solid rgba(255,255,255,.08);padding:22px 0}
summary{cursor:pointer;font:300 24px var(--serif);list-style:none}
details p{margin-top:12px}
.big{display:block;font:300 clamp(26px,3.5vw,44px) var(--serif);margin:14px 0}
footer{display:flex;justify-content:space-between;padding:40px 6vw;border-top:1px solid rgba(255,255,255,.06);font-size:12px;color:var(--mute)}

/* VISIONNEUSE PHOTO (LIGHTBOX FLUIDE AVEC ZOOM) */
#lb{position:fixed;inset:0;z-index:100;background:rgba(10,9,8,.96);backdrop-filter:blur(18px);display:none;place-items:center;opacity:0;transition:opacity .35s ease}
#lb.on{display:grid;opacity:1}
#lb img{max-width:90vw;max-height:86vh;object-fit:contain;animation:zoomIn .45s cubic-bezier(.16,1,.3,1) forwards;user-select:none}
@keyframes zoomIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}

/* BOUTONS NAVIGATION LIGHTBOX */
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;color:#fff;font-size:42px;padding:20px;opacity:.6;transition:opacity .3s,transform .3s;z-index:102}
.lb-btn:hover{opacity:1;transform:translateY(-50%) scale(1.1)}
.lb-prev{left:16px}
.lb-next{right:16px}
.x{position:absolute;top:20px;right:24px;background:none;border:0;color:#fff;font-size:38px;opacity:.7;transition:.3s;z-index:103}
.x:hover{opacity:1}

/* MODALE VIDÉO */
#fm{position:fixed;inset:0;z-index:100;background:rgba(10,9,8,.96);backdrop-filter:blur(18px);display:none;place-items:center}
#fm.on{display:grid}
#fb{width:min(90vw,calc(85vh*16/9));aspect-ratio:16/9;animation:zoomIn .45s cubic-bezier(.16,1,.3,1)}
#fb iframe,#fb video{width:100%;height:100%;border:0}

/* BARRE ÉDITION FLOTTANTE */
#mio-bar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(26,25,24,.95);backdrop-filter:blur(12px);border:1px solid rgba(197,168,128,.3);padding:10px 22px;border-radius:50px;display:flex;align-items:center;gap:16px;z-index:99999;box-shadow:0 12px 35px rgba(0,0,0,.7)}
#mio-bar button{background:none;border:0;color:#fff;font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
#mio-bar button.primary{background:var(--gold);color:#121110;padding:8px 18px;border-radius:30px;font-weight:600}
.photo-controls{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;z-index:10;opacity:0;transition:.3s}
figure:hover .photo-controls{opacity:1}
.photo-controls button{background:rgba(18,17,16,.9);color:#fff;border:1px solid rgba(255,255,255,.2);padding:5px 9px;font-size:11px;border-radius:3px}

@media(max-width:800px){nav{grid-template-columns:1fr;justify-items:center}nav ul,nav ul.rt{gap:16px;justify-content:center}.split,.tiles,.steps{grid-template-columns:1fr}}
