/* ================================================================
   VARIABLES — modifier ici pour ajuster toute la charte graphique
   ================================================================ */
:root {
  /* Couleurs principales */
  --c-navy:    #0B1824;
  --c-navy2:   #0F2030;
  --c-navy3:   #162B40;
  --c-ivory:   #F7F3EC;
  --c-ivory2:  #EDE6D9;
  --c-ivory3:  #F2EDE4;
  --c-sand:    #F0EAE0;
  --c-cream:   #FAF8F4;
  --c-gold:    #C4992A;
  --c-gold2:   #D9AE45;
  --c-gold3:   rgba(196,153,42,.12);
  --c-brick:   #7A3325;
  --c-green:   #1A4535;
  --c-gray:    #5A544C;
  --c-gray2:   #8A847C;
  --c-dark:    #1A140E;

  /* Typographie */
  --f-d: 'Cormorant Garamond', Georgia, serif;
  --f-b: 'DM Sans', sans-serif;

  /* Espacement et transitions */
  --gap:  92px;
  --ease: .3s ease;

  /* Séparateur doré réutilisable */
  --sep: linear-gradient(to right, transparent, rgba(196,153,42,.35), transparent);
}

/* ================================================================
   RESET & BASE
   ================================================================ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family: var(--f-b);
  background: var(--c-ivory);
  color: var(--c-dark);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* ================================================================
   CONTENEUR
   ================================================================ */
.wrap { max-width:1160px; margin:0 auto; padding:0 52px; }
@media(max-width:768px){ .wrap { padding:0 24px; } }

/* ================================================================
   COMPOSANTS PARTAGÉS
   ================================================================ */

/* Étiquette de section */
.eyebrow {
  font-family: var(--f-b);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--c-gold);
  display: block;
}

/* Trait séparateur doré court */
.rule {
  display: block;
  width: 32px;
  height: 1px;
  background: var(--c-gold);
  margin: 14px 0;
}
.rule--c  { margin: 14px auto; }
.rule--l  { margin: 14px 0; }

/* Séparateur pleine largeur entre sections */
.section-sep {
  height: 1px;
  background: var(--sep);
  margin: 0;
  border: none;
}
.section-sep--light {
  background: linear-gradient(to right, transparent, rgba(196,153,42,.2), transparent);
}

/* Titres */
.h1 {
  font-family: var(--f-d);
  font-size: clamp(42px, 5.5vw, 74px);
  font-weight: 300;
  line-height: 1.07;
  letter-spacing: -.02em;
}
.h2 {
  font-family: var(--f-d);
  font-size: clamp(30px, 3.8vw, 48px);
  font-weight: 300;
  line-height: 1.12;
  letter-spacing: -.01em;
}
.h3 {
  font-family: var(--f-d);
  font-size: clamp(22px, 2.5vw, 30px);
  font-weight: 400;
  line-height: 1.22;
}

/* Texte courant */
.body-lg {
  font-size: 15.5px;
  font-weight: 300;
  line-height: 1.9;
  color: var(--c-gray);
}
.body-md {
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.85;
  color: var(--c-gray);
}
.body-sm {
  font-size: 13px;
  font-weight: 300;
  line-height: 1.8;
  color: var(--c-gray2);
}

/* Boutons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 34px;
  font-family: var(--f-b);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  text-decoration: none;
  transition: all var(--ease);
  border: none;
  cursor: pointer;
  position: relative;
}
.btn-primary {
  background: var(--c-gold);
  color: var(--c-navy);
}
.btn-primary:hover {
  background: var(--c-gold2);
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(196,153,42,.25);
}
.btn-outline {
  background: transparent;
  color: var(--c-gold);
  border: 1px solid rgba(196,153,42,.5);
}
.btn-outline:hover {
  background: var(--c-gold);
  color: var(--c-navy);
}
.btn-ghost-light {
  background: transparent;
  color: var(--c-navy);
  border: 1px solid rgba(11,24,36,.2);
}
.btn-ghost-light:hover {
  border-color: var(--c-gold);
  color: var(--c-gold);
}
.btn-ghost-dark {
  background: transparent;
  color: rgba(247,243,236,.72);
  border: 1px solid rgba(247,243,236,.18);
}
.btn-ghost-dark:hover {
  border-color: rgba(247,243,236,.5);
  color: var(--c-ivory);
}
/* Flèche décorative sur bouton */
.btn-arr::after {
  content: '→';
  font-size: 13px;
  transition: transform var(--ease);
}
.btn-arr:hover::after { transform: translateX(4px); }

/* ================================================================
   ANIMATIONS — reveal au scroll
   Ajouter classe .r à tout élément à animer.
   .d1 à .d4 = délais croissants.
   ================================================================ */
.r {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .7s ease, transform .7s ease;
}
.r.on { opacity:1; transform:translateY(0); }
.d1 { transition-delay:.1s; }
.d2 { transition-delay:.2s; }
.d3 { transition-delay:.3s; }
.d4 { transition-delay:.4s; }

/* ================================================================
   NAVIGATION
   Fond transparent → opaque au scroll (classe .scrolled via JS)
   ================================================================ */
#nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 72px;
  z-index: 900;
  transition: background .4s ease, border-color .4s ease, backdrop-filter .4s ease;
  border-bottom: 1px solid transparent;
}
#nav.scrolled {
  background: rgba(9,19,30,.96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom-color: rgba(196,153,42,.1);
}
#nav .wrap {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

/* Logo */
.nav-logo {
  display: flex;
  align-items: center;
  gap: 13px;
  text-decoration: none;
  flex-shrink: 0;
}
.nav-badge {
  width: 32px; height: 32px;
  border: 1px solid rgba(196,153,42,.5);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color var(--ease);
}
.nav-logo:hover .nav-badge { border-color: var(--c-gold); }
.nav-badge span {
  font-family: var(--f-d);
  font-size: 18px;
  font-weight: 500;
  color: var(--c-gold);
  line-height: 1;
}
.nav-id { display: flex; flex-direction: column; gap: 2px; }
.nav-name {
  font-family: var(--f-d);
  font-size: 18px;
  font-weight: 500;
  color: var(--c-ivory);
  letter-spacing: 4.5px;
  line-height: 1;
}
.nav-claim {
  font-size: 8px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(247,243,236,.28);
}

/* Liens */
.nav-links {
  display: flex;
  gap: 42px;
  list-style: none;
  flex: 1;
  justify-content: center;
}
.nav-links a {
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(247,243,236,.55);
  text-decoration: none;
  transition: color var(--ease);
  position: relative;
  padding-bottom: 4px;
}
.nav-links a::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 100%;
  height: 1px;
  background: var(--c-gold);
  transition: right var(--ease);
}
.nav-links a:hover { color: var(--c-ivory); }
.nav-links a:hover::after { right: 0; }

/* Switcher langue */
.nav-lang {
  display: flex;
  align-items: center;
  gap: 1px;
  flex-shrink: 0;
}
.nav-lang button {
  background: none; border: none; cursor: pointer;
  padding: 4px 7px;
  font-family: var(--f-b);
  font-size: 10px;
  letter-spacing: 1.5px;
  color: rgba(247,243,236,.3);
  transition: color var(--ease);
}
.nav-lang button.on { color: var(--c-gold); }
.nav-lang button:hover { color: var(--c-gold2); }
.nav-lang .pipe { color: rgba(247,243,236,.1); font-size: 10px; }

/* Bouton Espace membre — distinct, structuré, accès privé */
.nav-membre {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 20px;
  font-family: var(--f-b);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--c-gold);
  border: 1px solid rgba(196,153,42,.4);
  background: rgba(196,153,42,.06);
  transition: all var(--ease);
  white-space: nowrap;
  flex-shrink: 0;
  position: relative;
}
.nav-membre::before {
  content: '';
  display: block;
  width: 6px; height: 6px;
  border: 1px solid rgba(196,153,42,.7);
  border-radius: 50%;
  flex-shrink: 0;
  transition: background var(--ease);
}
.nav-membre:hover {
  background: rgba(196,153,42,.12);
  border-color: rgba(196,153,42,.7);
  color: var(--c-gold2);
}
.nav-membre:hover::before {
  background: var(--c-gold);
}

@media(max-width:900px) { .nav-links { display:none; } }
@media(max-width:700px) { .nav-membre span { display:none; } }
@media(max-width:580px) { .nav-claim { display:none; } }

/* ================================================================
   1. HERO
   Section d'accroche — client-centré, sobre, premium
   ================================================================ */
.hero {
  min-height: 100vh;
  background: var(--c-navy);
  display: grid;
  grid-template-columns: 54% 46%;
  position: relative;
  overflow: hidden;
}

/* Lumière ambiante — chaleur discrète */
.hero::before {
  content: '';
  position: absolute; inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 65% at 0% 70%, rgba(122,51,37,.08) 0%, transparent 55%),
    radial-gradient(ellipse 40% 50% at 100% 10%, rgba(196,153,42,.04) 0%, transparent 50%),
    radial-gradient(ellipse 50% 35% at 50% 110%, rgba(26,69,53,.06) 0%, transparent 50%);
}

/* Grain très subtil — texture luxe */
.hero::after {
  content: '';
  position: absolute; inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  opacity: .4;
  mix-blend-mode: overlay;
}

/* Colonne texte */
.hero-txt {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 128px 64px 88px 52px;
  position: relative;
  z-index: 2;
}
/* Filet central vertical */
.hero-txt::after {
  content: '';
  position: absolute;
  right: 0; top: 20%; bottom: 20%;
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(196,153,42,.14), transparent);
}

.hero-pre {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 30px;
  animation: reveal .95s ease both;
}
.hero-pre-bar {
  width: 22px; height: 1px;
  background: rgba(196,153,42,.5);
  flex-shrink: 0;
}

.hero-h1 {
  color: var(--c-ivory);
  margin-bottom: 28px;
  animation: reveal .95s ease .14s both;
}
.hero-h1 em {
  font-style: italic;
  color: var(--c-gold2);
}

.hero-intro {
  max-width: 400px;
  margin-bottom: 48px;
  animation: reveal .95s ease .27s both;
  color: rgba(247,243,236,.58);
  font-size: 15px;
  font-weight: 300;
  line-height: 1.92;
}

.hero-ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  animation: reveal .95s ease .4s both;
}

/* Indicateur scroll */
.hero-hint {
  position: absolute;
  bottom: 38px; left: 52px;
  display: flex;
  align-items: center;
  gap: 13px;
  animation: reveal .95s ease .55s both;
}
.hero-hint-bar { width: 28px; height: 1px; background: rgba(196,153,42,.3); }
.hero-hint span {
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(247,243,236,.25);
}

/* Colonne visuelle — Art Déco ornemental */
.hero-vis {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 110px 48px 88px 12px;
  position: relative;
  z-index: 2;
}
.hero-art {
  width: 100%;
  max-width: 340px;
  animation: reveal 1.1s ease .18s both;
  opacity: .9;
}

@keyframes reveal {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:translateY(0); }
}

@media(max-width:960px) {
  .hero { grid-template-columns:1fr; }
  .hero-vis { display:none; }
  .hero-txt { padding:130px 32px 80px; }
  .hero-txt::after { display:none; }
}

/* ================================================================
   2. SECTION CRÉDIBILITÉ
   Qualitative, sobre — pas de chiffres faibles
   ================================================================ */
.cred {
  background: var(--c-cream);
  padding: 72px 0;
  position: relative;
}
.cred-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1px;
  background: var(--c-ivory2);
}
.cred-item {
  background: var(--c-cream);
  padding: 44px 40px;
  position: relative;
  transition: background var(--ease);
}
.cred-item:hover { background: #FDFAF6; }
.cred-item::before {
  content: '';
  display: block;
  width: 28px;
  height: 1px;
  background: var(--c-gold);
  margin-bottom: 20px;
}
.cred-item h3 {
  font-family: var(--f-d);
  font-size: 20px;
  font-weight: 400;
  color: var(--c-navy);
  margin-bottom: 10px;
  line-height: 1.25;
}
.cred-item p {
  font-size: 13.5px;
  font-weight: 300;
  line-height: 1.82;
  color: var(--c-gray);
}

/* Note de fondation — discrète, centrée sous la grille */
.cred-note {
  text-align: center;
  margin-top: 36px;
}
.cred-note p {
  font-family: var(--f-d);
  font-size: 15.5px;
  font-weight: 300;
  font-style: italic;
  color: var(--c-gray2);
  line-height: 1.6;
}
.cred-note strong {
  font-style: normal;
  font-weight: 400;
  color: var(--c-gray);
}

@media(max-width:800px){ .cred-grid { grid-template-columns:1fr; } }

/* ================================================================
   3. SECTION BIENS — teasing
   Visuel fort, peu de texte, redirection claire
   ================================================================ */
.biens {
  background: var(--c-navy2);
  padding: var(--gap) 0;
  position: relative;
}
.biens-hd {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 52px;
}
.biens-hd-l .h2 { color: var(--c-ivory); margin-top: 12px; }
.biens-hd-l .body-md { color: rgba(247,243,236,.45); margin-top: 10px; max-width: 340px; }

/* Grille biens */
.biens-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 2px;
}

/* Carte bien */
.bc {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  background: var(--c-navy3);
}
.bc:hover .bc-vis-inner { transform: scale(1.04); }
.bc:hover .bc-reveal { opacity: 1; }

/* Zone visuelle premium */
.bc-vis {
  height: 320px;
  overflow: hidden;
  position: relative;
}
.bc-vis--tall { height: 420px; }

/* Placeholder visuel sophistiqué (remplacer par <img> réelle) */
.bc-vis-inner {
  position: absolute; inset: 0;
  transition: transform .55s ease;
  display: flex;
  align-items: flex-end;
  padding: 24px;
}
.vi--bxl  { background: linear-gradient(160deg, #0A1B2E 0%, #0F2840 40%, #0C1F30 100%); }
.vi--blc  { background: linear-gradient(160deg, #0D1E0B 0%, #152A11 40%, #0B1909 100%); }
.vi--next { background: linear-gradient(160deg, #1B1006 0%, #251706 40%, #160E04 100%); }

/* Grille texture interne */
.bc-vis-inner::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(196,153,42,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,153,42,.035) 1px, transparent 1px);
  background-size: 44px 44px;
}
/* Dégradé bas → obscurité pour le texte */
.bc-vis-inner::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(9,20,32,.82) 0%, transparent 55%);
}

/* Ville en typographie large */
.bc-city {
  font-family: var(--f-d);
  font-size: 11px;
  font-weight: 300;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: rgba(196,153,42,.45);
  position: relative;
  z-index: 1;
}

/* Calque d'info au survol */
.bc-reveal {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: rgba(9,20,32,.88);
  padding: 22px 24px;
  opacity: 0;
  transition: opacity .3s ease;
  z-index: 3;
}
.bc-reveal h4 {
  font-family: var(--f-d);
  font-size: 18px;
  font-weight: 400;
  color: var(--c-ivory);
  margin-bottom: 4px;
}
.bc-reveal p {
  font-size: 12px;
  color: rgba(247,243,236,.5);
  letter-spacing: 1px;
}

/* Badge statut */
.bc-badge {
  position: absolute; top: 16px; right: 16px;
  padding: 4px 12px;
  font-size: 9px; font-weight: 500;
  letter-spacing: 1.5px; text-transform: uppercase;
  z-index: 4;
}
.b-av { background: var(--c-green); color: #9FD4B3; }
.b-lo { background: rgba(8,16,26,.88); color: rgba(247,243,236,.5); }
.b-so { background: var(--c-brick); color: var(--c-ivory); }

/* Note au bas de la section */
.biens-note {
  text-align: center;
  margin-top: 40px;
}
.biens-note p {
  font-size: 13px;
  color: rgba(247,243,236,.28);
  margin-bottom: 18px;
  font-style: italic;
}

@media(max-width:860px){ .biens-grid { grid-template-columns:1fr 1fr; } .bc-vis--tall { height:320px; } }
@media(max-width:560px){ .biens-grid { grid-template-columns:1fr; } .biens-hd { flex-direction:column; align-items:flex-start; } }

/* ================================================================
   4. PHILOSOPHIE — 3 piliers
   Sections alternées claires, lisibles, sans entassement
   ================================================================ */
.philo {
  background: var(--c-ivory);
  padding: var(--gap) 0;
}
.philo-hd {
  text-align: center;
  margin-bottom: 64px;
}
.philo-hd .h2 { margin-top: 12px; }
.philo-hd .body-lg { max-width: 480px; margin: 12px auto 0; }

/* Grille piliers */
.pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--c-ivory2);
}
.pillar {
  background: var(--c-ivory);
  padding: 50px 44px 46px;
  transition: background var(--ease);
  position: relative;
}
.pillar:hover { background: var(--c-cream); }

/* Numéro discret en fond */
.p-bg-num {
  position: absolute;
  top: 20px; right: 24px;
  font-family: var(--f-d);
  font-size: 96px;
  font-weight: 300;
  color: rgba(196,153,42,.055);
  line-height: 1;
  user-select: none;
}

/* Icône-ligne sous le numéro */
.p-accent {
  width: 28px; height: 1px;
  background: var(--c-gold);
  margin-bottom: 20px;
}

.pillar h3 {
  font-family: var(--f-d);
  font-size: 26px;
  font-weight: 400;
  color: var(--c-navy);
  margin-bottom: 14px;
  line-height: 1.2;
}
.pillar p {
  font-size: 14px;
  font-weight: 300;
  line-height: 1.85;
  color: var(--c-gray);
}

@media(max-width:780px){ .pillars { grid-template-columns:1fr; } }

/* ================================================================
   5. SECTION PARTENAIRES
   Sobre, crédible — pas de rendement en homepage
   ================================================================ */
.partners {
  background: var(--c-navy);
  padding: var(--gap) 0;
  position: relative;
  overflow: hidden;
}
/* Lettre K filigranée */
.partners::before {
  content: 'K';
  position: absolute;
  font-family: var(--f-d);
  font-size: 480px;
  font-weight: 300;
  color: rgba(196,153,42,.022);
  top: 50%; right: -60px;
  transform: translateY(-50%);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.partners .wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 1;
}

.part-l {}
.part-l .eyebrow { margin-bottom: 18px; }
.part-l .h2 { color: var(--c-ivory); margin-bottom: 22px; }
.part-l .body-lg { color: rgba(247,243,236,.52); max-width: 420px; }

/* Citation encadrée */
.part-quote {
  margin-top: 32px;
  padding: 22px 24px;
  border-left: 2px solid rgba(196,153,42,.3);
  background: rgba(196,153,42,.04);
}
.part-quote p {
  font-family: var(--f-d);
  font-size: 17px;
  font-style: italic;
  font-weight: 300;
  color: rgba(247,243,236,.55);
  line-height: 1.65;
}

/* Colonne droite */
.part-r {
  border-left: 1px solid rgba(196,153,42,.1);
  padding-left: 72px;
}

/* Points d'engagement */
.part-pts { list-style: none; margin-bottom: 40px; }
.part-pts li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(196,153,42,.07);
  font-size: 14px;
  font-weight: 300;
  color: rgba(247,243,236,.6);
  line-height: 1.7;
}
.part-pts li::before {
  content: '';
  display: block;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--c-gold);
  flex-shrink: 0;
  margin-top: 8px;
}

/* CTA accès espace investisseur */
.part-cta {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.part-note {
  font-size: 11.5px;
  color: rgba(247,243,236,.24);
  font-style: italic;
}

@media(max-width:860px) {
  .partners .wrap { grid-template-columns:1fr; gap:44px; }
  .part-r { border-left:none; border-top:1px solid rgba(196,153,42,.1); padding-left:0; padding-top:40px; }
}

/* ================================================================
   6. DIFFÉRENCIATION
   Section claire — fond sable, texte centré sur ce qui distingue
   ================================================================ */
.diff {
  background: var(--c-sand);
  padding: var(--gap) 0;
}
.diff .wrap { max-width: 900px; }
.diff-hd { text-align: center; margin-bottom: 56px; }
.diff-hd .h2 { margin-top: 12px; }
.diff-hd .body-lg { max-width: 520px; margin: 12px auto 0; }

.diff-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
.diff-item { text-align: center; }
.diff-ic {
  width: 44px; height: 44px;
  border: 1px solid rgba(196,153,42,.35);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 18px;
}
.diff-ic svg { width: 16px; height: 16px; }
.diff-item h4 {
  font-family: var(--f-d);
  font-size: 20px;
  font-weight: 400;
  color: var(--c-navy);
  margin-bottom: 10px;
}
.diff-item p {
  font-size: 13.5px;
  font-weight: 300;
  line-height: 1.82;
  color: var(--c-gray);
}

@media(max-width:720px){ .diff-grid { grid-template-columns:1fr; gap:28px; } .diff-item { text-align:left; } .diff-ic { margin:0 0 14px; } }

/* ================================================================
   7. CTA FINAL
   ================================================================ */
.cta-f {
  background: var(--c-navy2);
  padding: var(--gap) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-f::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, rgba(196,153,42,.04) 0%, transparent 60%);
  pointer-events: none;
}
.cta-f .wrap { position: relative; z-index: 1; }
.cta-f .h2 { color: var(--c-ivory); margin: 12px 0 14px; }
.cta-f .body-lg { color: rgba(247,243,236,.44); max-width:420px; margin:0 auto 40px; }
.cta-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ================================================================
   FOOTER
   ================================================================ */
footer {
  background: #060E16;
  padding: 64px 0 0;
  border-top: 1px solid rgba(196,153,42,.1);
}

/* Marque centrée */
.ft-top {
  text-align: center;
  padding-bottom: 44px;
  border-bottom: 1px solid rgba(247,243,236,.05);
  margin-bottom: 48px;
}
.ft-name {
  font-family: var(--f-d);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 5px;
  color: var(--c-ivory);
  display: block;
  margin-bottom: 6px;
}
.ft-desc {
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(247,243,236,.48);
}

/* Colonnes */
.ft-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px;
  padding-bottom: 48px;
}
.ft-col h5 {
  font-size: 9px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--c-gold);
  margin-bottom: 16px;
}
.ft-col ul { list-style: none; }
.ft-col li { margin-bottom: 10px; }
.ft-col a {
  font-size: 13px;
  color: rgba(247,243,236,.62);
  text-decoration: none;
  transition: color var(--ease);
}
.ft-col a:hover { color: var(--c-gold2); }

/* Barre inférieure */
.ft-bot {
  border-top: 1px solid rgba(247,243,236,.08);
  padding: 20px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.ft-bot p { font-size: 11.5px; color: rgba(247,243,236,.5); }
.ft-links { display: flex; gap: 20px; }
.ft-links a { font-size: 11.5px; color: rgba(247,243,236,.5); text-decoration: none; transition: color var(--ease); }
.ft-links a:hover { color: var(--c-gold2); }

/* Séparateur SEO invisible mais indexé */
.ft-seo-text {
  font-size: 0;
  height: 0;
  overflow: hidden;
  position: absolute;
}

@media(max-width:860px){ .ft-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:500px){ .ft-grid { grid-template-columns:1fr; } .ft-bot { flex-direction:column; text-align:center; } .ft-links { justify-content:center; flex-wrap:wrap; } }

/* ================================================================
   ESPACE MEMBRE — login + dashboard (from espace-investisseur.html)
   ================================================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;height:100%}
body{font-family:var(--f-b);background:var(--c-navy);color:var(--c-dark);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;overflow-x:hidden}

/* Fond avec lumière ambiante */
body::before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 70% at 20% 80%,rgba(122,51,37,.07) 0%,transparent 55%),radial-gradient(ellipse 40% 50% at 85% 15%,rgba(196,153,42,.04) 0%,transparent 50%);z-index:0}

/* Barre supérieure légère */
.top-bar{position:fixed;top:0;left:0;right:0;height:60px;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid rgba(196,153,42,.08)}
.top-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.top-badge{width:28px;height:28px;border:1px solid rgba(196,153,42,.45);display:flex;align-items:center;justify-content:center}
.top-badge span{font-family:var(--f-d);font-size:16px;font-weight:500;color:var(--c-gold);line-height:1}
.top-name{font-family:var(--f-d);font-size:16px;font-weight:500;color:var(--c-ivory);letter-spacing:4px}
.top-back{font-size:10px;font-weight:400;letter-spacing:2px;text-transform:uppercase;color:rgba(247,243,236,.38);text-decoration:none;transition:color var(--ease)}
.top-back:hover{color:var(--c-gold)}
@media(max-width:480px){.top-bar{padding:0 20px}}

/* Wrapper principal centré */
.login-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:80px 20px 40px;position:relative;z-index:1}

/* Carte de connexion */
.login-card{width:100%;max-width:420px}

/* En-tête de la carte */
.login-hd{text-align:center;margin-bottom:40px}
.login-hd .monogram{width:56px;height:56px;border:1px solid rgba(196,153,42,.35);display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.login-hd .monogram span{font-family:var(--f-d);font-size:28px;font-weight:300;color:var(--c-gold);line-height:1}
.login-hd h1{font-family:var(--f-d);font-size:28px;font-weight:300;color:var(--c-ivory);margin-bottom:8px;line-height:1.2}
.login-hd p{font-size:13px;font-weight:300;color:rgba(247,243,236,.48);line-height:1.6}

/* Formulaire */
.login-form{background:rgba(247,243,235,.04);border:1px solid rgba(196,153,42,.12);padding:36px}
.form-field{margin-bottom:20px}
.form-field label{display:block;font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:rgba(247,243,236,.55);margin-bottom:8px}
.form-field input{width:100%;background:rgba(247,243,235,.06);border:1px solid rgba(196,153,42,.18);padding:13px 16px;font-family:var(--f-b);font-size:14px;font-weight:300;color:var(--c-ivory);transition:border-color var(--ease),background var(--ease)}
.form-field input:focus{outline:none;border-color:rgba(196,153,42,.55);background:rgba(247,243,235,.08)}
.form-field input::placeholder{color:rgba(247,243,236,.25);font-weight:300}

/* Lien mot de passe oublié */
.forgot{display:block;text-align:right;font-size:11.5px;color:rgba(247,243,236,.35);text-decoration:none;margin-top:-12px;margin-bottom:24px;transition:color var(--ease)}
.forgot:hover{color:var(--c-gold)}

/* Bouton de connexion */
.login-btn{width:100%;padding:16px;background:var(--c-gold);color:var(--c-navy);font-family:var(--f-b);font-size:10.5px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;border:none;cursor:pointer;transition:all var(--ease);display:flex;align-items:center;justify-content:center;gap:10px}
.login-btn:hover{background:var(--c-gold2);transform:translateY(-1px);box-shadow:0 8px 20px rgba(196,153,42,.25)}
.login-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}

/* Message d'erreur */
.login-error{margin-top:16px;padding:12px 16px;background:rgba(139,45,45,.15);border:1px solid rgba(139,45,45,.3);display:none}
.login-error p{font-size:13px;font-weight:300;color:rgba(247,200,200,.8);line-height:1.5}

/* Séparateur */
.login-sep{height:1px;background:rgba(196,153,42,.1);margin:28px 0}

/* Accès non membre */
.no-access{text-align:center}
.no-access p{font-size:13px;font-weight:300;color:rgba(247,243,236,.38);line-height:1.6;margin-bottom:12px}
.no-access a{font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--c-gold);text-decoration:none;transition:color var(--ease);display:inline-flex;align-items:center;gap:8px}
.no-access a:hover{color:var(--c-gold2)}
.no-access a::after{content:'→';font-size:12px}

/* Pied de carte */
.login-footer{margin-top:28px;text-align:center}
.login-footer p{font-size:11.5px;font-weight:300;color:rgba(247,243,236,.28);line-height:1.6}

/* ── DASHBOARD (affiché après connexion) ── */
.dashboard{display:none;flex:1;flex-direction:column;position:relative;z-index:1;padding-top:60px}

/* Header dashboard */
.dash-header{background:rgba(15,32,48,.8);border-bottom:1px solid rgba(196,153,42,.1);padding:28px 40px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.dash-welcome h2{font-family:var(--f-d);font-size:24px;font-weight:300;color:var(--c-ivory);margin-bottom:4px}
.dash-welcome p{font-size:12.5px;font-weight:300;color:rgba(247,243,236,.45)}
.dash-actions{display:flex;align-items:center;gap:14px}
.dash-btn{padding:9px 20px;font-family:var(--f-b);font-size:10px;font-weight:500;letter-spacing:1.8px;text-transform:uppercase;text-decoration:none;cursor:pointer;border:none;transition:all var(--ease)}
.dash-btn-outline{background:transparent;color:rgba(247,243,236,.55);border:1px solid rgba(247,243,236,.18)}
.dash-btn-outline:hover{border-color:rgba(247,243,236,.4);color:var(--c-ivory)}
.dash-btn-logout{background:transparent;color:rgba(247,243,236,.35);border:1px solid rgba(247,243,236,.1);cursor:pointer;font-family:var(--f-b);font-size:10px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;padding:9px 16px;transition:all var(--ease)}
.dash-btn-logout:hover{color:rgba(247,243,236,.6);border-color:rgba(247,243,236,.25)}

/* Grille dashboard */
.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:rgba(196,153,42,.06);padding:2px;margin:2px 0}
.dash-stat{background:rgba(15,32,48,.6);padding:28px 24px}
.dash-stat-label{font-size:9.5px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:rgba(196,153,42,.55);margin-bottom:8px}
.dash-stat-val{font-family:var(--f-d);font-size:32px;font-weight:300;color:var(--c-ivory);line-height:1}
.dash-stat-sub{font-size:12px;font-weight:300;color:rgba(247,243,236,.35);margin-top:4px}

/* Modules dashboard */
.dash-modules{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:rgba(196,153,42,.06);padding:2px;flex:1}
.dash-module{background:rgba(11,24,36,.85);padding:36px 36px 32px;transition:background var(--ease);cursor:pointer}
.dash-module:hover{background:rgba(15,32,48,.9)}
.dash-module-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px}
.dash-module-ic{width:36px;height:36px;border:1px solid rgba(196,153,42,.25);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dash-module-ic svg{width:14px;height:14px}
.dash-module-badge{padding:3px 9px;font-size:9px;font-weight:500;letter-spacing:1px;text-transform:uppercase}
.badge-new{background:rgba(196,153,42,.15);color:var(--c-gold)}
.badge-ok{background:rgba(26,69,53,.2);color:#9FD4B3}
.badge-lock{background:rgba(247,243,236,.06);color:rgba(247,243,236,.35)}
.dash-module h3{font-family:var(--f-d);font-size:20px;font-weight:400;color:var(--c-ivory);margin-bottom:8px;line-height:1.2}
.dash-module p{font-size:13px;font-weight:300;color:rgba(247,243,236,.42);line-height:1.7}
.dash-module-link{font-size:10px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-gold);margin-top:18px;display:flex;align-items:center;gap:6px;transition:gap var(--ease)}
.dash-module:hover .dash-module-link{gap:10px}
.dash-module-link::after{content:'→';font-size:12px}

/* Note de démonstration */
.dash-demo-note{background:rgba(196,153,42,.08);border:1px solid rgba(196,153,42,.2);padding:14px 20px;margin:2px;display:flex;align-items:center;gap:12px}
.dash-demo-note p{font-size:12.5px;font-weight:300;color:rgba(247,243,236,.55);line-height:1.5}
.dash-demo-note strong{color:var(--c-gold);font-weight:500}

@media(max-width:780px){.dash-grid{grid-template-columns:repeat(2,1fr)}.dash-modules{grid-template-columns:1fr}.dash-header{padding:20px 24px}}
@media(max-width:480px){.dash-grid{grid-template-columns:1fr}.dash-stat{padding:20px}.top-bar{padding:0 16px}}

/* ================================================================
   PARTENAIRES — hero/process/form/faq (from partenaires.html)
   ================================================================ */
   1. HERO PARTENAIRES
   Fond navy, sobre, dense en information qualitative
   ================================================================ */
.hero-p {
  background: var(--c-navy);
  padding: 148px 0 88px;
  position: relative;
  overflow: hidden;
}
/* Lumière ambiante subtile */
.hero-p::before {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 50% 60% at 5% 80%, rgba(122,51,37,.07) 0%, transparent 55%),
    radial-gradient(ellipse 40% 50% at 95% 10%, rgba(196,153,42,.04) 0%, transparent 50%);
}
/* K filigrane fond */
.hero-p::after {
  content: 'K';
  position: absolute;
  font-family: var(--f-d);
  font-size: 520px;
  font-weight: 300;
  color: rgba(196,153,42,.018);
  bottom: -80px; right: -40px;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.hero-p .wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  position: relative;
  z-index: 1;
}

/* Colonne gauche */
.hero-p-l .eyebrow { margin-bottom: 20px; }
.hero-p-l .h1 { color: var(--c-ivory); margin-bottom: 28px; }
.hero-p-l .h1 em { font-style: italic; color: var(--c-gold2); }
.hero-p-l p {
  font-size: 15px;
  font-weight: 300;
  line-height: 1.92;
  color: rgba(247,243,236,.58);
  max-width: 400px;
  margin-bottom: 40px;
}
.hero-p-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

/* Colonne droite — résumé structuré */
.hero-p-r {
  border-left: 1px solid rgba(196,153,42,.12);
  padding-left: 60px;
  padding-bottom: 8px;
}
.hero-p-r-label {
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(196,153,42,.5);
  margin-bottom: 28px;
  display: block;
}

/* Bloc conditionnel */
.hero-cond {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.hero-cond-item {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(196,153,42,.08);
  align-items: start;
}
.hero-cond-item:last-child { border-bottom: none; }
.hci-lbl {
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(196,153,42,.55);
  padding-top: 2px;
}
.hci-val {
  font-family: var(--f-d);
  font-size: 16px;
  font-weight: 400;
  color: var(--c-ivory);
  line-height: 1.45;
}
.hci-sub {
  font-size: 12px;
  font-weight: 300;
  color: rgba(247,243,236,.35);
  margin-top: 3px;
  line-height: 1.5;
}

@media(max-width:900px){
  .hero-p .wrap { grid-template-columns:1fr; gap:48px; }
  .hero-p-r { border-left:none; border-top:1px solid rgba(196,153,42,.12); padding-left:0; padding-top:40px; }
  .hero-p { padding: 130px 0 72px; }
}

/* ================================================================
   2. FONCTIONNEMENT — explication sobre et précise
   ================================================================ */
.fonct {
  background: var(--c-cream);
  padding: var(--gap) 0;
}
.fonct .wrap {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 80px;
  align-items: start;
}
.fonct-l .eyebrow { margin-bottom: 14px; }
.fonct-l .h2 { margin-bottom: 20px; color: var(--c-navy); }
.fonct-l p { color: var(--c-gray); font-size: 15px; font-weight: 300; line-height: 1.88; }
.fonct-l .rule { margin: 20px 0; }

/* Étapes numérotées */
.steps {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.step {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid var(--c-ivory2);
  align-items: start;
}
.step:last-child { border-bottom: none; }
.step-n {
  font-family: var(--f-d);
  font-size: 36px;
  font-weight: 300;
  color: rgba(196,153,42,.22);
  line-height: 1;
  padding-top: 2px;
}
.step-body h4 {
  font-family: var(--f-d);
  font-size: 19px;
  font-weight: 400;
  color: var(--c-navy);
  margin-bottom: 8px;
  line-height: 1.2;
}
.step-body p {
  font-size: 13.5px;
  font-weight: 300;
  line-height: 1.82;
  color: var(--c-gray);
}

@media(max-width:860px){ .fonct .wrap { grid-template-columns:1fr; gap:44px; } }

/* ================================================================
   3. PROFIL RECHERCHÉ — section claire sur fond sable
   ================================================================ */
.profil {
  background: var(--c-sand);
  padding: var(--gap) 0;
}
.profil-hd {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
  margin-bottom: 56px;
}
.profil-hd-l .h2 { margin-top: 12px; color: var(--c-navy); }
.profil-hd-r p { font-size: 15px; font-weight: 300; line-height: 1.88; color: var(--c-gray); }
.profil-hd-r p + p { margin-top: 14px; }

/* Grille de critères */
.crit-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: rgba(196,153,42,.1);
}
.crit {
  background: var(--c-sand);
  padding: 36px 32px;
  transition: background var(--ease);
}
.crit:hover { background: #EAE2D6; }
.crit-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.crit-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--c-gold);
  flex-shrink: 0;
  opacity: .7;
}
.crit h4 {
  font-family: var(--f-d);
  font-size: 18px;
  font-weight: 400;
  color: var(--c-navy);
  line-height: 1.2;
}
.crit p {
  font-size: 13.5px;
  font-weight: 300;
  line-height: 1.82;
  color: var(--c-gray);
}

/* Note discrète en dessous */
.profil-note {
  margin-top: 28px;
  text-align: center;
}
.profil-note p {
  font-family: var(--f-d);
  font-size: 15px;
  font-style: italic;
  font-weight: 300;
  color: var(--c-gray2);
}

@media(max-width:860px){ .profil-hd { grid-template-columns:1fr; gap:28px; } .crit-grid { grid-template-columns:1fr; } }

/* ================================================================
   4. ESPACE MEMBRE — encart de valeur
   Fond navy, mise en avant de l'espace privé
   ================================================================ */
.espace {
  background: var(--c-navy2);
  padding: var(--gap) 0;
  position: relative;
  overflow: hidden;
}
.espace::before {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 55% 65% at 80% 50%, rgba(196,153,42,.04) 0%, transparent 55%);
}
.espace .wrap {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.espace-l .eyebrow { margin-bottom: 18px; }
.espace-l .h2 { color: var(--c-ivory); margin-bottom: 22px; }
.espace-l p { font-size: 15px; font-weight: 300; line-height: 1.88; color: rgba(247,243,236,.52); max-width: 380px; }

/* Fonctionnalités de l'espace privé */
.espace-feats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: rgba(196,153,42,.07);
}
.feat {
  background: rgba(15,32,48,.7);
  padding: 28px 26px;
  transition: background var(--ease);
}
.feat:hover { background: rgba(22,43,64,.8); }
.feat-ic {
  width: 32px; height: 32px;
  border: 1px solid rgba(196,153,42,.25);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
}
.feat-ic svg { width: 14px; height: 14px; }
.feat h5 {
  font-family: var(--f-d);
  font-size: 17px;
  font-weight: 400;
  color: var(--c-ivory);
  margin-bottom: 7px;
  line-height: 1.2;
}
.feat p {
  font-size: 12.5px;
  font-weight: 300;
  color: rgba(247,243,236,.42);
  line-height: 1.7;
}

/* Note d'accès conditionnel */
.espace-note {
  margin-top: 22px;
  font-size: 12px;
  color: rgba(247,243,236,.24);
  font-style: italic;
  line-height: 1.6;
}

@media(max-width:860px){
  .espace .wrap { grid-template-columns:1fr; gap:44px; }
  .espace-feats { grid-template-columns:1fr; }
}

/* ================================================================
   5. FORMULAIRE DE DEMANDE D'ACCÈS
   Section ivoire sobre — formulaire minimaliste et crédible
   ================================================================ */
.demande {
  background: var(--c-ivory);
  padding: var(--gap) 0;
}
.demande .wrap {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 80px;
  align-items: start;
}

/* Colonne gauche — texte */
.dem-l .eyebrow { margin-bottom: 14px; }
.dem-l .h2 { color: var(--c-navy); margin-bottom: 18px; }
.dem-l p { font-size: 15px; font-weight: 300; line-height: 1.88; color: var(--c-gray); }
.dem-l p + p { margin-top: 14px; }
.dem-l .rule { margin: 20px 0; }

/* Encart de confiance */
.dem-trust {
  margin-top: 28px;
  padding: 20px 22px;
  border-left: 2px solid rgba(196,153,42,.28);
  background: rgba(196,153,42,.04);
}
.dem-trust p {
  font-family: var(--f-d);
  font-size: 15px;
  font-style: italic;
  font-weight: 300;
  color: var(--c-gray);
  line-height: 1.65;
}

/* Formulaire */
.dem-form {
  background: var(--c-cream);
  padding: 44px 44px 40px;
  border: 1px solid var(--c-ivory2);
}
.form-title {
  font-family: var(--f-d);
  font-size: 22px;
  font-weight: 400;
  color: var(--c-navy);
  margin-bottom: 8px;
}
.form-subtitle {
  font-size: 13px;
  font-weight: 300;
  color: var(--c-gray2);
  margin-bottom: 32px;
  line-height: 1.6;
}

/* Grille de champs */
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 18px;
}
.form-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 18px; }
.form-field label {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--c-gray);
}
.form-field input,
.form-field select,
.form-field textarea {
  background: var(--c-ivory);
  border: 1px solid var(--c-ivory2);
  border-radius: 0;
  padding: 13px 16px;
  font-family: var(--f-b);
  font-size: 14px;
  font-weight: 300;
  color: var(--c-dark);
  transition: border-color var(--ease), box-shadow var(--ease);
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  outline: none;
  border-color: rgba(196,153,42,.55);
  box-shadow: 0 0 0 3px rgba(196,153,42,.07);
}
.form-field input::placeholder,
.form-field textarea::placeholder { color: var(--c-gray2); font-weight: 300; }
.form-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A847C' stroke-width='1.2' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 36px; cursor: pointer; }
.form-field textarea { resize: vertical; min-height: 100px; }

/* Séparateur dans le formulaire */
.form-sep {
  height: 1px;
  background: var(--c-ivory2);
  margin: 24px 0;
}

/* Consentement */
.form-consent {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 28px;
}
.form-consent input[type="checkbox"] {
  width: 16px; height: 16px;
  flex-shrink: 0;
  margin-top: 2px;
  accent-color: var(--c-gold);
  cursor: pointer;
}
.form-consent label {
  font-size: 12.5px;
  font-weight: 300;
  color: var(--c-gray2);
  line-height: 1.65;
  cursor: pointer;
}
.form-consent a { color: var(--c-gold); text-decoration: none; }
.form-consent a:hover { color: var(--c-gold2); }

/* Bouton de soumission */
.form-submit {
  width: 100%;
  padding: 16px;
  font-size: 10.5px;
  letter-spacing: 2.5px;
}

/* Message de confirmation (affiché après envoi via JS) */
.form-confirm {
  display: none;
  text-align: center;
  padding: 32px;
  background: rgba(26,69,53,.06);
  border: 1px solid rgba(26,69,53,.2);
}
.form-confirm p {
  font-family: var(--f-d);
  font-size: 18px;
  font-weight: 400;
  color: var(--c-green);
  margin-bottom: 8px;
}
.form-confirm span {
  font-size: 13px;
  font-weight: 300;
  color: var(--c-gray2);
  line-height: 1.7;
}

/* Note RGPD sous le formulaire */
.form-rgpd {
  margin-top: 18px;
  font-size: 11.5px;
  font-weight: 300;
  color: var(--c-gray2);
  line-height: 1.65;
}
.form-rgpd a { color: var(--c-gold); text-decoration: none; }

@media(max-width:940px){ .demande .wrap { grid-template-columns:1fr; gap:44px; } }
@media(max-width:560px){ .form-row { grid-template-columns:1fr; } .dem-form { padding:28px 24px; } }

/* ================================================================
   6. FAQ INVESTISSEURS
   ================================================================ */
.faq-inv {
  background: var(--c-navy);
  padding: var(--gap) 0;
}
.faq-inv-hd {
  text-align: center;
  margin-bottom: 52px;
}
.faq-inv-hd .h2 { color: var(--c-ivory); margin-top: 12px; }
.faq-inv-hd .body-md { color: rgba(247,243,236,.42); max-width:460px; margin:12px auto 0; }

/* Colonnes FAQ */
.faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 40px;
}
.faq-item {
  border-bottom: 1px solid rgba(247,243,236,.07);
}
details { }
summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 20px 0;
  cursor: pointer;
  font-family: var(--f-d);
  font-size: 17px;
  font-weight: 400;
  color: var(--c-ivory);
  list-style: none;
  user-select: none;
  line-height: 1.3;
}
summary::-webkit-details-marker { display: none; }
.faq-ic {
  width: 20px; height: 20px;
  border: 1px solid rgba(196,153,42,.3);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  color: var(--c-gold);
  flex-shrink: 0;
  transition: all var(--ease);
}
details[open] .faq-ic { background:var(--c-gold); color:var(--c-navy); border-color:var(--c-gold); transform:rotate(45deg); }
.faq-a {
  padding: 0 0 20px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.85;
  color: rgba(247,243,236,.48);
}

@media(max-width:760px){ .faq-grid { grid-template-columns:1fr; } }

/* ================================================================
   CTA FINAL
   ================================================================ */
.cta-f {
  background: var(--c-navy2);
  padding: var(--gap) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-f::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 70% at 50% 100%, rgba(196,153,42,.04) 0%, transparent 60%);
  pointer-events: none;
}
.cta-f .wrap { position:relative; z-index:1; }
.cta-f .h2 { color:var(--c-ivory); margin:12px 0 14px; }
.cta-f .body-lg { color:rgba(247,243,236,.44); max-width:420px; margin:0 auto 40px; }
.cta-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ================================================================
   FOOTER — identique à index.html
   ================================================================ */
footer { background:#060E16; padding:64px 0 0; border-top:1px solid rgba(196,153,42,.1); }
.ft-top { text-align:center; padding-bottom:44px; border-bottom:1px solid rgba(247,243,236,.08); margin-bottom:48px; }
.ft-name { font-family:var(--f-d); font-size:24px; font-weight:500; letter-spacing:5px; color:var(--c-ivory); display:block; margin-bottom:6px; }
.ft-desc { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(247,243,236,.48); }
.ft-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:36px; padding-bottom:48px; }
.ft-col h5 { font-size:9px; letter-spacing:2.5px; text-transform:uppercase; color:var(--c-gold); margin-bottom:16px; }
.ft-col ul { list-style:none; }
.ft-col li { margin-bottom:10px; }
.ft-col a { font-size:13px; color:rgba(247,243,236,.62); text-decoration:none; transition:color var(--ease); }
.ft-col a:hover { color:var(--c-gold2); }
.ft-bot { border-top:1px solid rgba(247,243,236,.08); padding:20px 0; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.ft-bot p { font-size:11.5px; color:rgba(247,243,236,.5); }
.ft-links { display:flex; gap:20px; }
.ft-links a { font-size:11.5px; color:rgba(247,243,236,.5); text-decoration:none; transition:color var(--ease); }
.ft-links a:hover { color:var(--c-gold2); }
@media(max-width:860px){ .ft-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:500px){ .ft-grid { grid-template-columns:1fr; } .ft-bot { flex-direction:column; text-align:center; } .ft-links { justify-content:center; flex-wrap:wrap; } }

/* ================================================================
   LÉGAL — mentions, RGPD, confidentialité (from mentions-legales.html)
   ================================================================ */
.legal-hero{background:var(--c-navy);padding:130px 0 60px}
.legal-hero h1{font-family:var(--f-d);font-size:clamp(34px,4vw,52px);font-weight:300;color:var(--c-ivory);margin-top:12px;line-height:1.1}
.legal-eyebrow{font-size:9.5px;font-weight:500;letter-spacing:3.5px;text-transform:uppercase;color:var(--c-gold);display:block}
.legal-content{padding:72px 0 96px;background:var(--c-cream)}
.legal-content section{margin-bottom:52px;max-width:860px;margin-left:auto;margin-right:auto}
.legal-content section:last-child{margin-bottom:0}
.legal-content h2{font-family:var(--f-d);font-size:22px;font-weight:400;color:var(--c-navy);margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--c-ivory2)}
.legal-content h3{font-family:var(--f-d);font-size:18px;font-weight:400;color:var(--c-navy);margin-bottom:12px;margin-top:24px}
.legal-content p{font-size:14.5px;font-weight:300;line-height:1.88;color:var(--c-gray);margin-bottom:14px}
.legal-content p:last-child{margin-bottom:0}
.legal-content ul{list-style:none;margin-bottom:14px}
.legal-content ul li{font-size:14.5px;font-weight:300;line-height:1.8;color:var(--c-gray);padding:4px 0 4px 16px;position:relative}
.legal-content ul li::before{content:'';display:block;width:4px;height:4px;border-radius:50%;background:var(--c-gold);position:absolute;left:0;top:11px}
.legal-content a{color:var(--c-gold);text-decoration:none}
.legal-content a:hover{color:var(--c-gold2)}
.legal-block{background:var(--c-ivory);border:1px solid var(--c-ivory2);padding:28px 32px;margin-bottom:20px}
.legal-block table{width:100%;border-collapse:collapse}
.legal-block td{padding:10px 0;border-bottom:1px solid var(--c-ivory2);font-size:14px;vertical-align:top}
.legal-block td:first-child{font-size:10px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-gray2);width:160px;padding-top:12px}
.legal-block td:last-child{color:var(--c-dark);font-weight:300;line-height:1.5}
.legal-block tr:last-child td{border-bottom:none}

/* ================================================================
   PAGES INTERNES — page-hero, filters, biens listing (from biens.html)
   ================================================================ */
.page-hero{background:var(--c-navy);padding:130px 0 72px;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 55% 65% at 5% 80%,rgba(122,51,37,.07) 0%,transparent 55%),
             radial-gradient(ellipse 35% 45% at 95% 10%,rgba(196,153,42,.04) 0%,transparent 50%)}
.page-hero .wrap{position:relative;z-index:1}
.page-hero .h1{color:var(--c-ivory);margin-top:16px}
.page-hero .h1 em{font-style:italic;color:var(--c-gold2)}
.page-hero p{font-size:15px;font-weight:300;line-height:1.9;color:rgba(247,243,236,.58);max-width:520px;margin-top:18px}

.filters{background:var(--c-cream);padding:28px 0;border-bottom:1px solid var(--c-ivory2);position:sticky;top:72px;z-index:100}
.filters .wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.filter-btn{padding:8px 18px;font-family:var(--f-b);font-size:10px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;background:transparent;border:1px solid var(--c-ivory2);color:var(--c-gray);cursor:pointer;transition:all var(--ease);text-decoration:none;display:inline-block}
.filter-btn:hover{border-color:rgba(196,153,42,.4);color:var(--c-navy)}
.filter-btn.active{background:var(--c-navy);color:var(--c-ivory);border-color:var(--c-navy)}
.filter-count{font-size:11px;color:var(--c-gray2);margin-left:auto}

.biens-section{background:var(--c-ivory);padding:var(--gap) 0}
.biens-section .biens-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.bien-card{background:var(--c-cream);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.bien-card:hover{transform:translateY(-4px);box-shadow:0 16px 44px rgba(11,24,36,.1)}
.bien-card .bc-vis{height:220px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:20px 22px}
.bien-card .bc-vis--photo{padding:0;background:#091420}
.bien-card .bc-vis--photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.bien-card:hover .bc-vis--photo img{transform:scale(1.035)}
.bien-card .bc-vis--photo::before{display:none}
.bc-vis--bxl{background:linear-gradient(145deg,#0E1E32 0%,#152D45 55%,#09162A 100%)}
.bc-vis--blc{background:linear-gradient(145deg,#111F0E 0%,#1A3014 55%,#0E1A0C 100%)}
.bc-vis--medical{background:linear-gradient(145deg,#0F1F2E 0%,#15324A 55%,#0A1828 100%)}
.bc-vis--commercial{background:linear-gradient(145deg,#1B0F0A 0%,#2F1B0E 55%,#150A05 100%)}
.bc-vis--dark{background:linear-gradient(145deg,#18100A 0%,#221608 55%,#130C05 100%)}
.bien-card .bc-vis::before{content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(196,153,42,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(196,153,42,.04) 1px,transparent 1px),radial-gradient(circle at 72% 28%,rgba(196,153,42,.16) 0 1px,transparent 2px);
  background-size:44px 44px,44px 44px,120px 120px}
.bien-card .bc-vis::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(9,20,32,.75) 0%,transparent 55%)}
.bien-card .bc-city{font-family:var(--f-d);font-size:11px;font-weight:300;letter-spacing:5px;text-transform:uppercase;color:rgba(196,153,42,.45);position:relative;z-index:1}
.bien-card .bc-badge{position:absolute;top:14px;right:14px;padding:4px 11px;font-size:9px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;z-index:2}
.b-av{background:var(--c-green);color:#9FD4B3}
.b-lo{background:rgba(8,16,26,.88);color:rgba(247,243,236,.62)}
.b-lt{background:rgba(8,16,26,.88);color:rgba(247,243,236,.62)}
.b-so{background:var(--c-brick);color:var(--c-ivory)}
.b-rq{background:rgba(196,153,42,.88);color:var(--c-navy)}
.bc-body{padding:24px 24px 28px;flex:1;display:flex;flex-direction:column}
.bc-type{font-size:9.5px;letter-spacing:2px;text-transform:uppercase;color:var(--c-gold);margin-bottom:5px}
.bc-name{font-family:var(--f-d);font-size:21px;font-weight:400;color:var(--c-navy);margin-bottom:5px;line-height:1.2}
.bc-loc{font-size:12.5px;color:var(--c-gray);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.bc-loc::before{content:'';display:block;width:4px;height:4px;border-radius:50%;background:var(--c-gold);flex-shrink:0}
.bc-note{font-size:12.5px;color:var(--c-gray);font-style:italic;padding:9px 13px;background:var(--c-ivory2);margin-bottom:14px;line-height:1.55}
.bc-meta{display:flex;gap:18px;padding-top:12px;border-top:1px solid var(--c-ivory2);margin-bottom:18px;flex-wrap:wrap}
.bc-m{font-size:12px;color:var(--c-gray)}
.bc-m strong{display:block;font-size:14px;font-weight:500;color:var(--c-navy);margin-bottom:1px}
.bc-cta{margin-top:auto}
.no-results{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--c-gray2)}
.no-results p{font-family:var(--f-d);font-size:22px;font-weight:300}
.legend{background:var(--c-sand);padding:44px 0;border-top:1px solid var(--c-ivory2)}
.legend-inner{display:flex;gap:28px;flex-wrap:wrap;align-items:flex-start}
.legend h4{font-family:var(--f-d);font-size:16px;font-weight:400;color:var(--c-navy);margin-bottom:16px;width:100%}
.legend-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--c-gray)}
.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
@media(max-width:900px){.biens-section .biens-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.biens-section .biens-grid{grid-template-columns:1fr}}

/* About — histoire, valeurs, legal-sec (from apropos.html) */
.histoire{background:var(--c-cream);padding:var(--gap) 0}
.histoire .wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.hist-l p{font-size:14.5px;font-weight:300;line-height:1.9;color:var(--c-gray);margin-bottom:14px}
.timeline{display:flex;flex-direction:column;gap:24px;padding-left:24px;border-left:1px solid var(--c-ivory2)}
.tl-item{position:relative}
.tl-item::before{content:'';position:absolute;left:-29px;top:6px;width:9px;height:9px;border:1px solid var(--c-gold);background:var(--c-cream);border-radius:50%}
.tl-year{font-family:var(--f-d);font-size:14px;color:var(--c-gold);letter-spacing:2px;margin-bottom:6px}
.tl-item h4{font-family:var(--f-d);font-size:20px;font-weight:400;color:var(--c-navy);margin-bottom:6px}
.tl-item p{font-size:13.5px;font-weight:300;line-height:1.7;color:var(--c-gray)}
.valeurs{background:var(--c-ivory);padding:var(--gap) 0}
.valeurs-hd{text-align:center;margin-bottom:48px;max-width:680px;margin-left:auto;margin-right:auto}
.valeurs-hd h2{margin-top:14px;margin-bottom:18px}
.valeurs-hd p{font-size:14.5px;font-weight:300;color:var(--c-gray);line-height:1.85}
.val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.val{background:var(--c-cream);padding:38px 30px;position:relative;border-top:1px solid var(--c-ivory2)}
.val-num{font-family:var(--f-d);font-size:38px;font-weight:300;color:var(--c-gold);opacity:.32;line-height:1;margin-bottom:14px}
.val-rule{width:24px;height:1px;background:var(--c-gold);margin-bottom:14px}
.val h4{font-family:var(--f-d);font-size:24px;font-weight:400;color:var(--c-navy);margin-bottom:12px}
.val p{font-size:13.5px;font-weight:300;line-height:1.78;color:var(--c-gray)}
.legal-sec{background:var(--c-sand);padding:var(--gap) 0}
.legal-sec .wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.leg-l p{font-size:14.5px;font-weight:300;line-height:1.9;color:var(--c-gray);margin-bottom:14px;margin-top:14px}
.leg-card{background:var(--c-cream);padding:32px 36px;border:1px solid var(--c-ivory2)}
.leg-card h4{font-family:var(--f-d);font-size:20px;font-weight:400;color:var(--c-navy);margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--c-ivory2)}
.leg-row{display:flex;padding:10px 0;border-bottom:1px solid var(--c-ivory2);gap:16px}
.leg-row:last-child{border-bottom:none}
.leg-lbl{font-size:10px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-gray2);min-width:120px;padding-top:2px}
.leg-val{font-size:13.5px;font-weight:300;color:var(--c-dark);line-height:1.5;flex:1}
.cta-f{background:var(--c-navy);padding:var(--gap) 0;text-align:center;color:var(--c-ivory)}
.cta-f .h2{color:var(--c-ivory);margin:14px 0 18px}
.cta-f p{font-size:14.5px;color:rgba(247,243,236,.62);max-width:520px;margin:0 auto 32px;line-height:1.85}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
@media(max-width:900px){.histoire .wrap,.legal-sec .wrap{grid-template-columns:1fr}.val-grid{grid-template-columns:1fr}}

/* Contact — contact-sec, topics, form (from contact.html) */
.contact-sec{background:var(--c-ivory);padding:var(--gap) 0}
.contact-sec .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.ct-l h2{margin-top:14px;margin-bottom:18px}
.ct-l > p{font-size:14.5px;font-weight:300;line-height:1.9;color:var(--c-gray);margin-bottom:36px}
.ct-topics{display:flex;flex-direction:column;gap:22px}
.ct-topic{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;background:var(--c-cream);border-left:2px solid var(--c-ivory2);transition:border-color var(--ease)}
.ct-topic:hover{border-left-color:var(--c-gold)}
.ct-topic-dot{width:8px;height:8px;border-radius:50%;background:var(--c-gold);margin-top:8px;flex-shrink:0}
.ct-topic-body h5{font-family:var(--f-d);font-size:16px;font-weight:400;color:var(--c-navy);margin-bottom:6px}
.ct-topic-body p{font-size:13px;font-weight:300;line-height:1.7;color:var(--c-gray)}
.ct-topic-body a{color:var(--c-gold);text-decoration:none}
.ct-topic-body a:hover{color:var(--c-gold2)}
.ct-form{background:var(--c-cream);padding:40px 38px;border-top:2px solid var(--c-gold)}
.ct-form .form-title{font-family:var(--f-d);font-size:22px;font-weight:400;color:var(--c-navy);margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid var(--c-ivory2)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}
.form-field label{font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--c-gray2)}
.form-field input,.form-field select,.form-field textarea{font-family:var(--f-b);font-size:14px;font-weight:300;color:var(--c-dark);background:var(--c-ivory);border:1px solid var(--c-ivory2);padding:12px 14px;transition:border-color var(--ease)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:rgba(196,153,42,.55)}
.form-field input::placeholder,.form-field textarea::placeholder{color:var(--c-gray2);font-weight:300}
.form-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A847C' stroke-width='1.2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:36px;cursor:pointer;-webkit-appearance:none;appearance:none}
.form-field textarea{resize:vertical;min-height:130px}
.form-consent{display:flex;gap:10px;align-items:flex-start;margin-bottom:24px;font-size:12.5px;color:var(--c-gray);line-height:1.6}
.form-consent input{width:auto;flex-shrink:0;margin-top:2px}
.form-consent a{color:var(--c-gold);text-decoration:none}
.form-consent a:hover{color:var(--c-gold2)}
.form-submit{width:100%;justify-content:center}
.form-confirm{display:none;padding:20px;background:rgba(26,69,53,.08);border:1px solid rgba(26,69,53,.2);color:var(--c-green);margin-bottom:18px}
.form-confirm p{font-family:var(--f-d);font-size:18px;font-weight:400;color:var(--c-green);margin-bottom:4px}
.form-confirm span{font-size:13px;font-weight:300;color:var(--c-gray)}
.form-rgpd{font-size:11.5px;color:var(--c-gray2);margin-top:18px;line-height:1.7}
.form-rgpd a{color:var(--c-gold);text-decoration:none}
@media(max-width:860px){.contact-sec .wrap{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}}

/* ================================================================
   RESPONSIVE — mobile menus + table scroll + grid stacks
   ================================================================ */

/* Hard safety net: prevent any page-level horizontal scrolling on mobile.
   If a specific container needs horizontal scroll (e.g. a wide table),
   wrap it in .adm-table-scroll / .adm-table-wrap which has overflow-x:auto. */
@media(max-width:900px){
  html,body{max-width:100%;overflow-x:hidden!important}
}

/* Public nav: burger button (hidden by default, shown on mobile) */
.nav-burger{display:none;background:transparent;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:5px;flex-shrink:0;margin-left:auto}
.nav-burger span{display:block;width:24px;height:1.5px;background:var(--c-ivory);transition:transform .3s ease,opacity .3s ease}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.nav-mobile{position:fixed;top:72px;left:0;right:0;bottom:0;background:rgba(9,19,30,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:24px 28px;display:none;flex-direction:column;gap:6px;z-index:899;overflow-y:auto}
.nav-mobile.open{display:flex}
.nav-mobile a{font-family:var(--f-d);font-size:22px;font-weight:300;color:var(--c-ivory);text-decoration:none;padding:14px 8px;border-bottom:1px solid rgba(196,153,42,.08);transition:color var(--ease)}
.nav-mobile a:hover,.nav-mobile a:active{color:var(--c-gold)}
.nav-mobile-sep{height:1px;background:linear-gradient(to right,transparent,rgba(196,153,42,.3),transparent);margin:16px 0 8px}
.nav-mobile-cta{display:block;text-align:center;padding:16px;font-family:var(--f-b);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;background:rgba(196,153,42,.1);border:1px solid rgba(196,153,42,.4);color:var(--c-gold)!important;text-decoration:none;font-weight:500;margin-top:8px}
.nav-mobile-cta:hover{background:rgba(196,153,42,.2);color:var(--c-gold2)!important}
.nav-mobile-logout{width:100%;background:transparent;border:1px solid rgba(247,243,236,.18);color:rgba(247,243,236,.6);padding:14px;font-family:var(--f-b);font-size:11px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;font-weight:400}

@media(max-width:900px){
  .nav-burger{display:flex}
  /* hide desktop nav-membre on small (the burger covers it via mobile menu) */
  #nav .nav-membre{display:none}
  #nav .nav-lang{display:none}
}
@media(max-width:580px){
  #nav .nav-claim{display:none}
}

/* Investor / Admin / Member top bars */
.top-bar nav{flex:1;justify-content:center}
.top-bar .top-burger{display:none;background:transparent;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:4px;margin-left:auto;flex-shrink:0}
.top-bar .top-burger span{display:block;width:22px;height:1.5px;background:var(--c-ivory);transition:transform .3s ease,opacity .3s ease}
.top-bar .top-burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.top-bar .top-burger.open span:nth-child(2){opacity:0}
.top-bar .top-burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:1100px){
  /* Only hide nav/actions if there's a burger to replace them */
  .top-bar-private nav{display:none}
  .top-bar-private > form,
  .top-bar-private > a:not(.top-logo),
  .top-bar-private > div:not(.top-mobile){display:none}
  .top-bar-private .top-burger{display:flex}
  .top-bar:has(.top-burger) nav{display:none}
  .top-bar:has(.top-burger) > form,
  .top-bar:has(.top-burger) > a:not(.top-logo),
  .top-bar:has(.top-burger) > div:not(.top-mobile){display:none}
  .top-bar:has(.top-burger) .top-burger{display:flex}
  .top-bar{padding:0 20px}
}
@media(max-width:480px){
  .top-bar{padding:0 14px}
  .top-name{font-size:13px;letter-spacing:2.5px}
  .admin-badge{font-size:8px;padding:2px 6px;letter-spacing:1px;margin-left:8px}
  .top-bar-member > div{gap:8px!important}
  .top-bar-member .top-back{font-size:9px;letter-spacing:1px;padding:6px 8px}
}
.top-mobile{position:fixed;top:60px;left:0;right:0;bottom:0;background:rgba(9,19,30,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:20px 24px;display:none;flex-direction:column;gap:4px;z-index:899;overflow-y:auto}
.top-mobile.open{display:flex}
.top-mobile a,.top-mobile button{font-family:var(--f-b);font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-ivory);text-decoration:none;padding:14px 8px;border-bottom:1px solid rgba(196,153,42,.08);background:transparent;border-left:none;border-right:none;border-top:none;cursor:pointer;text-align:left;width:100%}
.top-mobile a.active,.top-mobile a:hover{color:var(--c-gold)}
.top-mobile-cta{display:block;text-align:center;padding:14px;background:rgba(122,51,37,.15);border:1px solid rgba(122,51,37,.4)!important;color:var(--c-brick)!important;margin-top:12px}
.top-mobile-logout{margin-top:16px;border:1px solid rgba(247,243,236,.18)!important;color:rgba(247,243,236,.7);text-align:center}

/* Member home refresh */
.top-bar-member{background:#0B1824;border-bottom:1px solid rgba(196,153,42,.18);box-shadow:0 8px 24px rgba(5,12,20,.18)}
.top-bar-private{background:#0B1824;border-bottom:1px solid rgba(196,153,42,.18);box-shadow:0 8px 24px rgba(5,12,20,.18)}
.member-nav{display:flex;align-items:center;justify-content:center;gap:4px;flex:1}
.member-nav a{padding:8px 12px;border-radius:2px;font-size:10px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:rgba(247,243,236,.58);text-decoration:none;transition:all var(--ease)}
.member-nav a:hover,.member-nav a.active{color:var(--c-gold);background:rgba(196,153,42,.08)}
.member-home-hero{position:relative;z-index:1;padding:118px 40px 54px;background:linear-gradient(135deg,#0B1824 0%,#102338 62%,#162C3F 100%);border-bottom:1px solid rgba(196,153,42,.12)}
.member-home-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px;align-items:end}
.member-kicker{display:inline-block;margin-bottom:14px;color:var(--c-gold);font-size:10px;font-weight:600;letter-spacing:2.2px;text-transform:uppercase}
.member-home-copy h1{font-family:var(--f-d);font-size:46px;font-weight:300;line-height:1.05;color:var(--c-ivory);margin-bottom:14px}
.member-home-copy p{max-width:620px;color:rgba(247,243,236,.68);font-size:15px;line-height:1.75;font-weight:300}
.member-home-panel{background:rgba(247,243,236,.08);border:1px solid rgba(196,153,42,.18);padding:26px 28px;color:var(--c-ivory)}
.member-home-panel span{display:block;color:rgba(247,243,236,.55);font-size:10px;letter-spacing:1.8px;text-transform:uppercase;margin-bottom:10px}
.member-home-panel strong{display:block;font-family:var(--f-d);font-size:54px;font-weight:300;line-height:1;color:var(--c-gold)}
.member-home-panel p{color:rgba(247,243,236,.58);font-size:13px;margin-top:4px}
.member-home-panel a{display:inline-flex;margin-top:22px;color:#0B1824;background:var(--c-gold);text-decoration:none;padding:10px 14px;font-size:10px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase}
.member-white{position:relative;z-index:1;background:#F7F3EC;color:#182233;min-height:52vh;padding:42px 40px 80px}
.member-white-inner{max-width:1180px;margin:0 auto}
.member-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}
.member-section-head span{display:block;color:#9A7520;font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:700;margin-bottom:6px}
.member-section-head h2{font-family:var(--f-d);font-size:30px;font-weight:400;color:#182233}
.member-light-btn{border:1px solid rgba(24,34,51,.18);color:#182233;text-decoration:none;padding:10px 14px;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;background:#fff}
.member-light-btn:hover{border-color:var(--c-gold);color:#7A4E10}
.member-tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.member-tool-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;background:#fff;border:1px solid rgba(24,34,51,.1);padding:22px;text-decoration:none;color:inherit;min-height:180px;position:relative;transition:transform var(--ease),border-color var(--ease),box-shadow var(--ease)}
.member-tool-card:hover{transform:translateY(-2px);border-color:rgba(196,153,42,.5);box-shadow:0 14px 32px rgba(24,34,51,.08)}
.member-tool-icon{width:48px;height:48px;border:1px solid rgba(196,153,42,.32);background:#FAF7EF;color:#9A7520;display:flex;align-items:center;justify-content:center}
.member-tool-icon svg{width:22px;height:22px}
.member-tool-body span{display:inline-block;color:#2D7A4F;background:#EBF7F1;padding:3px 8px;font-size:9px;letter-spacing:1.2px;text-transform:uppercase;font-weight:700;margin-bottom:12px}
.member-tool-body h3{font-family:var(--f-d);font-size:21px;font-weight:500;color:#182233;margin-bottom:8px;line-height:1.2}
.member-tool-body p{font-size:13px;color:#586070;line-height:1.65}
.member-tool-action{grid-column:2;color:#9A7520;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;margin-top:4px}
.member-empty{background:#fff;border:1px solid rgba(24,34,51,.1);padding:34px;max-width:560px}
.member-empty h3{font-family:var(--f-d);font-size:24px;font-weight:500;margin-bottom:8px}
.member-empty p{color:#586070;line-height:1.7;margin-bottom:18px}
.member-empty a{color:#9A7520;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none}
.member-quick-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:26px}
.member-quick-card{display:flex;flex-direction:column;gap:5px;background:#EFE7D8;border:1px solid rgba(24,34,51,.08);padding:18px 20px;text-decoration:none;color:#182233}
.member-quick-card strong{font-family:var(--f-d);font-size:18px;font-weight:500}
.member-quick-card span{font-size:12.5px;color:#586070}
.private-hero{position:relative;z-index:1;padding:116px 40px 46px;background:linear-gradient(135deg,#0B1824 0%,#102338 62%,#162C3F 100%);border-bottom:1px solid rgba(196,153,42,.12)}
.private-hero-inner{max-width:1180px;margin:0 auto;display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.private-hero-copy{min-width:0}
.private-kicker{display:inline-block;margin-bottom:12px;color:var(--c-gold);font-size:10px;font-weight:700;letter-spacing:2.2px;text-transform:uppercase}
.private-hero h1{font-family:var(--f-d);font-size:42px;font-weight:300;line-height:1.08;color:var(--c-ivory);margin-bottom:10px}
.private-hero p{max-width:680px;color:rgba(247,243,236,.68);font-size:14.5px;line-height:1.75;font-weight:300}
.private-hero-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.private-shell{position:relative;z-index:1;background:#F7F3EC;color:#182233;min-height:54vh;padding:36px 40px 76px}
.private-inner{max-width:1180px;margin:0 auto}
.private-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:34px 0 18px}
.private-section-head:first-child{margin-top:0}
.private-section-head span{display:block;color:#9A7520;font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:800;margin-bottom:6px}
.private-section-head h2{font-family:var(--f-d);font-size:28px;font-weight:500;color:#182233}
.private-section-head p{font-size:13px;color:#586070;line-height:1.6;max-width:560px}
.private-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(24,34,51,.18);color:#182233;text-decoration:none;padding:10px 14px;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;background:#fff;cursor:pointer;font-family:var(--f-b)}
.private-btn:hover{border-color:var(--c-gold);color:#7A4E10}
.private-btn-primary{border-color:var(--c-gold);background:var(--c-gold);color:#0B1824}
.private-btn-primary:hover{color:#0B1824;background:#D7AC3B}
.private-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.private-stat{background:#fff;border:1px solid rgba(24,34,51,.1);padding:20px;min-width:0}
.private-stat-label{font-size:10px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase;color:#9A7520;margin-bottom:10px;line-height:1.35}
.private-stat-value{font-family:var(--f-d);font-size:clamp(25px,4vw,34px);font-weight:400;line-height:1.05;color:#182233;overflow-wrap:anywhere}
.private-stat-sub{font-size:12.5px;color:#697181;line-height:1.45;margin-top:8px}
.private-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.private-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.private-card{background:#fff;border:1px solid rgba(24,34,51,.1);padding:22px;color:#182233;text-decoration:none;min-width:0;transition:transform var(--ease),border-color var(--ease),box-shadow var(--ease)}
a.private-card:hover{transform:translateY(-2px);border-color:rgba(196,153,42,.48);box-shadow:0 14px 32px rgba(24,34,51,.08)}
.private-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.private-icon{width:44px;height:44px;border:1px solid rgba(196,153,42,.32);background:#FAF7EF;color:#9A7520;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.private-icon svg{width:21px;height:21px}
.private-badge{display:inline-flex;align-items:center;background:#EBF7F1;color:#2D7A4F;padding:4px 8px;font-size:9px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase}
.private-badge-muted{background:#F1E8D6;color:#8A6A1B}
.private-card h3{font-family:var(--f-d);font-size:21px;font-weight:500;line-height:1.2;color:#182233;margin-bottom:8px}
.private-card p{font-size:13px;color:#586070;line-height:1.65}
.private-card-link{margin-top:16px;color:#9A7520;font-size:10px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase}
.private-list{display:flex;flex-direction:column;gap:1px;background:rgba(24,34,51,.08);border:1px solid rgba(24,34,51,.08)}
.private-list-item{display:grid;grid-template-columns:minmax(0,2fr) minmax(120px,1fr) minmax(120px,1fr) auto;gap:18px;align-items:center;background:#fff;padding:17px 20px;color:#182233;text-decoration:none}
a.private-list-item:hover{background:#FBF8F1}
.private-list-title{font-family:var(--f-d);font-size:17px;font-weight:500;color:#182233;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.private-list-meta{font-size:11.5px;color:#697181;line-height:1.5}
.private-list-value{font-family:var(--f-d);font-size:18px;color:#9A7520;overflow-wrap:anywhere}
.private-list-status{font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#586070}
.private-empty{background:#fff;border:1px solid rgba(24,34,51,.1);padding:48px 34px;text-align:center}
.private-empty h3{font-family:var(--f-d);font-size:25px;font-weight:500;color:#182233;margin-bottom:10px}
.private-empty p{max-width:560px;margin:0 auto 22px;color:#586070;font-size:13.5px;line-height:1.75}
.private-note{margin-top:28px;background:#EFE7D8;border-left:3px solid rgba(196,153,42,.55);padding:18px 22px;color:#4C5564;font-size:12.5px;line-height:1.75}
.private-note strong{display:block;color:#8A6A1B;font-size:10.5px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:5px}
.private-table{width:100%;border-collapse:collapse}
.private-table th{padding:12px 10px;text-align:left;font-size:9.5px;letter-spacing:1.6px;text-transform:uppercase;color:#9A7520;border-bottom:1px solid rgba(24,34,51,.1);white-space:nowrap}
.private-table td{padding:13px 10px;border-bottom:1px solid rgba(24,34,51,.08);color:#3C4554;font-size:13px;vertical-align:middle}
.private-table tr:last-child td{border-bottom:0}
.private-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:900px){
  .member-nav{display:none}
  .member-home-hero{padding:96px 22px 34px}
  .member-home-inner{grid-template-columns:1fr;gap:22px}
  .member-home-panel{max-width:360px}
  .member-white{padding:32px 22px 60px}
  .private-hero{padding:96px 22px 34px}
  .private-hero-inner{align-items:flex-start;flex-direction:column}
  .private-hero-actions{justify-content:flex-start}
  .private-shell{padding:30px 22px 60px}
  .private-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .private-grid-2{grid-template-columns:1fr}
}
@media(max-width:560px){
  .member-home-copy h1{font-size:34px}
  .member-section-head{align-items:flex-start;flex-direction:column}
  .member-tool-card{grid-template-columns:1fr}
  .member-tool-action{grid-column:1}
  .private-hero h1{font-size:32px}
  .private-section-head{align-items:flex-start;flex-direction:column}
  .private-stats{grid-template-columns:1fr}
  .private-list-item{grid-template-columns:1fr;gap:8px}
}

/* Dashboard headers stack on mobile */
@media(max-width:780px){
  .dash-header{flex-direction:column;align-items:flex-start;gap:14px;padding:20px 18px}
  .dash-header .dash-actions{flex-wrap:wrap;width:100%;gap:8px}
  .dash-header .dash-actions .adm-btn,.dash-header .dash-actions .dash-btn{text-align:center;min-width:0;flex:1 1 100px;font-size:9.5px;padding:9px 12px}
}
@media(max-width:480px){
  .dash-header{padding:18px 14px}
  .dash-header h2{font-size:20px}
  .dash-header .dash-actions{flex-direction:column}
  .dash-header .dash-actions .adm-btn,.dash-header .dash-actions .dash-btn{width:100%;flex:0 0 auto}
}

/* Dashboard grids responsive */
@media(max-width:1100px){
  .dash-grid{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:580px){
  .dash-grid{grid-template-columns:1fr!important}
  .dash-modules{grid-template-columns:1fr!important}
}

/* Admin tables: horizontal scroll on small screens */
.adm-table-wrap,
.adm-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:100%}
@media(max-width:900px){
  .adm-section{padding:16px 14px}
  .adm-section .adm-table{min-width:520px}
  .adm-section .adm-table th,
  .adm-section .adm-table td{padding:10px 12px;font-size:12.5px}
}
@media(max-width:480px){
  .adm-section{padding:12px 10px}
  .adm-section .adm-table{min-width:440px}
}

/* Admin dashboard 4-col stat grid responsive */
@media(max-width:1100px){
  .adm-section > div[style*="grid-template-columns:repeat(4"]{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:560px){
  .adm-section > div[style*="grid-template-columns:repeat(4"],
  .adm-section > div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}
}

/* Admin form grids stack on mobile */
@media(max-width:780px){
  .adm-form .adm-grid-2{grid-template-columns:1fr!important}
  .adm-form div[style*="grid-template-columns:repeat(4"]{grid-template-columns:repeat(2,1fr)!important}
  section.adm-section > div[style*="grid-template-columns:1.5fr"],
  section.adm-section > div[style*="grid-template-columns:1fr 1fr"],
  section.adm-section > div[style*="grid-template-columns:2fr 1fr"]{grid-template-columns:1fr!important;gap:24px!important}
}

/* Investor space layouts responsive */
@media(max-width:780px){
  main > section[style*="grid-template-columns:2fr 1fr"],
  main > section[style*="grid-template-columns:1.5fr 1fr"]{grid-template-columns:1fr!important;padding:24px 20px!important}
  main > section > aside{position:static!important}
}

/* Investment list cards stack on mobile */
@media(max-width:780px){
  a[style*="grid-template-columns:2fr 1fr 1fr auto"],
  a[style*="grid-template-columns:2fr 1fr 1fr 1fr auto"],
  div[style*="grid-template-columns:auto 1fr auto auto"]{grid-template-columns:1fr!important;gap:8px!important}
}

/* Page hero padding adjustments */
@media(max-width:580px){
  .page-hero{padding:100px 0 48px}
  .legal-hero{padding:100px 0 48px}
}

/* Forms responsive on contact + partners pages */
@media(max-width:860px){
  .contact-sec .wrap,
  section.demande .wrap,
  .legal-sec .wrap,
  .histoire .wrap{grid-template-columns:1fr!important;gap:40px!important}
}

/* Hero on home: stack visual + text */
@media(max-width:900px){
  .hero{flex-direction:column;padding:120px 24px 48px;gap:32px}
  .hero-vis{max-width:300px;margin:0 auto}
  .hero-txt{max-width:none}
}

/* Bien grid (home) responsive */
@media(max-width:780px){
  .biens-grid{grid-template-columns:1fr!important}
}

/* Reduce eyebrows/h1 size on small */
@media(max-width:480px){
  .h1{font-size:34px!important}
  .h2{font-size:26px!important}
  .nav-name{font-size:14px;letter-spacing:3.5px}
  .top-name{font-size:14px;letter-spacing:3px}
}

/* Pillars + diff grid stack */
@media(max-width:900px){
  .pillars{grid-template-columns:1fr!important}
  .diff-grid{grid-template-columns:1fr!important}
  .cred-grid{grid-template-columns:1fr!important}
  .crit-grid{grid-template-columns:1fr!important}
  .espace .wrap,
  .part-r,
  .part-l{display:block!important;width:100%}
  .partners .wrap,
  .hero-p .wrap,
  .fonct .wrap,
  .espace .wrap{grid-template-columns:1fr!important;gap:32px!important}
  .espace-feats{grid-template-columns:1fr 1fr!important}
}
@media(max-width:520px){
  .espace-feats{grid-template-columns:1fr!important}
}

/* ================================================================
   COOKIE BANNER — RGPD
   ================================================================ */
.cookie-banner{position:fixed;left:20px;right:20px;bottom:20px;background:rgba(11,24,36,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(196,153,42,.3);padding:20px 24px;z-index:990;display:none;align-items:center;gap:20px;flex-wrap:wrap;box-shadow:0 12px 40px rgba(0,0,0,.4);max-width:920px;margin:0 auto}
.cookie-banner.show{display:flex}
.cookie-banner-text{flex:1;min-width:240px;font-size:13px;line-height:1.65;color:rgba(247,243,236,.75)}
.cookie-banner-text strong{color:var(--c-gold);font-family:var(--f-d);font-weight:400;display:block;font-size:15px;margin-bottom:4px;letter-spacing:.5px}
.cookie-banner-text a{color:var(--c-gold);text-decoration:none}
.cookie-banner-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-btn{padding:10px 18px;font-family:var(--f-b);font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;transition:all var(--ease);text-decoration:none;display:inline-block}
.cookie-btn-accept{background:var(--c-gold);color:var(--c-navy)}
.cookie-btn-accept:hover{background:var(--c-gold2)}
.cookie-btn-decline{background:transparent;color:rgba(247,243,236,.6);border:1px solid rgba(247,243,236,.2)}
.cookie-btn-decline:hover{color:var(--c-ivory);border-color:rgba(247,243,236,.4)}
@media(max-width:580px){
  .cookie-banner{left:10px;right:10px;bottom:10px;padding:16px 18px}
  .cookie-banner-actions{width:100%}
  .cookie-btn{flex:1;text-align:center}
}

/* ================================================================
   PROPERTY GALLERY (photos)
   ================================================================ */
.property-gallery{display:flex;flex-direction:column;gap:8px}
.property-gallery-main{position:relative;width:100%;aspect-ratio:16/10;background:var(--c-ivory2);overflow:hidden;cursor:zoom-in}
.property-gallery-main img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .25s ease}
.property-gallery-thumbs{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.property-gallery-thumb{flex:0 0 auto;width:80px;height:60px;background:transparent;border:1px solid rgba(196,153,42,.15);padding:0;cursor:pointer;overflow:hidden;transition:border-color .2s ease}
.property-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.property-gallery-thumb.active,.property-gallery-thumb:hover{border-color:var(--c-gold)}

/* PEB badge */
.peb-badge{display:inline-block;padding:3px 9px;font-family:var(--f-b);font-size:11px;font-weight:600;letter-spacing:.5px;color:#fff;border-radius:2px;text-align:center;min-width:32px}
.peb-app{background:#0d8843} /* A++ */
.peb-ap{background:#22a04d}  /* A+ */
.peb-a{background:#3eb952}
.peb-b{background:#a7c52a}
.peb-c{background:#f4d000}
.peb-d{background:#f4a300}
.peb-e{background:#ee6927}
.peb-f{background:#dc362e}
.peb-g{background:#a91b25}
/* Language switcher as links */
.nav-lang a{background:none;border:none;cursor:pointer;padding:4px 7px;font-family:var(--f-b);font-size:10px;letter-spacing:1.5px;color:rgba(247,243,236,.3);transition:color var(--ease);text-decoration:none}
.nav-lang a.on{color:var(--c-gold)}
.nav-lang a:hover{color:var(--c-gold2)}

/* ================================================================
   ADMIN SIDEBAR — Navigation gauche fixe
   ================================================================ */
.adm-shell{display:flex;min-height:100vh;position:relative;z-index:1}
.adm-sidebar{
  width:240px;flex-shrink:0;
  background:rgba(11,24,36,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-right:1px solid rgba(196,153,42,.15);
  display:flex;flex-direction:column;
  position:fixed;top:0;bottom:0;left:0;z-index:100;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:rgba(196,153,42,.3) transparent;
}
.adm-sidebar::-webkit-scrollbar{width:4px}
.adm-sidebar::-webkit-scrollbar-thumb{background:rgba(196,153,42,.3);border-radius:4px}

.adm-main-wrap{flex:1;margin-left:240px;min-width:0;display:flex;flex-direction:column}

.adm-brand{padding:22px 20px;border-bottom:1px solid rgba(196,153,42,.1)}
.adm-brand-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.adm-brand-name{font-family:var(--f-d);font-size:16px;font-weight:500;letter-spacing:4px;color:var(--c-ivory);line-height:1}
.adm-brand-sub{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--c-brick);margin-top:3px;font-weight:500}

.adm-nav{flex:1;padding:8px 0;display:flex;flex-direction:column;gap:2px}
.adm-nav-section{padding:10px 0 6px}
.adm-nav-label{
  font-size:9.5px;letter-spacing:2px;text-transform:uppercase;
  color:rgba(196,153,42,.55);font-weight:600;
  padding:0 20px 8px;
}
.adm-nav-link{
  display:flex;align-items:center;gap:11px;
  padding:9px 20px;font-size:13px;font-weight:500;
  color:rgba(247,243,236,.65);text-decoration:none;
  transition:all .18s ease;border-left:2px solid transparent;
  position:relative;
}
.adm-nav-link:hover{background:rgba(196,153,42,.06);color:var(--c-ivory)}
.adm-nav-link.active{background:rgba(196,153,42,.12);color:var(--c-gold);border-left-color:var(--c-gold)}
.adm-nav-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;font-size:14px;color:rgba(196,153,42,.65);flex-shrink:0;line-height:1;
}
.adm-nav-link.active .adm-nav-icon{color:var(--c-gold)}
.adm-nav-badge{
  margin-left:auto;background:var(--c-gold);color:var(--c-navy);
  font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;line-height:1.4;
}
.adm-nav-badge-warn{background:var(--c-brick);color:var(--c-ivory)}

.adm-sidebar-footer{
  border-top:1px solid rgba(196,153,42,.1);padding:14px 0 18px;
  display:flex;flex-direction:column;gap:2px;
}
.adm-user-card{
  display:flex;align-items:center;gap:11px;
  padding:12px 20px 14px;border-bottom:1px solid rgba(196,153,42,.08);margin-bottom:8px;
}
.adm-user-avatar{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--c-gold),var(--c-gold2));
  color:var(--c-navy);display:flex;align-items:center;justify-content:center;
  font-family:var(--f-d);font-size:16px;font-weight:600;
}
.adm-user-info{flex:1;min-width:0}
.adm-user-name{font-size:13px;font-weight:500;color:var(--c-ivory);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-user-role{font-size:10px;color:rgba(247,243,236,.45);letter-spacing:1px;text-transform:uppercase;margin-top:2px}

.adm-sidebar-action{
  display:flex;align-items:center;gap:11px;
  padding:9px 20px;font-size:12px;font-weight:500;
  color:rgba(247,243,236,.55);text-decoration:none;
  transition:all .18s ease;background:transparent;border:none;cursor:pointer;
  width:100%;text-align:left;font-family:var(--f-b);
}
.adm-sidebar-action:hover{background:rgba(196,153,42,.06);color:var(--c-ivory)}
.adm-sidebar-action.danger:hover{background:rgba(139,45,45,.15);color:rgba(247,200,200,.95)}

/* Mini topbar mobile + drawer */
.adm-mobile-bar{display:none}
.adm-sidebar-backdrop{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.5);z-index:90;
  animation:adm-fade .25s ease;
}
@keyframes adm-fade{from{opacity:0}to{opacity:1}}
.adm-sidebar-backdrop.open{display:block}

@media(max-width:900px){
  .adm-shell{display:block;min-height:100vh}
  .adm-shell .adm-sidebar{
    transform:translateX(-100%);transition:transform .25s ease;
    z-index:1000;width:280px;
    visibility:hidden;
  }
  .adm-shell .adm-sidebar.open{transform:translateX(0);visibility:visible;box-shadow:6px 0 24px rgba(0,0,0,.4)}
  .adm-shell .adm-main-wrap{margin-left:0}
  body.adm-menu-open{overflow:hidden}

  .adm-mobile-bar{
    display:flex;align-items:center;gap:14px;
    height:56px;padding:0 16px;
    background:rgba(11,24,36,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    border-bottom:1px solid rgba(196,153,42,.1);
    position:sticky;top:0;z-index:80;width:100%;
  }
  .adm-burger{
    background:transparent;border:none;cursor:pointer;padding:8px;
    display:flex;flex-direction:column;gap:4px;width:36px;flex-shrink:0;
  }
  .adm-burger span{display:block;width:22px;height:1.5px;background:var(--c-ivory);transition:transform .3s ease,opacity .3s ease}
  .adm-burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .adm-burger.open span:nth-child(2){opacity:0}
  .adm-burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .adm-mobile-brand{
    display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--c-ivory);
    font-family:var(--f-d);font-size:14px;letter-spacing:3px;font-weight:500;
  }
}

/* Hide old top-bar references when using sidebar layout */
.adm-shell .top-bar{display:none}
.adm-shell .adm-flash{margin:0 24px 18px}
@media(max-width:900px){.adm-shell .adm-flash{margin:14px 16px}}

/* ════════════════════════════════════════════════════════
   ADMIN — Thème clair pour la zone de contenu
   Sidebar reste sombre (à l'extérieur de .adm-main-wrap)
   ════════════════════════════════════════════════════════ */

.adm-main-wrap{
  background:var(--c-ivory);
  color:var(--c-dark);
  min-height:100vh;
}

/* Header de page (dash-header) */
.adm-main-wrap .dash-header{
  background:var(--c-cream);
  border-bottom:1px solid var(--c-ivory2);
  color:var(--c-dark);
  padding:24px 32px;
}
.adm-main-wrap .dash-welcome h2{color:var(--c-navy);font-family:var(--f-d);font-size:26px;font-weight:400;letter-spacing:.5px}
.adm-main-wrap .dash-welcome p{color:var(--c-gray);font-size:13px;margin-top:4px}
.adm-main-wrap .dash-actions{display:flex;gap:10px;flex-wrap:wrap}

/* Sections avec espace généreux */
.adm-main-wrap .adm-section{padding:24px 32px}
@media(max-width:780px){.adm-main-wrap .adm-section{padding:18px 18px}}

/* Cartes : surface blanche, ombre douce */
.adm-main-wrap .adm-card{
  background:#fff;
  border:1px solid var(--c-ivory2);
  border-left:3px solid var(--c-gold);
  color:var(--c-dark);
  padding:24px 28px;
  box-shadow:0 1px 3px rgba(100,75,15,.05);
}
.adm-main-wrap .adm-card h3{color:var(--c-navy);font-size:18px;margin-bottom:4px}
.adm-main-wrap .adm-card-sub{color:var(--c-gray);font-size:12.5px;margin-bottom:18px}

/* Stats */
.adm-main-wrap .adm-stat{
  background:#fff;
  border-top:2px solid var(--c-gold);
  color:var(--c-dark);
  padding:22px 26px;
}
.adm-main-wrap .adm-stat-label{color:var(--c-gray2);font-weight:600}
.adm-main-wrap .adm-stat-val{color:var(--c-navy);font-size:30px}
.adm-main-wrap .adm-stat-sub{color:var(--c-gray);font-size:11.5px}

/* Le wrapper "grid" autour des stats : on neutralise le fond doré transparent */
.adm-main-wrap > main > section.adm-section > div[style*="background:rgba(196,153,42,.06)"]{
  background:transparent!important;padding:0!important;gap:14px!important;
}

/* Tableaux : blanc avec lignes alternées subtiles */
.adm-main-wrap .adm-table{
  background:#fff!important;
  border:1px solid var(--c-ivory2);
  border-collapse:separate;border-spacing:0;
  border-radius:4px;overflow:hidden;
}
.adm-main-wrap .adm-table th{
  background:var(--c-cream)!important;
  color:var(--c-gold-dk)!important;
  border-bottom:1px solid var(--c-ivory2);
  font-size:9.5px;letter-spacing:1.8px;
}
.adm-main-wrap .adm-table td{
  color:var(--c-dark)!important;
  border-bottom:1px solid var(--c-ivory2);
  font-size:13.5px;
}
.adm-main-wrap .adm-table tr:hover td{background:var(--c-cream)!important}
.adm-main-wrap .adm-table tr:last-child td{border-bottom:none}
.adm-main-wrap .adm-table a{color:var(--c-gold-dk)}
.adm-main-wrap .adm-table a:hover{color:var(--c-gold)}

/* Filtres */
.adm-main-wrap .filter-btn{
  background:#fff;
  border:1px solid var(--c-ivory2);
  color:var(--c-gray);
  transition:all var(--ease);
  text-decoration:none;
  display:inline-block;
}
.adm-main-wrap .filter-btn:hover{border-color:var(--c-gold);color:var(--c-gold-dk)}
.adm-main-wrap .filter-btn.active{background:var(--c-navy)!important;color:var(--c-ivory)!important;border-color:var(--c-navy)!important}

/* Formulaires : champs clairs */
.adm-main-wrap .adm-form input,
.adm-main-wrap .adm-form select,
.adm-main-wrap .adm-form textarea{
  background:#fff!important;
  border:1px solid var(--c-ivory2)!important;
  color:var(--c-dark)!important;
}
.adm-main-wrap .adm-form input:focus,
.adm-main-wrap .adm-form select:focus,
.adm-main-wrap .adm-form textarea:focus{
  border-color:var(--c-gold)!important;
  box-shadow:0 0 0 3px rgba(196,153,42,.12)!important;
}
.adm-main-wrap .adm-form input::placeholder,
.adm-main-wrap .adm-form textarea::placeholder{color:var(--c-gray2)!important}
.adm-main-wrap .adm-form label{color:var(--c-gray)!important;font-weight:600}
.adm-main-wrap .adm-form .form-field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A847C' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")!important;
}
.adm-main-wrap input[type=text],
.adm-main-wrap input[type=email],
.adm-main-wrap input[type=number],
.adm-main-wrap input[type=date],
.adm-main-wrap input[type=password],
.adm-main-wrap input[type=tel],
.adm-main-wrap select,
.adm-main-wrap textarea{
  background:#fff;
  border:1px solid var(--c-ivory2);
  color:var(--c-dark);
}

/* Boutons : ajuster pour fond clair */
.adm-main-wrap .adm-btn-ghost{
  background:#fff;
  color:var(--c-gray);
  border:1px solid var(--c-ivory2);
}
.adm-main-wrap .adm-btn-ghost:hover{border-color:var(--c-gold);color:var(--c-gold-dk);background:#fff}
.adm-main-wrap .adm-btn-outline{background:#fff;color:var(--c-gold-dk);border:1px solid var(--c-gold)}
.adm-main-wrap .adm-btn-outline:hover{background:var(--c-gold);color:#fff}

/* Pills — versions adaptées au fond clair */
.adm-main-wrap .adm-pill-active{background:rgba(45,122,79,.12);color:var(--c-green);font-weight:600}
.adm-main-wrap .adm-pill-pending{background:rgba(196,153,42,.18);color:var(--c-gold-dk);font-weight:600}
.adm-main-wrap .adm-pill-suspended{background:rgba(160,40,32,.12);color:#A02820;font-weight:600}
.adm-main-wrap .adm-pill-admin{background:rgba(122,51,37,.18);color:var(--c-brick);font-weight:600}
.adm-main-wrap .adm-pill-investor{background:var(--c-ivory2);color:var(--c-gray);font-weight:600}

/* Flash messages */
.adm-main-wrap .adm-flash{
  background:rgba(45,122,79,.10);
  border:1px solid rgba(45,122,79,.25);
  color:var(--c-green);
  margin:18px 32px 0;
}
.adm-main-wrap .adm-flash-err{
  background:rgba(160,40,32,.10);
  border:1px solid rgba(160,40,32,.25);
  color:#A02820;
}

/* État vide */
.adm-main-wrap .empty{background:#fff;border:1px solid var(--c-ivory2)}
.adm-main-wrap .empty h3{color:var(--c-navy)}
.adm-main-wrap .empty p{color:var(--c-gray)}

/* Pagination Laravel */
.adm-main-wrap nav[role="navigation"] svg{fill:var(--c-gray)}
.adm-main-wrap .pagination,.adm-main-wrap .pagination-wrap{color:var(--c-gray)}

/* Section dangereuse (suppression) */
.adm-main-wrap div[style*="rgba(139,45,45,.08)"]{
  background:rgba(160,40,32,.06)!important;
  border-left:3px solid var(--c-brick)!important;
}
.adm-main-wrap h3[style*="rgba(247,200,200"]{color:var(--c-brick)!important}

/* Catch-all sur les inline styles sombres les plus fréquents */
.adm-main-wrap [style*="background:rgba(11,24,36,.85)"]{
  background:#fff!important;color:var(--c-dark)!important;
  border:1px solid var(--c-ivory2);
}
.adm-main-wrap [style*="background:rgba(11,24,36,.5)"],
.adm-main-wrap [style*="background:rgba(11,24,36,.6)"]{
  background:var(--c-cream)!important;color:var(--c-dark)!important;
}
.adm-main-wrap [style*="background:rgba(15,32,48,.4)"],
.adm-main-wrap [style*="background:rgba(15,32,48,.5)"],
.adm-main-wrap [style*="background:rgba(15,32,48,.6)"],
.adm-main-wrap [style*="background:rgba(15,32,48,.7)"],
.adm-main-wrap [style*="background:rgba(15,32,48,.8)"]{
  background:var(--c-cream)!important;color:var(--c-dark)!important;
}

/* Texte ivory → dark sur fond clair */
.adm-main-wrap [style*="color:var(--c-ivory)"]{color:var(--c-navy)!important}
.adm-main-wrap [style*="color:rgba(247,243,236,.85)"],
.adm-main-wrap [style*="color:rgba(247,243,236,.8)"],
.adm-main-wrap [style*="color:rgba(247,243,236,.75)"],
.adm-main-wrap [style*="color:rgba(247,243,236,.7)"]{color:var(--c-dark)!important}
.adm-main-wrap [style*="color:rgba(247,243,236,.65)"],
.adm-main-wrap [style*="color:rgba(247,243,236,.6)"],
.adm-main-wrap [style*="color:rgba(247,243,236,.55)"]{color:var(--c-gray)!important}
.adm-main-wrap [style*="color:rgba(247,243,236,.5)"],
.adm-main-wrap [style*="color:rgba(247,243,236,.45)"],
.adm-main-wrap [style*="color:rgba(247,243,236,.4)"]{color:var(--c-gray2)!important}
.adm-main-wrap [style*="color:rgba(247,243,236,.35)"],
.adm-main-wrap [style*="color:rgba(247,243,236,.3)"]{color:var(--c-gray2)!important;opacity:.7}

/* Bordures ivory → ivory2 */
.adm-main-wrap [style*="border-bottom:1px solid rgba(196,153,42,.1)"],
.adm-main-wrap [style*="border-bottom:1px solid rgba(196,153,42,.08)"],
.adm-main-wrap [style*="border-top:1px solid rgba(196,153,42,.1)"]{
  border-color:var(--c-ivory2)!important;
}

/* Bordure colorée gauche (cards) */
.adm-main-wrap [style*="border-left-color:rgba(196,153,42"]{
  border-left-color:var(--c-gold)!important;
}

/* Inputs inline aux styles sombres dans formulaires non-adm-form */
.adm-main-wrap input[style*="background:rgba(247,243,235,.06)"],
.adm-main-wrap select[style*="background:rgba(247,243,235,.06)"]{
  background:#fff!important;color:var(--c-dark)!important;
  border-color:var(--c-ivory2)!important;
}

/* Logs activité — code inline */
.adm-main-wrap code{color:var(--c-gold-dk);background:rgba(196,153,42,.08)}

/* Liens dans les listes admin */
.adm-main-wrap a[href*="/admin/"]{color:var(--c-gold-dk)}
.adm-main-wrap a[href*="/admin/"]:hover{color:var(--c-gold)}

/* Variable gold-dk (utilisée dans le sidebar) — on définit ici si pas déjà fait */
:root{--c-gold-dk:#7A4E10}

/* ════════════════════════════════════════════════════════
   ADMIN — Responsive mobile (thème clair)
   Surcharges nécessaires car .adm-main-wrap a une spécificité
   supérieure aux media queries globales précédentes
   ════════════════════════════════════════════════════════ */

@media(max-width:900px){
  /* Sections compactes */
  .adm-main-wrap .adm-section{padding:14px 14px}
  .adm-main-wrap .dash-header{
    padding:16px 16px;
    flex-direction:column;align-items:flex-start;gap:12px;
  }
  .adm-main-wrap .dash-header h2{font-size:20px;line-height:1.3}
  .adm-main-wrap .dash-header .dash-actions{
    width:100%;display:flex;flex-wrap:wrap;gap:8px;
  }
  .adm-main-wrap .dash-header .dash-actions .adm-btn,
  .adm-main-wrap .dash-header .dash-actions form{
    flex:1 1 calc(50% - 4px);
  }
  .adm-main-wrap .dash-header .dash-actions .adm-btn{
    text-align:center;padding:10px 8px;font-size:10px;min-width:0;
  }

  /* Cards compactes */
  .adm-main-wrap .adm-card{padding:18px 18px}
  .adm-main-wrap .adm-card h3{font-size:16px}
  .adm-main-wrap .adm-card-sub{font-size:12px}

  /* Stats compactes */
  .adm-main-wrap .adm-stat{padding:16px 16px}
  .adm-main-wrap .adm-stat-val{font-size:24px}
  .adm-main-wrap .adm-stat-label{font-size:9px}
  .adm-main-wrap .adm-stat-sub{font-size:10.5px}

  /* Filtres : sur leur ligne, plus compacts */
  .adm-main-wrap .filter-btn{padding:7px 12px;font-size:10px}

  /* Boutons : padding réduit */
  .adm-main-wrap .adm-btn{padding:9px 14px;font-size:10px}

  /* Tableaux : police plus petite */
  .adm-main-wrap .adm-table th{padding:9px 10px;font-size:9px;letter-spacing:1.2px}
  .adm-main-wrap .adm-table td{padding:9px 10px;font-size:12.5px}

  /* Inputs : padding réduit */
  .adm-main-wrap .adm-form input,
  .adm-main-wrap .adm-form select,
  .adm-main-wrap .adm-form textarea{font-size:14px;padding:10px 12px}

  /* Formulaires : tout en 1 col */
  .adm-main-wrap .adm-grid-2{grid-template-columns:1fr!important;gap:10px}
  .adm-main-wrap section.adm-section > div[style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;gap:14px!important;
  }
  .adm-main-wrap section.adm-section > div[style*="grid-template-columns:1.5fr"],
  .adm-main-wrap section.adm-section > div[style*="grid-template-columns:2fr 1fr"]{
    grid-template-columns:1fr!important;gap:14px!important;
  }

  /* Stats 4-col → 2 puis 1 col */
  .adm-main-wrap > main > section.adm-section > div[style*="grid-template-columns:repeat(4"]{
    grid-template-columns:repeat(2,1fr)!important;
  }

  /* Flash messages : marges réduites */
  .adm-main-wrap .adm-flash{margin:14px 14px 0;padding:12px 16px;font-size:12.5px}

  /* Pagination */
  .adm-main-wrap nav[role="navigation"]{font-size:12px}

  /* Zone danger sur mobile */
  .adm-main-wrap div[style*="rgba(139,45,45,.08)"]{padding:16px 18px!important}
}

@media(max-width:580px){
  /* Encore plus compact sur très petit mobile */
  .adm-main-wrap .adm-section{padding:12px 10px}
  .adm-main-wrap .dash-header{padding:14px 12px}
  .adm-main-wrap .dash-header h2{font-size:18px}
  .adm-main-wrap .dash-header .dash-actions .adm-btn,
  .adm-main-wrap .dash-header .dash-actions form{flex:1 1 100%}

  .adm-main-wrap .adm-card{padding:14px 14px}
  .adm-main-wrap .adm-stat{padding:14px 14px}
  .adm-main-wrap .adm-stat-val{font-size:22px}

  /* Stats : tout en 1 col */
  .adm-main-wrap > main > section.adm-section > div[style*="grid-template-columns:repeat(4"]{
    grid-template-columns:1fr!important;
  }

  /* Tables : encore plus compact */
  .adm-main-wrap .adm-table th{padding:8px 8px;font-size:8.5px}
  .adm-main-wrap .adm-table td{padding:8px 8px;font-size:12px}

  /* Mini top-bar mobile : ajuster padding */
  .adm-mobile-bar{padding:0 12px;gap:10px}
  .adm-mobile-brand{font-size:12.5px;letter-spacing:2px}
  .admin-badge{font-size:8px;padding:2px 6px;letter-spacing:1px;margin-left:6px}

  /* Flash plus compact */
  .adm-main-wrap .adm-flash{margin:12px 10px 0;padding:10px 14px;font-size:12px}

  /* Cacher les éléments décoratifs trop volumineux */
  .adm-main-wrap .adm-card[style*="border-left"]{border-left-width:2px!important}
}

/* Tables : wrap horizontal scroll (déjà fait via JS, mais safety net) */
@media(max-width:900px){
  .adm-main-wrap .adm-table-scroll,
  .adm-main-wrap .adm-table-wrap{
    margin:0 -14px;padding:0 14px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
  }
  .adm-main-wrap .adm-table{min-width:520px}
}
@media(max-width:580px){
  .adm-main-wrap .adm-table-scroll,
  .adm-main-wrap .adm-table-wrap{margin:0 -10px;padding:0 10px}
  .adm-main-wrap .adm-table{min-width:440px}
}

/* Forms scrollable horizontal pour les champs de table de paiements admin */
.adm-main-wrap form[style*="display:flex"]{flex-wrap:wrap}

/* Sidebar mobile : meilleure ergonomie touch */
@media(max-width:900px){
  .adm-sidebar .adm-nav-link{padding:13px 22px;font-size:14px}
  .adm-sidebar .adm-nav-icon{font-size:16px;width:22px}
  .adm-sidebar-action{padding:13px 22px;font-size:13px}
}

/* Gallery thumbs videos */
.property-gallery-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.property-gallery-thumb{position:relative}
.property-gallery-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:24px;height:24px;border-radius:50%;
  background:rgba(0,0,0,.7);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;padding-left:1px;pointer-events:none;
}
.property-gallery-main video{background:#000}
.property-lightbox{
  position:fixed;inset:0;z-index:200;
  display:none;align-items:center;justify-content:center;
  background:rgba(5,12,20,.92);padding:28px;
}
.property-lightbox.open{display:flex}
.property-lightbox-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.property-lightbox-inner img,.property-lightbox-inner video{
  max-width:100%;max-height:100%;object-fit:contain;display:block;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}
.property-lightbox-close{
  position:absolute;top:18px;right:18px;width:42px;height:42px;
  border:1px solid rgba(247,243,236,.25);background:rgba(247,243,236,.08);
  color:var(--c-ivory);font-size:26px;line-height:1;cursor:pointer;
}
.property-lightbox-close:hover{border-color:var(--c-gold);color:var(--c-gold)}

/* ════════════════════════════════════════════════════════
   Admin — neutralise les soulignements ondulés mobile
   (spell-check, predictive text, autocorrect)
   ════════════════════════════════════════════════════════ */
.adm-main-wrap input,
.adm-main-wrap select,
.adm-main-wrap textarea,
.adm-main-wrap option,
.adm-main-wrap input::placeholder,
.adm-main-wrap textarea::placeholder{
  text-decoration:none!important;
  -webkit-text-decoration:none!important;
  text-decoration-line:none!important;
  text-decoration-style:solid!important;
  text-underline-offset:0!important;
  -webkit-text-fill-color:initial;
}

/* Force la suppression du squiggle iOS sur les selects */
.adm-main-wrap select,
.adm-main-wrap select option,
.adm-main-wrap option{
  text-decoration:none!important;
  -webkit-text-decoration-line:none!important;
}

/* Aucun underline sur les valeurs autoremplies par le navigateur */
.adm-main-wrap input:-webkit-autofill,
.adm-main-wrap select:-webkit-autofill{
  -webkit-text-fill-color:var(--c-dark)!important;
  -webkit-box-shadow:0 0 0 30px #fff inset!important;
  transition:background-color 5000s ease-in-out 0s;
}

/* ════════════════════════════════════════════════════════
   Admin custom select (kh-select)
   Remplace les <select> natifs par un composant maison
   pour éliminer le picker roue iOS et tout rendering wavy.
   ════════════════════════════════════════════════════════ */
.adm-main-wrap .kh-sel{position:relative;width:100%}
.adm-main-wrap .kh-sel-trigger{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  width:100%;
  background:#fff;
  border:1px solid var(--c-ivory2);
  color:var(--c-dark);
  padding:10px 13px;
  font-family:var(--f-b);font-size:14px;font-weight:400;
  border-radius:4px;
  cursor:pointer;
  text-align:left;
  -webkit-appearance:none;appearance:none;
  text-decoration:none!important;
  transition:border-color .15s ease,box-shadow .15s ease;
  line-height:1.4;
}
.adm-main-wrap .kh-sel-trigger:hover{border-color:var(--c-gold)}
.adm-main-wrap .kh-sel-trigger:focus,
.adm-main-wrap .kh-sel.open .kh-sel-trigger{
  outline:none;
  border-color:var(--c-gold);
  box-shadow:0 0 0 3px rgba(196,153,42,.13);
}
.adm-main-wrap .kh-sel-trigger.placeholder{color:var(--c-gray2)}
.adm-main-wrap .kh-sel-value{
  flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.adm-main-wrap .kh-sel-caret{
  flex-shrink:0;width:10px;height:6px;
  border-left:1.5px solid var(--c-gray);
  border-bottom:1.5px solid var(--c-gray);
  transform:rotate(-45deg);margin-top:-3px;
  transition:transform .18s ease;
}
.adm-main-wrap .kh-sel.open .kh-sel-caret{transform:rotate(135deg);margin-top:1px}

.adm-main-wrap .kh-sel-panel{
  display:none;
  position:absolute;left:0;right:0;top:calc(100% + 4px);
  background:#fff;
  border:1px solid var(--c-ivory2);
  border-radius:4px;
  box-shadow:0 8px 24px rgba(100,75,15,.15),0 2px 6px rgba(100,75,15,.08);
  max-height:240px;overflow-y:auto;
  z-index:500;
  padding:4px 0;
}
.adm-main-wrap .kh-sel.open .kh-sel-panel{display:block;animation:kh-slide-down .14s ease}
@keyframes kh-slide-down{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

.adm-main-wrap .kh-sel-opt{
  display:block;width:100%;
  padding:10px 14px;
  font-family:var(--f-b);font-size:14px;font-weight:400;
  color:var(--c-dark);
  background:transparent;border:none;
  cursor:pointer;
  text-align:left;
  transition:background .12s ease;
  text-decoration:none!important;line-height:1.4;
}
.adm-main-wrap .kh-sel-opt:hover{background:rgba(196,153,42,.08)}
.adm-main-wrap .kh-sel-opt.selected{background:rgba(196,153,42,.14);color:var(--c-gold-dk);font-weight:500}
.adm-main-wrap .kh-sel-opt.selected::after{content:'✓';float:right;color:var(--c-gold)}

/* Place le <select> natif hors écran mais accessible */
.adm-main-wrap .kh-sel-native{
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;border:0!important;
  opacity:0!important;
}

/* ================================================================
   MOBILE RESPONSIVE HARDENING
   Last-pass overrides for inline admin/public layouts.
   ================================================================ */
@media(max-width:780px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important}
  *,*::before,*::after{box-sizing:border-box}

  .wrap{width:100%;padding-left:18px;padding-right:18px}
  img,video,canvas,svg{max-width:100%;height:auto}
  table{max-width:100%}

  .h1{font-size:clamp(31px,9vw,38px)!important;line-height:1.04!important}
  .h2{font-size:clamp(24px,7vw,30px)!important;line-height:1.12!important}
  .page-hero{padding:96px 0 44px}
  .page-hero p{font-size:14px;line-height:1.75}

  .filters{position:static;top:auto;padding:16px 0}
  .filters .wrap{gap:7px}
  .filter-btn{padding:7px 10px;font-size:9px;letter-spacing:1px}
  .filter-count{width:100%;font-size:11px;margin-top:4px}

  .btn,.adm-btn,.dash-btn,.login-btn{white-space:normal;line-height:1.35;text-align:center}

  .property-gallery-main{aspect-ratio:4/3}
  .property-gallery-thumbs{padding-bottom:4px}
  .property-gallery-thumb{width:66px;height:50px}
  .leg-card{padding:22px 20px}
  .leg-row{display:grid;grid-template-columns:1fr;gap:4px}
  .leg-lbl{min-width:0}

  .wrap[style*="display:grid"],
  .adm-main-wrap [style*="display:grid"]{min-width:0}
  .wrap[style*="grid-template-columns:1.5fr"],
  .wrap[style*="grid-template-columns:1fr 1fr"],
  .wrap[style*="grid-template-columns:380px"],
  .wrap[style*="grid-template-columns:360px"],
  .adm-main-wrap [style*="grid-template-columns:1.5fr"],
  .adm-main-wrap [style*="grid-template-columns:2fr 1fr"],
  .adm-main-wrap [style*="grid-template-columns:1fr 1fr"],
  main > section[style*="grid-template-columns:2fr 1fr"],
  main > section[style*="grid-template-columns:1.5fr 1fr"]{
    grid-template-columns:1fr!important;
    gap:20px!important;
  }
  ul[style*="grid-template-columns:repeat(2"],
  .adm-main-wrap [style*="grid-template-columns:repeat(4"],
  .adm-main-wrap [style*="grid-template-columns:repeat(3"],
  .adm-main-wrap [style*="grid-template-columns:repeat(2"]{
    grid-template-columns:1fr!important;
  }
  aside[style*="position:sticky"]{position:static!important;top:auto!important}

  .adm-main-wrap .dash-header{padding:16px 14px}
  .adm-main-wrap .dash-header h2{font-size:20px;line-height:1.2;word-break:break-word}
  .adm-main-wrap .dash-actions{width:100%;display:grid!important;grid-template-columns:1fr;gap:8px}
  .adm-main-wrap .dash-actions .adm-btn,
  .adm-main-wrap .dash-actions form,
  .adm-main-wrap .dash-actions button{width:100%;min-width:0}

  .adm-main-wrap .adm-section{padding:14px 12px}
  .adm-main-wrap form[style*="display:flex"]{width:100%;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .adm-main-wrap input[style*="width:240px"],
  .adm-main-wrap input[style*="min-width"],
  .adm-main-wrap select[style*="min-width"],
  .adm-main-wrap textarea[style*="min-width"]{
    width:100%!important;
    min-width:0!important;
  }

  .adm-table-scroll,.adm-table-wrap{max-width:100%;overflow-x:auto}
  .adm-main-wrap .adm-table{min-width:560px}

  .media-uploads,.media-grid{grid-template-columns:1fr!important}
  .prop-warning{display:block}
  .prop-warning strong{display:block;margin-bottom:6px}
  .prop-savebar{left:0!important;right:0!important;padding:10px env(safe-area-inset-right) calc(10px + env(safe-area-inset-bottom)) env(safe-area-inset-left)}
  .prop-savebar-inner{padding:0 10px;display:grid;grid-template-columns:1fr;gap:8px}
  .prop-savebar-inner .adm-btn{width:100%;min-width:0}

  .adm-mobile-brand{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .adm-sidebar{max-width:86vw}
}

@media(max-width:420px){
  .wrap{padding-left:14px;padding-right:14px}
  .nav-id{min-width:0}
  .nav-name{letter-spacing:2px;font-size:12px}
  .top-name,.adm-mobile-brand{letter-spacing:1.8px}
  .bc-meta{gap:10px}
  .bc-m{min-width:calc(50% - 10px)}
  .adm-main-wrap .adm-table{min-width:520px}
}
