:root {
  --bg: #0a0a0f; --surface: #14151d; --surface2: #1c1e28;
  --ink: #ece9df; --muted: #9aa0ae; --line: #2a2c38;
  --gold: #c9a227; --gold-hi: #ffd65a; --gold-dark: #9a7a14;
  --ok: #35b57a; --warn: #e0863a; --bad: #d05a52;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  background: var(--bg); color: var(--ink);
  font: 15px/1.55 -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  min-height: 100svh; display: flex; flex-direction: column;
}
a { color: var(--gold-hi); text-decoration: none; }
a:hover { text-decoration: underline; }
main { flex: 1; width: min(1060px, 94vw); margin: 0 auto; padding: 28px 0 60px; }

/* nav */
.nav {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px min(3vw, 34px); border-bottom: 1px solid var(--line);
  position: sticky; top: 0; background: rgba(10,10,15,.92);
  backdrop-filter: blur(8px); z-index: 10;
}
.brand { display: flex; align-items: center; gap: 10px; color: var(--ink); }
.brand img { height: 56px; margin: -6px 0; }
.brand span { letter-spacing: .22em; font-size: 13px; font-weight: 700;
  font-family: Cinzel, Georgia, serif; color: var(--gold-hi); }
.nav nav { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.nav nav a { color: var(--ink); font-size: 13.5px;
  font-family: Cinzel, Georgia, serif; font-weight: 700; letter-spacing: .04em; }
.nav .gold { color: var(--gold-hi); }
.nav .cta {
  background: linear-gradient(120deg, var(--gold), var(--gold-hi));
  color: #14171f; font-weight: 700; padding: 7px 16px; border-radius: 7px;
}
.nav .cta:hover { text-decoration: none; filter: brightness(1.08); }
.inline { display: inline; }
.linklike {
  background: none; border: 0; color: var(--muted); cursor: pointer;
  font: inherit; font-size: 13.5px;
  font-family: Cinzel, Georgia, serif; font-weight: 700; letter-spacing: .04em;
}

/* landing */
.hero {
  text-align: center; padding: 46px 0 30px; position: relative; overflow: hidden;
}
.hero::before {
  content: ""; position: absolute; inset: -40% -20%;
  background:
    radial-gradient(ellipse 40% 45% at 32% 38%, rgba(201,162,39,.14), transparent 70%),
    radial-gradient(ellipse 38% 42% at 68% 30%, rgba(120,140,255,.10), transparent 70%);
  animation: sweep 14s ease-in-out infinite alternate; pointer-events: none;
}
@keyframes sweep { to { transform: translateX(8%) translateY(4%) scale(1.06); } }
@media (prefers-reduced-motion: reduce) { .hero::before { animation: none; } }
.hero img { width: min(46vw, 300px); position: relative; }
.hero h1 { font-size: clamp(24px, 4vw, 38px); margin: 18px 0 8px; position: relative; }
.hero p.tag { color: var(--muted); font-size: 17px; position: relative; }
.hero .cta-big {
  display: inline-block; margin-top: 22px; position: relative;
  background: linear-gradient(120deg, var(--gold), var(--gold-hi));
  color: #14171f; font-weight: 800; font-size: 17px;
  padding: 13px 34px; border-radius: 9px;
}
.hero .cta-big:hover { text-decoration: none; filter: brightness(1.07); }
.hero .sub-cta { display: block; margin-top: 10px; color: var(--muted); font-size: 13px; position: relative; }

.grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 26px 0; }
.card {
  background: var(--surface); border: 1px solid var(--line);
  border-top: 2px solid var(--gold); border-radius: 10px; padding: 20px;
}
.card h3 { margin-bottom: 6px; font-size: 16px; }
.card p { color: var(--muted); font-size: 14px; }
h2.sec { margin: 40px 0 14px; font-size: 21px; }
h2.sec::after { content: ""; display: block; width: 54px; height: 3px; background: var(--gold); margin-top: 7px; }

/* compteur */
.places { display: flex; flex-direction: column; gap: 9px; }
.place { display: grid; grid-template-columns: 1fr 130px 90px; gap: 12px; align-items: center;
  background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; }
.place .bar { height: 8px; background: var(--surface2); border-radius: 4px; overflow: hidden; }
.place .bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold-dark), var(--gold-hi)); }
.place .n { text-align: right; font-variant-numeric: tabular-nums; color: var(--muted); font-size: 13px; }
.place.complet .n { color: var(--warn); font-weight: 700; }

/* steps */
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.step { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.step b { color: var(--gold-hi); display: block; margin-bottom: 4px; }
.step span { color: var(--muted); font-size: 14px; }

/* forms */
form.stack { display: flex; flex-direction: column; gap: 12px; max-width: 640px; }
label.f { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted); }
input, select, textarea {
  background: var(--surface2); color: var(--ink); border: 1px solid var(--line);
  border-radius: 7px; padding: 9px 11px; font: inherit; font-size: 14px;
}
input:focus, select:focus, textarea:focus { outline: 1.5px solid var(--gold); }
textarea { min-height: 84px; resize: vertical; }
button.btn {
  background: linear-gradient(120deg, var(--gold), var(--gold-hi));
  color: #14171f; font-weight: 700; border: 0; border-radius: 8px;
  padding: 11px 24px; font-size: 15px; cursor: pointer; align-self: flex-start;
}
button.btn:hover { filter: brightness(1.07); }
button.btn.small { padding: 6px 13px; font-size: 13px; }
button.ghost {
  background: none; border: 1px solid var(--line); color: var(--ink);
  border-radius: 7px; padding: 6px 13px; font-size: 13px; cursor: pointer;
}
.erreurs { background: rgba(208,90,82,.12); border: 1px solid var(--bad);
  border-radius: 8px; padding: 12px 16px; margin-bottom: 14px; }
.erreurs li { margin-left: 16px; color: #f0b6b1; }
.notice { background: rgba(201,162,39,.1); border: 1px solid var(--gold-dark);
  border-radius: 8px; padding: 12px 16px; margin: 12px 0; font-size: 14px; }

/* annuaire */
.filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.filters select, .filters input { min-width: 140px; }
.mgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.mcard { background: var(--surface); border: 1px solid var(--line); border-radius: 10px;
  padding: 16px; display: flex; flex-direction: column; gap: 5px; }
.mcard .rs { font-weight: 700; font-size: 15px; display: flex; align-items: center; gap: 7px; }
.badge { font-size: 11px; padding: 2px 8px; border-radius: 20px; white-space: nowrap; }
.badge.verif { background: rgba(53,181,122,.15); color: var(--ok); border: 1px solid var(--ok); }
.badge.cercle { background: rgba(201,162,39,.14); color: var(--gold-hi); border: 1px solid var(--gold-dark); }
.badge.st { background: var(--surface2); color: var(--muted); border: 1px solid var(--line); }
.mcard .who, .mcard .meta { color: var(--muted); font-size: 13px; }

/* referrals */
.rcard { background: var(--surface); border: 1px solid var(--line); border-radius: 10px;
  padding: 15px 17px; margin-bottom: 12px; }
.rcard .head { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.rcard .type { font-weight: 700; letter-spacing: .06em; font-size: 12px; }
.type.cherche { color: var(--gold-hi); } .type.recommande { color: var(--ok); }
.rcard .desc { margin: 7px 0; }
.rcard .meta { color: var(--muted); font-size: 12.5px; }
.rcard .actions { display: flex; gap: 8px; margin-top: 9px; flex-wrap: wrap; align-items: center; }
.st-ouvert { color: var(--gold-hi); } .st-en_discussion { color: var(--warn); }
.st-conclu { color: var(--ok); } .st-abandonne { color: var(--muted); }
.newref { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px; }
@media (max-width: 760px) { .newref { grid-template-columns: 1fr; } }
details.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
details.panel summary { padding: 12px 16px; cursor: pointer; font-weight: 700; color: var(--gold-hi); }
details.panel .inner { padding: 4px 16px 16px; }

/* tables admin */
table.t { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 8px 0 22px; }
.t th { text-align: left; color: var(--gold-dark); text-transform: uppercase;
  font-size: 11px; letter-spacing: .08em; padding: 7px 9px; border-bottom: 1px solid var(--gold-dark); }
.t td { padding: 8px 9px; border-bottom: 1px solid var(--line); vertical-align: top; }
.t tr:hover td { background: var(--surface); }
code.link { background: var(--surface2); padding: 2px 7px; border-radius: 5px;
  font-size: 11.5px; word-break: break-all; }

/* footer colonnes (v7, pattern ninabot.ch) */
.ftr { border-top: 1px solid var(--line); background: rgba(20,21,29,.6);
  margin-top: 40px; position: relative; z-index: 1; }
.ftr-inner { width: min(1060px, 94vw); margin: 0 auto; padding: 22px 0 16px;
  display: grid; grid-template-columns: 1.3fr 2fr; gap: 30px; }
.ftr-brand p { margin-top: 10px; color: var(--muted); font-size: 13px;
  font-family: Georgia, serif; font-style: italic; line-height: 1.45; }
.ftr-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ftr-col { display: flex; flex-direction: column; gap: 6px; }
.ftr-h { text-transform: uppercase; letter-spacing: .14em; font-size: 10.5px;
  font-weight: 700; color: var(--gold-dark); margin-bottom: 3px; }
.ftr-col a { color: var(--ink); font-size: 13.5px; opacity: .82; }
.ftr-col a:hover { opacity: 1; color: var(--gold-hi); text-decoration: none; }
.ftr-bottom { display: flex; justify-content: space-between; gap: 10px;
  flex-wrap: wrap; width: min(1060px, 94vw); margin: 0 auto; padding: 11px 0;
  border-top: 1px solid var(--line); color: var(--muted); font-size: 12.5px; }
.ftr-dom { color: var(--gold-dark); letter-spacing: .06em; }
@media (max-width: 720px) {
  .ftr-inner { grid-template-columns: 1fr; gap: 20px; padding: 20px 0 14px; }
  .ftr-cols { grid-template-columns: repeat(2, 1fr); }
}
.kv { color: var(--muted); font-size: 13px; }
.kv b { color: var(--ink); }
h1.page { font-size: 24px; margin-bottom: 4px; }
p.lead { color: var(--muted); margin-bottom: 20px; }
.total-chf { font-size: 26px; font-weight: 800; color: var(--gold-hi); }

/* v4 — mix vision Nakisa (2026-08-21) */
.nav .lang { border: 1px solid var(--line); border-radius: 6px; padding: 3px 8px;
  font-size: 12px; letter-spacing: .08em; color: var(--muted); }
.nav .lang:hover { color: var(--ink); text-decoration: none; border-color: var(--gold-dark); }
.badge.boss { background: rgba(201,162,39,.14); color: var(--gold-hi); border: 1px solid var(--gold-dark); }
.badge.featured { background: rgba(120,90,220,.16); color: #b9a5f5; border: 1px solid #6a55b8; }
.tier-pick { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin: 8px 0 4px; }
.tier-pick label { background: var(--surface); border: 1px solid var(--line); border-radius: 10px;
  padding: 14px 16px; cursor: pointer; display: block; }
.tier-pick label:has(input:checked) { border-color: var(--gold-hi); box-shadow: 0 0 0 1px var(--gold-dark); }
.tier-pick input { margin-right: 8px; }
.tier-pick .price { color: var(--gold-hi); font-weight: 700; }
.tier-pick .desc { color: var(--muted); font-size: 13px; margin-top: 5px; }
.tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 26px 0; }
.tiers.two { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); max-width: 860px; }
.tiers .card.hi { border-color: var(--gold-dark); box-shadow: 0 0 24px rgba(201,162,39,.12); }
.tiers .price { font-size: 22px; font-weight: 800; color: var(--gold-hi); margin: 4px 0 8px; }
.tiers ul { list-style: none; margin-top: 8px; }
.tiers li { color: var(--muted); font-size: 14px; padding: 3px 0; }
.tiers li::before { content: "— "; color: var(--gold-dark); }
.tiers .card.feat { border-color: #b9a5f5; box-shadow: 0 0 24px rgba(185,165,245,.12); }
.tiers .card.feat h3 { color: #cbbcf7; }
.price .founding { font-size: 12px; color: var(--gold-hi); border: 1px solid var(--gold-dark);
  border-radius: 20px; padding: 2px 10px; vertical-align: middle; margin-left: 8px;
  letter-spacing: .06em; font-weight: 600; }
.tiers ul.cols2 { columns: 2; column-gap: 24px; }
.tiers ul.cols2 li { break-inside: avoid; }
@media (max-width: 700px) { .tiers ul.cols2 { columns: 1; } }
.hero .identity { display: block; margin-top: 14px; letter-spacing: .14em; font-size: 12px;
  text-transform: uppercase; color: var(--gold-hi); position: relative; }
.boss-head { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.boss-head h1 { font-size: clamp(24px, 4vw, 34px); }
.boss-head .role { color: var(--muted); font-size: 16px; }

/* v5 — review Nakisa (2026-08-21) */
.hero-ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; position: relative; }
.cta-big.alt { background: transparent; color: var(--gold-hi); border: 1px solid var(--gold-dark); }
.cta-big.alt:hover { filter: none; background: rgba(201,162,39,.08); }
.bosses { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.bcard { background: var(--surface); border: 1px solid var(--line); border-radius: 12px;
  padding: 18px; display: flex; flex-direction: column; gap: 6px; color: inherit; text-align: center; align-items: center; }
.bcard:hover { text-decoration: none; border-color: var(--gold-dark); }
.avatar { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.avatar.mono, .botw-photo.mono { display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--gold-dark), var(--gold-hi)); color: #14171f;
  font-weight: 800; font-size: 28px; letter-spacing: .02em; }
.bcard .rs { font-weight: 700; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: center; }
.bcard .who { color: var(--ink); font-size: 13.5px; }
.bcard .meta { color: var(--muted); font-size: 12.5px; }
.bcard .view { color: var(--gold-hi); font-size: 13px; margin-top: 4px; }
.botw { display: flex; gap: 26px; align-items: center; background: var(--surface);
  border: 1px solid var(--gold-dark); border-radius: 14px; padding: 26px; flex-wrap: wrap; }
.botw-photo { width: 160px; height: 160px; border-radius: 12px; object-fit: cover; font-size: 44px; flex: none; }
.botw-body h3 { display: flex; gap: 10px; align-items: center; font-size: 20px; flex-wrap: wrap; }
.botw-body blockquote { margin: 10px 0; color: var(--ink); font-style: italic; font-size: 16px; }
.botw-links { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.nina-steps { list-style: none; margin: 8px 0; }
.nina-steps li { color: var(--muted); padding: 3px 0; }
.nina-steps li::before { content: "→ "; color: var(--gold-hi); }
.faq { display: flex; flex-direction: column; gap: 8px; max-width: 760px; }
.faq summary { cursor: pointer; padding: 12px 16px; font-weight: 600; }
.faq p { padding: 0 16px 14px; color: var(--muted); }
.final-cta { text-align: center; margin: 60px 0 20px; }
.final-cta h2 { font-size: clamp(20px, 3vw, 30px); margin-bottom: 8px; }
.final-cta .tag { color: var(--muted); margin-bottom: 18px; }
.lang-sw { display: inline-flex; gap: 6px; align-items: center; border: 1px solid var(--line);
  border-radius: 6px; padding: 3px 8px; font-size: 12px; letter-spacing: .08em; }
.lang-sw a { color: var(--muted); } .lang-sw a.on { color: var(--gold-hi); font-weight: 700; }
.lang-sw i { color: var(--line); font-style: normal; }

/* v6 — home GPT-like : recherche annuaire au centre (2026-08-23) */
.ghome { display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; min-height: calc(100svh - 230px); padding: 24px 0;
  position: relative; overflow: visible; }
.ghome::before { content: ""; position: absolute; inset: -30% -25%;
  background:
    radial-gradient(ellipse 40% 45% at 32% 40%, rgba(201,162,39,.13), transparent 70%),
    radial-gradient(ellipse 38% 42% at 68% 32%, rgba(120,140,255,.09), transparent 70%);
  animation: sweep 14s ease-in-out infinite alternate; pointer-events: none; z-index: -1; }
@media (prefers-reduced-motion: reduce) { .ghome::before { animation: none; } }
.ghome-logo { width: min(30vw, 132px); }
.ghome h1 { font-size: clamp(26px, 4.6vw, 42px); letter-spacing: .05em; margin: 14px 0 6px; }
.ghome-tag { color: var(--muted); font-size: 16.5px; max-width: 560px; margin-bottom: 30px; }
.ghome .identity { display: block; margin-top: 16px; letter-spacing: .14em; font-size: 11.5px;
  text-transform: uppercase; color: var(--gold-dark); }

.gsearch { position: relative; width: min(660px, 92vw); }
.gsearch .ico { position: absolute; left: 20px; top: 50%; transform: translateY(-50%);
  color: var(--muted); pointer-events: none; }
.gsearch input { width: 100%; padding: 17px 60px 17px 52px; border-radius: 999px;
  font-size: 16.5px; background: var(--surface); border: 1px solid var(--line);
  box-shadow: 0 10px 34px rgba(0,0,0,.38); }
.gsearch input:focus { outline: none; border-color: var(--gold-dark);
  box-shadow: 0 0 0 3px rgba(201,162,39,.14), 0 10px 34px rgba(0,0,0,.38); }
.gsearch .go { position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; border-radius: 50%; border: 0; cursor: pointer;
  background: linear-gradient(120deg, var(--gold), var(--gold-hi));
  color: #14171f; font-size: 18px; font-weight: 800; line-height: 1; }
.gsearch .go:hover { filter: brightness(1.08); }
.gsearch.inline { margin: 4px 0 10px; }
.gsearch.inline input { padding: 12px 54px 12px 48px; font-size: 15px; box-shadow: none; }
.gsearch.inline .go { width: 34px; height: 34px; font-size: 15px; right: 6px; }

.gsearch-drop { position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 30;
  background: var(--surface); border: 1px solid var(--line); border-radius: 16px;
  overflow: hidden; box-shadow: 0 18px 48px rgba(0,0,0,.55); text-align: left; }
.gsearch-drop a { display: flex; gap: 12px; align-items: center; padding: 10px 16px;
  color: var(--ink); }
.gsearch-drop a:hover, .gsearch-drop a.sel { background: var(--surface2); text-decoration: none; }
.gsearch-drop .nm { font-weight: 700; display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.gsearch-drop .sub { display: block; color: var(--muted); font-size: 12.5px; }
.gsearch-drop .none { padding: 14px 18px; color: var(--muted); font-size: 14px; }
.avatar.s { width: 36px; height: 36px; font-size: 14px; flex: none; }
.avatar.xs { width: 22px; height: 22px; font-size: 10px; flex: none; border-radius: 50%; object-fit: cover; }

.gchips { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
  margin-top: 24px; max-width: 700px; }
.gchip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 8px;
  border-radius: 999px; border: 1px solid var(--line); background: var(--surface);
  color: var(--ink); font-size: 13.5px; }
.gchip:hover { border-color: var(--gold-dark); text-decoration: none; }
.gchip .star { color: var(--gold-hi); }
.gchip.more { color: var(--gold-hi); padding: 6px 14px; }
.ghome-alt { margin-top: 36px; color: var(--muted); font-size: 14px; }
.ghome-alt i { color: var(--line); font-style: normal; margin: 0 6px; }

/* v7 — home « The Marque » (2026-08-31) : recherche haut-centre + popin
   filtres, grille éditoriale de cartes claires, watermark logo sticky */
.wm { position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background: url("/static/logo.webp") no-repeat center 42%;
  background-size: min(72vh, 72vw); opacity: .11;
  filter: saturate(.6); }
.mq-head { text-align: center; padding: 30px 0 8px; }
/* titre dans la police/couleur du wordmark du logo (Cinzel + or métallique) */
.mq-head h1 { font-family: Cinzel, Georgia, serif; font-weight: 900;
  font-size: clamp(26px, 4vw, 40px); letter-spacing: .08em;
  background: linear-gradient(180deg, #ffe9a0 8%, var(--gold-hi) 30%,
    var(--gold) 62%, var(--gold-dark) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.45)); }
.mq-tag { color: var(--muted); font-size: 15px; margin: 6px auto 22px; max-width: 560px; }
.mq-bar { display: flex; gap: 10px; justify-content: center; align-items: center;
  position: relative; }
.gsearch.top { width: min(560px, calc(92vw - 110px)); }
.gsearch.top input { padding: 13px 56px 13px 48px; font-size: 15.5px; }
.gsearch.top .go { width: 36px; height: 36px; font-size: 16px; }

.fbtn { display: inline-flex; align-items: center; gap: 7px; padding: 12px 18px;
  border-radius: 999px; border: 1px solid var(--line); background: var(--surface);
  color: var(--ink); font-family: inherit; font-size: 14px; font-weight: 600;
  cursor: pointer; flex: none; }
.fbtn:hover, .fbtn.on { border-color: var(--gold-dark); }
.fbtn .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold-hi); }

/* drawer filtres — panneau off-canvas depuis la droite */
.foverlay { position: fixed; inset: 0; z-index: 90; background: rgba(5,5,9,.55);
  backdrop-filter: blur(2px); opacity: 0; pointer-events: none;
  transition: opacity .32s ease; }
.foverlay.on { opacity: 1; pointer-events: auto; }
.fdrawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 95;
  width: min(340px, 90vw); background: var(--surface);
  border-left: 1px solid var(--line); box-shadow: -24px 0 60px rgba(0,0,0,.5);
  padding: 20px 22px; display: flex; flex-direction: column; gap: 4px;
  transform: translateX(105%); transition: transform .32s cubic-bezier(.22,.85,.3,1);
  overflow-y: auto; }
.fdrawer.open { transform: none; }
@media (prefers-reduced-motion: reduce) { .fdrawer, .foverlay { transition: none; } }
body.noscroll { overflow: hidden; }
.fd-head { display: flex; justify-content: space-between; align-items: center;
  padding-bottom: 12px; border-bottom: 1px solid var(--line); margin-bottom: 14px; }
.fd-title { font: 700 17px Georgia, serif; letter-spacing: .04em; }
.fd-close { background: none; border: 1px solid var(--line); border-radius: 50%;
  width: 32px; height: 32px; color: var(--muted); font-size: 14px; cursor: pointer; }
.fd-close:hover { color: var(--ink); border-color: var(--gold-dark); }
.fd-form { display: flex; flex-direction: column; flex: 1; }
.fgrp { margin-bottom: 18px; display: flex; flex-direction: column; gap: 8px; }
.flab { font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--gold-dark); font-weight: 700; }
.fd-form select { width: 100%; padding: 9px 10px; border-radius: 8px;
  background: var(--surface2); color: var(--ink); border: 1px solid var(--line);
  font-family: inherit; font-size: 14px; }
.fd-form label { display: flex; gap: 9px; align-items: center; font-size: 14px;
  color: var(--ink); cursor: pointer; }
.fd-form input[type="checkbox"], .fd-form input[type="radio"] { width: auto;
  accent-color: var(--gold); }
.fact { display: flex; justify-content: space-between; align-items: center;
  border-top: 1px solid var(--line); padding-top: 14px; margin-top: auto; }
.freset { color: var(--muted); font-size: 13px; }

.mq-grid-wrap { padding: 26px 0 40px; }
.mq-count { color: var(--muted); font-size: 13.5px; margin: 0 0 14px; text-align: center; }
.mq-count a { margin-left: 8px; }
.mq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px; }
.mq-card { display: flex; gap: 16px; align-items: center; padding: 0 18px 0 0;
  min-height: 104px; background: #e6ddc0; color: #1c1e28; border-radius: 3px;
  overflow: hidden; box-shadow: 0 8px 26px rgba(0,0,0,.35);
  transition: transform .18s ease, box-shadow .18s ease; }
.mq-card:hover { text-decoration: none; transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(0,0,0,.5), 0 0 0 1px var(--gold-dark); }
/* STARRED : profil boosté 4 semaines — liseré or */
.mq-card.starred, .bcard.starred { box-shadow: 0 8px 26px rgba(0,0,0,.35),
  0 0 0 2px var(--gold); }
/* photo pleine hauteur de la vignette (bord à bord, demande Nick 2026-08-31) */
.mq-photo { width: 92px; align-self: stretch; height: auto; object-fit: cover;
  flex: none; background: var(--surface2); }
.mq-photo.mono { display: flex; align-items: center; justify-content: center;
  font: 700 24px Georgia, serif; color: var(--gold-dark);
  background: #d6cba6; letter-spacing: .04em; }
.mq-body { min-width: 0; display: flex; flex-direction: column; gap: 3px;
  padding: 14px 0; }
.mq-name { font: 700 18px Georgia, "Times New Roman", serif; color: #14171f;
  display: flex; align-items: baseline; gap: 7px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mq-name > :first-child { overflow: hidden; text-overflow: ellipsis; }
.mq-check { color: var(--gold-dark); font-size: 14px; flex: none; }
.mq-star { color: var(--gold); font-size: 14px; flex: none; }
.mq-role { color: #3a3d49; font-size: 13.5px; line-height: 1.4;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mq-loc { color: #8a8779; font-size: 12px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.identity.center { display: block; text-align: center; margin-top: 18px;
  letter-spacing: .14em; font-size: 11.5px; text-transform: uppercase;
  color: var(--gold-dark); }
.mq-grid-wrap .ghome-alt { text-align: center; }

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

@media (max-width: 700px) {
  .brand span { display: none; }
  .nav { padding: 10px 14px; }
  .nav nav { gap: 12px; }
  .nav nav a { font-size: 13px; }
  .ghome { min-height: calc(100svh - 320px); }
  .mq-bar { flex-wrap: wrap; }
  .gsearch.top { width: 100%; }
  .mq-card { padding: 0 14px 0 0; gap: 14px; min-height: 92px; }
  .mq-photo { width: 80px; }
  .mq-body { padding: 12px 0; }
  .mq-name { font-size: 18px; }
}

/* lightbox photo membre (clic = plein format) */
.zoomable { cursor: zoom-in; }
.lightbox[hidden] { display: none; }
.lightbox { position: fixed; inset: 0; z-index: 200; cursor: zoom-out;
  background: rgba(5,5,9,.88); backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center; }
.lightbox img { max-width: 92vw; max-height: 92vh; border-radius: 6px;
  box-shadow: 0 30px 90px rgba(0,0,0,.7); }

/* ── Mon espace (v6.0) ── */
.esp-hero { display: flex; gap: 26px; align-items: center; padding: 26px; border: 1px solid var(--line); border-radius: 16px;
  background: radial-gradient(120% 160% at 0% 0%, rgba(201,162,39,.16), transparent 55%), var(--surface); margin-bottom: 22px; flex-wrap: wrap; }
.esp-photo { width: 124px; height: 124px; border-radius: 14px; object-fit: cover; flex: none; border: 1px solid var(--gold-dark); box-shadow: 0 8px 30px rgba(0,0,0,.45); display: inline-flex; align-items: center; justify-content: center; font-size: 36px; background: var(--surface2); }
.esp-eyebrow { font-family: Cinzel, Georgia, serif; letter-spacing: .22em; font-size: 11px; color: var(--gold-hi); margin-bottom: 4px; }
.esp-hero h1 { font-size: clamp(24px, 4vw, 34px); line-height: 1.1; }
.esp-role { color: var(--muted); margin-top: 4px; }
.esp-badges { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.esp-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 14px; }
.esp-miss { color: var(--warn); }
.esp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; }
.esp-card { border: 1px solid var(--line); border-radius: 16px; padding: 22px; background: var(--surface); display: flex; flex-direction: column; gap: 8px; min-height: 220px; }
.esp-card h2 { font-family: Cinzel, Georgia, serif; font-size: 15px; letter-spacing: .08em; color: var(--gold-hi); }
.esp-card h3 { font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: var(--gold-dark); margin-top: 8px; }
.esp-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.esp-bb { grid-column: 1 / -1; background-size: cover; background-position: center; min-height: 300px; justify-content: flex-end; }
.esp-big { font-size: 26px; font-family: Cinzel, Georgia, serif; color: var(--ink); }
.esp-big small { font-size: 14px; font-family: inherit; color: var(--muted); }
.esp-deco { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 10px; }
.esp-logo { height: 44px; background: #fff; border-radius: 6px; padding: 4px; }
.esp-thumb { height: 44px; width: 60px; object-fit: cover; border-radius: 6px; border: 1px solid var(--gold-dark); }
.esp-list { list-style: none; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.esp-excerpt { color: var(--ink); }
.esp-chat { background: var(--bg); border: 1px solid var(--line); border-radius: 10px; padding: 10px; max-height: 220px; overflow: auto; display: flex; flex-direction: column; gap: 6px; }
.esp-chat .msg { max-width: 92%; padding: 7px 10px; border-radius: 10px; font-size: 13.5px; line-height: 1.4; }
.esp-chat .msg.c { background: var(--surface2); align-self: flex-start; }
.esp-chat .msg.v { background: rgba(201,162,39,.16); border: 1px solid var(--gold-dark); align-self: flex-end; }
.esp-row { display: flex; gap: 8px; }
.esp-row input { flex: 1; min-width: 0; background: var(--bg); border: 1px solid var(--line); color: var(--ink); padding: 9px 11px; border-radius: 8px; font: inherit; }
.esp-mem { list-style: none; display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.esp-mem li { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.esp-forget { margin-left: auto; color: var(--muted); }
.btn.ghost { background: transparent; color: var(--gold-hi); border: 1px solid var(--gold-dark); }
@media (max-width: 640px) { .esp-hero { padding: 18px; } .esp-card { padding: 16px; } }

/* Invitation (bandeau haut de page + rappel sur le formulaire) — 2026-09-22 */
.invite-bar{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:center;
  background:linear-gradient(90deg,#1b1508,#2a2210);border-bottom:1px solid #4a3c14;
  color:#e8d5ab;padding:9px 16px;font-size:14px;text-align:center}
.invite-bar a{color:#deba7c;font-weight:600;white-space:nowrap}
.invite-offert{background:#1b1508;border:1px solid #4a3c14;border-radius:10px;
  padding:12px 14px;color:#e8d5ab;margin:16px 0}
.invite-offert code{background:#000;color:#deba7c;padding:2px 8px;border-radius:5px;
  letter-spacing:.08em}
