:root{
  --charcoal:#2b2b28; --charcoal-2:#1c1c1a; --gold:#c9a567; --gold-light:#e6d3a3;
  --olive:#3d4a22; --olive-2:#57652f; --sky:#bfe4f6; --sky-light:#e9f7fc;
  --cream:#f6f3ec; --ink:#201f1b; --line: rgba(201,165,103,.35);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Jost', sans-serif; color:var(--ink); background:var(--cream); line-height:1.5;}
h1,h2,h3,h4{font-family:'Cormorant Garamond', serif; font-weight:600; letter-spacing:.02em;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none;}
.eyebrow{font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); font-weight:600;}
.container{max-width:1180px; margin:0 auto; padding:0 32px;}

header{position:sticky; top:0; z-index:50; background:var(--charcoal); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 32px; max-width:1180px; margin:0 auto;}
.brand{display:flex; align-items:center; gap:14px; color:#fff; font-family:'Cormorant Garamond',serif; font-size:1.3rem;}
.brand img{height:50px;}
.navlinks{display:flex; gap:30px; align-items:center; flex-wrap:wrap;}
.navlinks a{font-size:.8rem; letter-spacing:.05em; text-transform:uppercase; color:#e9e6dd;}
.navlinks a:hover{color:var(--gold);}
.btn-admin{background:transparent; border:1px solid var(--gold); color:var(--gold); padding:9px 18px; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; border-radius:2px;}
.btn-admin:hover{background:var(--gold); color:var(--charcoal-2);}

.hero{position:relative; overflow:hidden; background:var(--charcoal); min-height:440px; display:flex; align-items:center;}
.hero-inner{position:relative; z-index:2; max-width:1180px; margin:0 auto; padding:60px 32px; width:100%;}
.hero h1{color:#fff; font-size:clamp(2.6rem, 6vw, 4.6rem); line-height:1; max-width:640px;}
.hero h1 em{color:var(--gold); font-style:italic;}
.hero p.lede{color:#d9d6cb; max-width:420px; margin-top:20px; font-size:1rem; font-weight:300;}
.hero-ctas{display:flex; gap:16px; margin-top:30px; flex-wrap:wrap;}
.btn{display:inline-flex; align-items:center; gap:10px; padding:14px 26px; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; border-radius:2px; font-weight:500;}
.btn-gold{background:var(--gold); color:var(--charcoal-2);}
.btn-gold:hover{background:var(--gold-light);}
.btn-ghost{border:1px solid #fff5; color:#fff; background:transparent;}
.btn-ghost:hover{border-color:#fff;}

.section{padding:70px 0;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:40px; gap:24px; flex-wrap:wrap;}
.section-head h2{font-size:2.2rem; color:var(--charcoal-2);}
.section-head p{max-width:380px; font-size:.9rem; color:#5c5a52; font-weight:300;}

.filters{background:#fff; border:1px solid #e6e0d0; border-radius:3px; padding:20px; display:flex; gap:14px; flex-wrap:wrap; margin-bottom:36px;}
.filters select, .filters input{padding:11px 13px; border:1px solid #ddd6c4; border-radius:2px; font-family:inherit;}
.filters button{background:var(--charcoal-2); color:#fff; padding:11px 20px; border-radius:2px; text-transform:uppercase; font-size:.76rem; letter-spacing:.1em;}

.grid-listings{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:26px;}
.listing-card{background:#fff; border:1px solid #e6e0d0; border-radius:3px; overflow:hidden;}
.listing-photo{position:relative; height:190px; background:linear-gradient(180deg, var(--sky), var(--sky-light)); background-size:cover; background-position:center;}
.listing-tag{position:absolute; top:14px; left:14px; background:var(--charcoal-2); color:#fff; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; padding:5px 10px; border-radius:2px;}
.listing-price{position:absolute; bottom:0; right:0; background:rgba(28,28,26,.85); color:#fff; padding:8px 14px; font-family:'Cormorant Garamond',serif; font-size:1.25rem;}
.listing-price span{display:block; font-family:'Jost',sans-serif; font-size:.62rem; text-transform:uppercase; letter-spacing:.06em; opacity:.8;}
.listing-body{padding:18px 20px;}
.listing-body h3{font-size:1.3rem;}
.listing-meta{font-size:.8rem; color:#8b8676; margin:6px 0 10px;}
.listing-desc{font-size:.84rem; color:#5c5a52; margin-bottom:14px;}
.listing-foot{display:flex; justify-content:space-between; align-items:center; border-top:1px solid #efeadb; padding-top:12px; font-size:.76rem; text-transform:uppercase; letter-spacing:.06em;}
.listing-foot a{color:var(--gold); font-weight:600;}

.avis-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
.avis-card{background:#fff; border:1px solid #e6e0d0; padding:20px; border-radius:3px; margin-bottom:16px;}
.avis-card .stars{color:var(--gold); letter-spacing:2px;}
.avis-form{background:#fff; border:1px solid #e6e0d0; padding:24px; border-radius:3px;}
.star-input{display:flex; gap:8px; font-size:1.9rem; color:#c9c2ab; margin:8px 0 16px;}
.star-input label{cursor:pointer;}

.contact-block{background:var(--charcoal-2); color:#fff; padding:60px 0;}
.contact-inner{display:grid; grid-template-columns:1fr 1fr; gap:50px;}
.contact-info p{color:#d9d6cb; font-size:.92rem; margin:16px 0 22px; max-width:380px;}
.contact-info .item{margin-bottom:10px; font-size:.88rem; color:#d9d6cb;}
.contact-info .item strong{color:var(--gold); text-transform:uppercase; font-size:.7rem; letter-spacing:.1em; display:block;}
.contact-form label{display:block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:#a9a48f; margin:14px 0 6px;}
.contact-form input, .contact-form select, .contact-form textarea{width:100%; padding:12px 14px; border:1px solid #40403a; background:#242421; color:#fff; border-radius:2px; font-family:inherit;}

.thread{display:flex; flex-direction:column; gap:12px; max-height:400px; overflow-y:auto; padding:6px 2px; margin-bottom:16px;}
.bubble{max-width:80%; padding:12px 16px; border-radius:10px; font-size:.86rem; line-height:1.5;}
.bubble.agence{align-self:flex-start; background:#efeadb; color:var(--charcoal-2); border-bottom-left-radius:2px;}
.bubble.client{align-self:flex-end; background:var(--olive); color:#fff; border-bottom-right-radius:2px;}
.bubble .b-meta{font-size:.66rem; opacity:.7; margin-top:6px;}
.code-pill{display:inline-block; background:var(--charcoal-2); color:var(--gold); padding:6px 14px; border-radius:4px; letter-spacing:.1em; font-weight:600; font-size:.9rem;}

.msg-ok{background:#e8efd9; color:var(--olive); padding:12px 16px; border-radius:2px; font-size:.85rem; margin-bottom:18px;}
.msg-err{background:#f3e0da; color:#a3402f; padding:12px 16px; border-radius:2px; font-size:.85rem; margin-bottom:18px;}

footer{background:var(--charcoal-2); color:#8b8676; text-align:center; padding:26px; font-size:.78rem;}
