@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,ital,wght@9..144,0,400;9..144,0,500;9..144,0,600;9..144,1,400;9..144,1,500&family=Outfit:wght@300;400;500;600&display=swap');
:root{
  --night:#0B1220;--night-deep:#070B14;--night-soft:#131C2E;
  --gold:#CDB07A;--gold-soft:#E3CFA0;--gold-bright:#EFE0BD;
  --red:#A31621;--cream:#F6F1E7;--paper:#FBF8F1;--ink:#1A2233;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Outfit',system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:1100px;margin:0 auto;padding:0 28px}

/* HEADER */
header{position:sticky;top:0;z-index:50;background:rgba(11,18,32,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(205,176,122,.18)}
.nav{display:flex;justify-content:space-between;align-items:center;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand img{height:38px;width:auto;display:block}
.nav-links{display:flex;gap:26px;align-items:center}
.nav-links a{color:var(--cream);text-decoration:none;font-size:.92rem;opacity:.85;transition:opacity .2s,color .2s}
.nav-links a:hover,.nav-links a.active{opacity:1;color:var(--gold-soft)}
.nav-cta{border:1px solid rgba(227,207,160,.4);padding:8px 18px;border-radius:2px;font-size:.88rem}
.nav-cta:hover{background:var(--gold);color:var(--night-deep)!important;border-color:var(--gold)}
.burger{display:none;background:none;border:0;color:var(--cream);font-size:1.6rem;cursor:pointer}

/* HERO */
.hero{background:radial-gradient(90% 80% at 50% 20%,rgba(205,176,122,.13),transparent 60%),linear-gradient(165deg,var(--night-deep),var(--night) 55%,#0d1526);color:var(--cream);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(227,207,160,.06) 1px,transparent 1px);background-size:24px 24px;opacity:.6;pointer-events:none}
.hero-inner{position:relative;z-index:2;padding:100px 0 84px;text-align:center}
.hero-logo{width:min(300px,68vw);height:auto;margin:0 auto 8px;display:block;filter:drop-shadow(0 20px 50px rgba(0,0,0,.5))}
.eyebrow{font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:20px;font-weight:500}
.hero h1{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(2.1rem,5vw,3.7rem);line-height:1.07;letter-spacing:-.5px;margin:0 auto 22px;max-width:18ch}
.hero h1 em{font-style:italic;color:var(--gold-soft)}
.hero p.lead{font-size:clamp(1rem,2vw,1.18rem);max-width:56ch;margin:0 auto 34px;opacity:.88;font-weight:300}

/* Page hero (plus compact, pour pages internes) */
.page-hero{background:linear-gradient(165deg,var(--night-deep),var(--night));color:var(--cream);padding:70px 0 56px;text-align:center;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(227,207,160,.05) 1px,transparent 1px);background-size:22px 22px;opacity:.6}
.page-hero .eyebrow{position:relative;z-index:2}
.page-hero h1{position:relative;z-index:2;font-family:'Fraunces',serif;font-weight:500;font-size:clamp(1.9rem,4.5vw,3rem);letter-spacing:-.4px;margin-bottom:14px}
.page-hero p{position:relative;z-index:2;max-width:56ch;margin:0 auto;opacity:.85;font-weight:300;font-size:1.05rem}

.btn{display:inline-block;padding:14px 30px;border-radius:2px;font-weight:500;text-decoration:none;font-size:.96rem;transition:all .25s;cursor:pointer}
.btn-gold{background:var(--gold);color:var(--night-deep)}
.btn-gold:hover{background:var(--gold-soft);transform:translateY(-2px)}
.btn-ghost{border:1px solid rgba(246,241,231,.32);color:var(--cream)}
.btn-ghost:hover{border-color:var(--gold-soft);color:var(--gold-soft)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}

/* SECTIONS */
section{padding:84px 0}
.section-eyebrow{font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px}
h2{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.1;letter-spacing:-.4px;margin-bottom:20px;color:var(--night)}
h3{font-family:'Fraunces',serif;font-weight:600;color:var(--night)}
.lead-text{font-size:1.1rem;max-width:62ch;color:#3a4560}
.lead-text + .lead-text{margin-top:18px}

.meaning{margin-top:34px;padding:26px 30px;border-left:3px solid var(--gold);background:var(--cream);border-radius:0 4px 4px 0;color:#3a4560}
.meaning strong{color:var(--night)}

/* GRID divisions */
.divisions-band{background:var(--night);color:var(--cream);position:relative;overflow:hidden}
.divisions-band::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(227,207,160,.05) 1px,transparent 1px);background-size:24px 24px}
.divisions-band .section-eyebrow{color:var(--gold-soft)}
.divisions-band h2{color:var(--cream)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1px;margin-top:40px;background:rgba(205,176,122,.18);border:1px solid rgba(205,176,122,.18);position:relative}
.card{background:var(--night-soft);padding:30px 26px;transition:background .25s;text-decoration:none;color:inherit;display:block}
.card:hover{background:#1a2740}
.card .num{font-family:'Fraunces',serif;font-size:.88rem;color:var(--gold-soft);font-weight:600;margin-bottom:12px;display:block}
.card h3{font-size:1.28rem;color:var(--gold-bright);margin-bottom:8px}
.card p{font-size:.95rem;color:rgba(246,241,231,.72)}
.card .arrow{margin-top:14px;font-size:.85rem;color:var(--gold-soft);opacity:0;transition:opacity .2s}
.card:hover .arrow{opacity:1}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:28px;margin-top:20px}
.stat{text-align:center}
.stat .num{font-family:'Fraunces',serif;font-size:2.6rem;color:var(--gold);font-weight:600;line-height:1}
.stat .lbl{font-size:.9rem;color:#5c6478;margin-top:8px}

/* Feature rows (pages divisions) */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.feature.reverse{direction:rtl}.feature.reverse>*{direction:ltr}
.feature-visual{background:linear-gradient(160deg,var(--night),var(--night-soft));border-radius:8px;min-height:280px;display:flex;align-items:center;justify-content:center;color:var(--gold-soft);font-family:'Fraunces',serif;font-size:1.1rem;position:relative;overflow:hidden}
.feature-visual::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(227,207,160,.06) 1px,transparent 1px);background-size:20px 20px}
.feature-visual span{position:relative;z-index:2;padding:20px;text-align:center;opacity:.5;letter-spacing:.05em}
.pill-list{list-style:none;margin-top:20px}
.pill-list li{padding:10px 0 10px 28px;position:relative;border-bottom:1px solid #ece7db;font-size:1rem;color:#3a4560}
.pill-list li::before{content:"";position:absolute;left:0;top:18px;width:10px;height:10px;background:var(--gold);border-radius:50%}

/* Contact */
.contact-band{background:linear-gradient(165deg,var(--night),var(--night-deep));color:var(--cream);position:relative}
.contact-band::after{content:"";position:absolute;left:50%;top:0;width:120px;height:3px;background:var(--red);transform:translateX(-50%)}
.contact-band .section-eyebrow{color:var(--gold-soft)}
.contact-band h2{color:var(--cream)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:36px}
.contact-info div{margin-bottom:22px}
.contact-info .k{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:4px}
.contact-info .v{font-size:1.1rem}
.contact-info a{color:var(--cream);text-decoration:none}
.contact-info a:hover{color:var(--gold-soft)}
form label{display:block;font-size:.85rem;color:rgba(246,241,231,.8);margin:14px 0 6px}
form input,form textarea{width:100%;padding:12px 14px;background:rgba(255,255,255,.06);border:1px solid rgba(227,207,160,.25);border-radius:3px;color:var(--cream);font-family:inherit;font-size:.95rem}
form input:focus,form textarea:focus{outline:none;border-color:var(--gold-soft)}
form button{margin-top:20px}

/* FOOTER */
footer{background:var(--night-deep);color:rgba(246,241,231,.6);padding:54px 0 30px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:36px}
.foot-brand img{height:44px;margin-bottom:14px}
.foot-brand p{font-size:.9rem;max-width:34ch}
.foot-col h4{color:var(--gold-soft);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;font-weight:600}
.foot-col a{display:block;color:rgba(246,241,231,.6);text-decoration:none;font-size:.92rem;padding:5px 0;transition:color .2s}
.foot-col a:hover{color:var(--gold-soft)}
.foot-bottom{border-top:1px solid rgba(246,241,231,.12);padding-top:22px;text-align:center;font-size:.85rem;opacity:.7}

@media(max-width:820px){
  .feature,.contact-grid,.foot-grid{grid-template-columns:1fr;gap:30px}
  .feature.reverse{direction:ltr}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--night);padding:20px 28px;gap:16px;border-bottom:1px solid rgba(205,176,122,.2)}
  .nav-links.open{display:flex}
  .burger{display:block}
  section{padding:60px 0}
}

/* GALERIE division */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:40px}
.gallery figure{margin:0;border-radius:8px;overflow:hidden;position:relative;border:1px solid rgba(205,176,122,.25);box-shadow:0 10px 30px rgba(11,18,32,.12)}
.gallery img{width:100%;height:260px;object-fit:cover;display:block;transition:transform .5s}
.gallery figure:hover img{transform:scale(1.06)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:linear-gradient(transparent,rgba(7,11,20,.85));color:var(--cream);font-size:.9rem;font-weight:500;letter-spacing:.02em}
.gallery figure.wide{grid-column:span 2}
@media(max-width:640px){.gallery figure.wide{grid-column:span 1}.gallery img{height:220px}}

/* Bandeau image pleine largeur */
.banner-img{width:100%;height:clamp(240px,40vh,420px);object-fit:cover;display:block}

/* Logo d'entité (division) mis en valeur */
.entity-logo-band{background:linear-gradient(160deg,#000,#0a0a0a 60%,#111);text-align:center;padding:70px 0}
.entity-logo-band img{max-width:min(420px,80vw);height:auto;display:block;margin:0 auto;filter:drop-shadow(0 20px 60px rgba(201,162,39,.25))}

/* Métadonnées d'une offre d'emploi */
.job-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:rgba(205,176,122,.2);border:1px solid rgba(205,176,122,.2);border-radius:8px;overflow:hidden}
.job-meta > div{background:var(--cream);padding:18px 20px;display:flex;flex-direction:column;gap:4px}
.job-meta .k{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600}
.job-meta .v{font-size:.98rem;color:var(--night);font-weight:500}
/* Badge type de contrat sur carte offre */
.card .badge{display:inline-block;background:rgba(205,176,122,.15);color:var(--gold-soft);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:20px;margin-bottom:12px;font-weight:600}

/* Annonces immobilières */
.listings{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;margin-top:40px}
.listing-card{background:#fff;border:1px solid rgba(205,176,122,.3);border-radius:10px;overflow:hidden;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.listing-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,18,32,.15)}
.listing-photo{width:100%;height:200px;object-fit:cover;display:block;background:linear-gradient(160deg,var(--night),var(--night-soft));position:relative}
.listing-photo-placeholder{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--night),var(--night-soft));color:var(--gold-soft);font-family:'Fraunces',serif;font-size:.95rem;letter-spacing:.05em;position:relative;text-align:center;padding:20px}
.listing-photo-placeholder::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(227,207,160,.06) 1px,transparent 1px);background-size:18px 18px}
.listing-photo-placeholder span{position:relative;z-index:2;opacity:.6}
.listing-badge{position:absolute;top:12px;left:12px;z-index:3;background:var(--gold);color:var(--night-deep);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:20px}
.listing-body{padding:22px 22px 24px;flex:1;display:flex;flex-direction:column}
.listing-body h3{font-size:1.25rem;color:var(--night);margin-bottom:6px}
.listing-type{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px}
.listing-price{font-family:'Fraunces',serif;font-size:1.6rem;color:var(--night);font-weight:600;line-height:1.1}
.listing-price small{display:block;font-family:'Outfit',sans-serif;font-size:.85rem;color:#5c6478;font-weight:400;margin-top:4px}
.listing-features{list-style:none;margin:16px 0 20px;padding-top:16px;border-top:1px solid #ece7db}
.listing-features li{font-size:.9rem;color:#3a4560;padding:4px 0 4px 20px;position:relative}
.listing-features li::before{content:"";position:absolute;left:0;top:12px;width:7px;height:7px;background:var(--gold);border-radius:50%}
.listing-card .btn{margin-top:auto;text-align:center}
.rental-conditions{background:var(--cream);border-left:3px solid var(--gold);border-radius:0 6px 6px 0;padding:24px 28px;margin-top:36px}
.rental-conditions h3{color:var(--night);margin-bottom:12px;font-size:1.15rem}
.rental-conditions ul{list-style:none}
.rental-conditions li{padding:6px 0 6px 24px;position:relative;color:#3a4560}
.rental-conditions li::before{content:"▸";position:absolute;left:0;color:var(--gold);font-weight:bold}
