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

:root,[data-theme="light"]{
  --bg:#ffffff;--text:#141412;--soft:#4a4a46;--muted:#8a8a84;--line:#e9e8e3;
  --header-bg:rgba(255,255,255,.85);--logo-invert:0;--imgbg:#f0efeb;
  --pad:clamp(24px,4vw,64px);
}
[data-theme="dark"]{
  --bg:#0b0b0c;--text:#efece4;--soft:#c7c4ba;--muted:#9a978e;--line:#232320;
  --header-bg:rgba(11,11,12,.72);--logo-invert:1;--imgbg:#000;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;font-weight:300;transition:background .4s ease,color .4s ease}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.serif{font-family:'Cormorant Garamond',Georgia,serif}

/* ---------- Header aimanté ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;justify-content:space-between;align-items:center;
  padding:20px var(--pad);pointer-events:none;
  transition:background .3s ease,border-color .3s ease;
}
body:not(.home) .site-header{
  background:var(--header-bg);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.home .site-header{background:transparent;border-bottom:1px solid transparent}
.vip-logo{pointer-events:auto;display:block;line-height:0}
.vip-logo img{height:clamp(40px,4.4vw,56px);width:auto;filter:invert(var(--logo-invert));transition:filter .3s ease}
.home .vip-logo img{filter:invert(1)}
.nav{pointer-events:auto;display:flex;gap:clamp(20px,3vw,36px);font-size:11px;letter-spacing:.26em;text-transform:uppercase}
.nav a{color:var(--text);opacity:.6;transition:opacity .2s ease,color .3s ease}
.nav a:hover,.nav a.active{opacity:1}
.home .nav a{color:#fff}

/* ---------- Accueil : diaporama plein écran ---------- */
.hero{height:100svh;position:relative;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center;text-align:center}
.slides{position:absolute;inset:0}
.slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 1.2s ease}
.slide.active{opacity:1;pointer-events:auto}
.slide-link{position:absolute;inset:0;display:block}
.slide-name{position:absolute;left:var(--pad);bottom:34px;z-index:4;color:#fff;font-size:13px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:3px;transition:border-color .25s ease}
.slide-link:hover .slide-name{border-color:#fff}
.slide img{width:100%;height:100%;object-fit:cover;opacity:.62}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,rgba(0,0,0,.12),rgba(0,0,0,.72));z-index:1}
.hcap{position:relative;z-index:2;color:#fff;padding:0 24px;max-width:900px}
.hcap .eyebrow{font-size:11px;letter-spacing:.36em;text-transform:uppercase;opacity:.78}
.hcap h1{margin:18px 0 0;font-weight:400;font-style:italic;font-size:clamp(38px,6.5vw,88px);line-height:1.02}
.dots{position:absolute;z-index:3;left:50%;transform:translateX(-50%);bottom:34px;display:flex;gap:9px}
.dot{width:7px;height:7px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:transparent;opacity:.7;cursor:pointer}
.dot.active{background:#fff;opacity:1}

/* ---------- Accueil : projets à la une (aléatoire) ---------- */
.featured{padding:clamp(90px,11vw,160px) var(--pad)}
.lead{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,2.7vw,36px);line-height:1.4;max-width:780px;margin:0 auto clamp(64px,8vw,110px);text-align:center}
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,44px)}
.fcard .ph{aspect-ratio:3/4;overflow:hidden;background:var(--imgbg)}
.fcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.fcard:hover img{transform:scale(1.05)}
.fcard h3{font-size:14px;font-weight:400;letter-spacing:.04em;margin:18px 0 0}
.fcard p{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:6px 0 0}
.more{display:block;text-align:center;margin-top:clamp(56px,7vw,90px);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.more:hover{color:var(--text)}

/* ---------- Pages intérieures ---------- */
.page{padding:clamp(120px,15vw,160px) var(--pad) 90px;min-height:100vh}
.page-title{font-family:'Cormorant Garamond',serif;font-weight:400;font-style:italic;font-size:clamp(40px,7vw,84px);letter-spacing:0;margin:0 0 clamp(48px,6vw,80px)}

/* Approche : photo petite, à gauche du texte */
.intro{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,2.8vw,36px);line-height:1.3;max-width:900px;margin:0 0 clamp(50px,6vw,80px)}
.approche-cols{display:grid;grid-template-columns:300px 1fr;gap:clamp(36px,5vw,72px);align-items:start}
.approche-photo{margin:0}
.approche-photo img{width:100%;height:auto}
.body{font-size:15px;line-height:1.75;color:var(--soft);max-width:640px}
.body p{margin:0 0 1.2em}
.body ul{padding-left:18px;margin:0 0 1.2em}
.body li{margin:.45em 0}

/* Projets : filtres + grille */
.filters{display:flex;flex-wrap:wrap;gap:12px 26px;margin:0 0 54px;padding:0;list-style:none;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.filters button{border:0;background:none;padding:0;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--muted);transition:color .2s ease}
.filters button.active,.filters button:hover{color:var(--text)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,3vw,54px) clamp(20px,2.4vw,40px)}
.card{display:block;transition:opacity .45s ease,transform .45s ease;will-change:transform,opacity}
.card.is-hidden{display:none}
.card-img{aspect-ratio:3/4;overflow:hidden;background:var(--imgbg)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-img img{transform:scale(1.05)}
.card h2{font-size:14px;font-weight:400;letter-spacing:.04em;margin:16px 0 0}
.card p{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:6px 0 0}
.empty{grid-column:1/-1;color:var(--muted);font-size:13px;letter-spacing:.06em;padding:10px 0}

/* Fiche projet */
.project{padding:clamp(112px,14vw,150px) var(--pad) 90px}
.back{display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:clamp(40px,5vw,60px);color:var(--muted)}
.back:hover{color:var(--text)}
.project-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);margin-bottom:clamp(44px,5vw,64px);align-items:start}
.project h1{font-family:'Cormorant Garamond',serif;font-weight:400;font-style:italic;font-size:clamp(38px,6vw,74px);letter-spacing:0;margin:0}
.details{font-size:13px}
.detail{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}
.detail b{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:400;color:var(--muted)}
.detail span{color:var(--soft)}
.project-main{width:100%;max-height:80vh;object-fit:cover;margin-bottom:24px;background:var(--imgbg)}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.gallery img{width:100%;height:auto;background:var(--imgbg)}

/* Contact centré */
.page-contact main{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(120px,15vw,160px) var(--pad) 100px}
.page-contact .page-title{margin:0 0 44px}
.contact-info{font-size:16px;line-height:1.7;max-width:540px;color:var(--soft)}
.contact-info h2{font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 22px}
.contact-info p{margin:0 0 18px}
.contact-info a{color:var(--text);text-decoration:underline;text-underline-offset:3px}

/* Footer */
.footer{padding:32px var(--pad);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line)}
.page-contact .footer{text-align:center}

/* Actions fixes : réseaux sociaux + bascule thème */
.site-actions{position:fixed;right:24px;bottom:22px;z-index:60;pointer-events:auto;display:flex;align-items:center;gap:20px}
.social{display:flex;align-items:center;gap:14px}
.social a{display:inline-flex;color:var(--muted);transition:color .2s ease,opacity .2s ease}
.social a:hover{color:var(--text)}
.social svg{width:18px;height:18px}
.theme-toggle{
  display:flex;align-items:center;gap:8px;
  border:1px solid var(--line);background:var(--header-bg);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:var(--text);font:inherit;font-size:11px;letter-spacing:.15em;text-transform:uppercase;
  padding:9px 15px;border-radius:100px;cursor:pointer;
  transition:opacity .2s ease,background .3s ease,color .3s ease,border-color .3s ease;
}
.theme-toggle:hover{opacity:.65}
.theme-toggle svg{width:15px;height:15px;flex:none}
.home .social a{color:rgba(255,255,255,.75)}
.home .social a:hover{color:#fff}
.home .theme-toggle{color:#fff;border-color:rgba(255,255,255,.4);background:rgba(0,0,0,.3)}

/* Responsive */
@media(max-width:820px){
  .nav{gap:16px;font-size:10px;letter-spacing:.18em}
  .page{padding:110px 22px 70px}
  .project{padding:110px 22px 70px}
  .project-head{grid-template-columns:1fr;gap:28px}
  .approche-cols{grid-template-columns:1fr;gap:30px}
  .approche-photo{max-width:280px}
  .gallery{grid-template-columns:1fr}
  .detail{grid-template-columns:120px 1fr}
  .fgrid{grid-template-columns:1fr 1fr;gap:16px}
  .grid{grid-template-columns:1fr 1fr;gap:26px 15px}
}
@media(max-width:520px){
  .fgrid{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .theme-toggle span{display:none}
  .site-actions{gap:14px;right:18px}
}
@media(prefers-reduced-motion:reduce){
  .card,.slide,.card-img img,.fcard img,.vip-logo img,body{transition:none}
}
