:root{--noir:#0B0B0C;--anthra:#1C1C1E;--or:#C9A55C;--or-c:#E6CD92;--or-p:#7A5B24;--ivoire:#F5F0E6;--pierre:#9A9A9E}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;color:var(--ivoire);background:var(--noir);line-height:1.6;font-size:17px}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;line-height:1.1}
a{color:var(--or)}
.sur{display:block;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--or);margin-bottom:16px}
.filet{width:48px;height:1px;background:var(--or);margin:24px auto}
/* Menu */
header{position:fixed;inset:0 0 auto 0;z-index:10;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
header.scrolled{background:rgba(11,11,12,.95);border-color:rgba(201,165,92,.25)}
.nav{max-width:1120px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 24px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ivoire)}
.logo .mono{width:40px;height:40px;border:1px solid var(--or);display:grid;place-items:center;font-family:"Cormorant Garamond",serif;font-size:20px;color:var(--or);letter-spacing:.02em}
.logo .nom{font-size:13px;font-weight:600;letter-spacing:.24em;text-transform:uppercase}
.menu{display:flex;gap:32px;list-style:none}
.menu a{color:var(--ivoire);text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.menu a:hover{color:var(--or)}
.burger{display:none;background:none;border:0;color:var(--or);font-size:28px;cursor:pointer}
/* Hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px;overflow:hidden;background:var(--noir)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(11,11,12,.45),rgba(11,11,12,.75));z-index:1}
.hero-in{position:relative;z-index:2}
/* Ken Burns */
.kb{position:absolute;inset:0;z-index:0}
.kb-slide{position:absolute;inset:-4%;background:center/cover no-repeat;opacity:0;transition:opacity 1.8s ease;will-change:transform,opacity}
.kb-slide.on{opacity:1}
.kb-slide.kb-a{animation:kbA 9s ease-out forwards}
.kb-slide.kb-b{animation:kbB 9s ease-out forwards}
.kb-slide.kb-c{animation:kbC 9s ease-out forwards}
.kb-slide.kb-d{animation:kbD 9s ease-out forwards}
@keyframes kbA{from{transform:scale(1) translate(0,0)}to{transform:scale(1.15) translate(-2%,-1%)}}
@keyframes kbB{from{transform:scale(1.15) translate(2%,1%)}to{transform:scale(1) translate(0,0)}}
@keyframes kbC{from{transform:scale(1.05) translate(-2%,1%)}to{transform:scale(1.18) translate(2%,-1%)}}
@keyframes kbD{from{transform:scale(1.18) translate(0,-2%)}to{transform:scale(1.05) translate(0,1%)}}
@media (prefers-reduced-motion:reduce){.kb-slide{animation:none!important;transition:none}}
.hero h1{font-size:clamp(44px,8vw,80px);color:var(--ivoire)}
.hero p{font-size:clamp(17px,2.2vw,20px);color:var(--ivoire);opacity:.9}
.btns{margin-top:40px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;background:var(--or);color:var(--noir);text-decoration:none;padding:15px 32px;border-radius:2px;font-weight:600;font-size:14px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--or);cursor:pointer;font-family:inherit;transition:background .2s,color .2s}
.btn:hover{background:var(--or-c);border-color:var(--or-c)}
.btn.o{background:transparent;color:var(--or)}
.btn.o:hover{background:var(--or);color:var(--noir)}
/* Sections */
section{padding:128px 24px}
.w{max-width:1120px;margin:auto}
.t{text-align:center;margin-bottom:56px}
.t h2{font-size:clamp(32px,5vw,44px);color:var(--ivoire)}
.t p{color:var(--pierre);margin-top:8px}
.alt{background:var(--anthra)}
/* Conciergerie */
.soon{max-width:720px;margin:auto;text-align:center;border:1px solid rgba(201,165,92,.4);padding:56px 32px;position:relative}
.badge{display:inline-block;border:1px solid var(--or);color:var(--or);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:6px 16px;border-radius:2px;margin-bottom:24px}
.soon h3{font-size:26px;margin-bottom:16px}
.soon p{color:var(--pierre)}
.soon ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:center;margin-top:32px}
.soon li{font-size:14px;color:var(--ivoire)}
.soon li::before{content:"—";color:var(--or);margin-right:8px}
/* Carte */
.map{display:grid;grid-template-columns:2fr 1fr;gap:32px;align-items:stretch}
.map iframe{width:100%;min-height:400px;border:1px solid rgba(201,165,92,.4);background:var(--anthra);filter:grayscale(.3) contrast(1.05)}
.card{border:1px solid rgba(201,165,92,.4);padding:32px;display:flex;flex-direction:column;justify-content:center;gap:16px}
.card h3{font-size:26px}
.card p{color:var(--pierre)}
.card a:not(.btn){font-size:14px}
/* Contact */
.contact{display:grid;grid-template-columns:1fr 1.4fr;gap:48px}
.info p{margin-bottom:16px;color:var(--pierre)}
.info strong{color:var(--ivoire);font-weight:600}
form{display:grid;gap:16px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
input,textarea{width:100%;padding:14px 16px;border:1px solid #3a3a3d;border-radius:2px;font:inherit;font-size:16px;background:var(--noir);color:var(--ivoire)}
input::placeholder,textarea::placeholder{color:var(--pierre)}
input:focus,textarea:focus{outline:1px solid var(--or);border-color:var(--or)}
textarea{min-height:144px;resize:vertical}
.hp{position:absolute;left:-9999px}
.msg{padding:12px 16px;display:none;font-size:15px}
.msg.ok{display:block;border:1px solid var(--or);color:var(--or-c)}.msg.ko{display:block;border:1px solid #b55;color:#f0b4b4}
footer{border-top:1px solid rgba(201,165,92,.25);color:var(--pierre);text-align:center;padding:32px 24px;font-size:14px}
footer a{color:var(--or)}
@media(max-width:800px){
 .burger{display:block}
 .menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--noir);border-bottom:1px solid rgba(201,165,92,.25)}
 .menu.open{display:flex}
 .menu a{display:block;padding:16px 24px}
 header:has(.menu.open){background:var(--noir)}
 .map,.contact,.row{grid-template-columns:1fr}
 section{padding:80px 24px}
 .logo .nom{display:none}
}
#err{background:var(--noir)}
[hidden]{display:none!important}
.direct{border:1px solid rgba(201,165,92,.4);padding:40px 32px;text-align:center;align-self:start}
.direct p{margin-bottom:16px;color:var(--pierre)}
.direct p:last-child{margin-bottom:0}
