/* =========================================================
   CONTACTLY — feuille de styles
   ========================================================= */

:root{
  /* Fonds — léger dégradé lilas → crème */
  --bg:        #fcf4ff;
  --bg-2:      #F6F6F8;
  --surface:   #FFFFFF;
  --surface-2: #F1F2F4;
  --border:    rgba(20,20,30,.11);
  --border-hi: rgba(20,20,30,.22);

  /* Texte */
  --text:  #17181C;
  --muted: #5B5F6B;
  --dim:   #868B96;

  /* Bleu-violet-rose — l'accent de la marque (noms de variables conservés depuis la v1 sombre) */
  --violet-900:#1B1464;
  --violet-700:#5A1FD6;
  --violet-500:#8B3BFF;
  --violet-400:#B06BFF;
  --violet-300:#7421C9;
  --cyan-500:  #0E9F6E;
  --cyan-400:  #17B881;
  --cyan-300:  #057A55;

  --grad: linear-gradient(103deg,#2E6BFF 0%,#8B3BFF 55%,#FF4FC2 100%);
  --grad-soft: linear-gradient(103deg,#5C85FF,#D08BFF 55%,#FF8FD6 100%);

  --good:  #0E9F6E;
  --bad:   #E11D48;

  /* Mesures */
  --wrap: 1180px;
  --wrap-nar: 760px;
  --r: 0;
  --r-lg: 0;

  --ease: cubic-bezier(.22,.61,.36,1);
  --shadow-card: 0 1px 2px rgba(20,20,30,.04), 0 10px 24px -16px rgba(20,20,30,.18);
  --shadow-card-hover: 0 1px 2px rgba(20,20,30,.05), 0 16px 32px -16px rgba(20,20,30,.22);

  --serif: "Chakra Petch", "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
           "Helvetica Neue", Arial, sans-serif;
  --mono:  "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:linear-gradient(180deg, #fcf4ff 0%, #fffbf4 100%);
  background-attachment:fixed;
  color:var(--text);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

body.is-locked{ overflow:hidden; }

img,svg{ max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ol,ul{ margin:0; padding:0; list-style:none; }
p{ margin:0; }
h1,h2,h3,h4{ margin:0; font-weight:400; }

.wrap{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:24px;
}
.wrap-nar{
  width:100%;
  max-width:var(--wrap-nar);
  margin-inline:auto;
  padding-inline:24px;
}

.display{
  font-family:var(--serif);
  font-weight:700;
  letter-spacing:-.01em;
}
.display em{ font-style:normal; font-weight:700; color:var(--violet-300); }

.kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--violet-300);
}
.kicker::before{
  content:"";
  width:7px; height:7px; border-radius:0;
  background:var(--grad-soft);
  flex:none;
}

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:13px 26px;
  border-radius:0;
  font-family:var(--serif);
  font-weight:700;
  font-size:14px;
  letter-spacing:.04em;
  text-transform:uppercase;
  background:var(--grad);
  color:#140024;
  box-shadow:0 10px 24px -10px rgba(139,59,255,.55);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.btn:hover{ transform:translateY(-1px); box-shadow:0 14px 28px -8px rgba(139,59,255,.65); }
.btn-outline{
  background:transparent;
  color:var(--text);
  box-shadow:none;
  border:1.5px solid var(--border-hi);
}
.btn-outline:hover{ border-color:var(--violet-500); background:rgba(139,59,255,.06); }
.btn-sm{ padding:9px 18px; font-size:13px; }
.btn-block{ width:100%; }

/* ---------- Bannière publicitaire (au-dessus du header) ---------- */
.top-ad{ background:var(--bg); }
.top-ad-inner{ max-width:393px; margin-inline:auto; padding:10px 24px 0; }
.top-ad-inner img{ display:block; width:100%; height:auto; border:1px solid var(--border); }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:40;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.site-header.scrolled{
  background:rgba(255,255,255,.97);
  border-bottom-color:var(--border);
  box-shadow:0 1px 0 var(--border), 0 8px 24px -16px rgba(20,20,30,.15);
}
.header-inner{
  max-width:var(--wrap);
  margin-inline:auto;
  padding:16px 24px 14px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px;
  position:relative;
}
.logo{ display:flex; align-items:center; gap:9px; font-family:var(--serif); font-size:19px; color:var(--text); white-space:nowrap; }
.logo-mark{
  width:32px; height:32px; border-radius:0;
  object-fit:cover; object-position:top center;
  flex:none;
}
.logo-img{ height:102px; width:auto; display:block; flex:none; }
.footer-brand .logo-img{ height:38px; }
.logo em{ font-style:italic; color:var(--violet-300); }

.nav{ display:flex; align-items:center; gap:4px; font-size:14.5px; font-family:var(--serif); font-weight:600; }
.nav-center{ margin-left:0; }
.nav a{
  padding:9px 13px; border-radius:0; color:var(--muted);
  transition:color .2s, background .2s;
}
.nav a:hover, .nav a.active{ color:var(--text); background:rgba(255,79,194,.14); }
.nav-right{ margin-left:auto; display:flex; align-items:center; gap:10px; }

.burger{ display:none; width:38px; height:38px; border-radius:0; align-items:center; justify-content:center; flex:none; position:absolute; top:18px; right:24px; }
.burger span{ display:block; width:18px; height:1.6px; background:var(--text); border-radius:0; position:relative; transition:transform .25s, opacity .25s; }
.burger span::before, .burger span::after{ content:""; position:absolute; left:0; width:18px; height:1.6px; background:var(--text); border-radius:0; transition:transform .25s, opacity .25s; }
.burger span::before{ top:-6px; }
.burger span::after{ top:6px; }
.burger[aria-expanded="true"] span{ background:transparent; }
.burger[aria-expanded="true"] span::before{ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span::after{ transform:translateY(-6px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; top:64px; z-index:39;
  background:var(--bg-2);
  padding:18px 24px 28px;
  display:flex; flex-direction:column; gap:4px;
  overflow-y:auto;
}
.mobile-menu[hidden]{ display:none; }
.mobile-menu nav{ display:flex; flex-direction:column; gap:2px; margin-bottom:18px; }
.mobile-menu a{ padding:13px 6px; border-bottom:1px solid var(--border); font-size:16px; color:var(--text); font-family:var(--serif); font-weight:600; }
.mobile-menu a:active, .mobile-menu a:hover{ background:rgba(255,79,194,.14); }

@media (max-width:900px){
  .nav-center, .nav-right .nav{ display:none; }
  .burger{ display:flex; }
  .nav-right{ margin-left:auto; }
  .logo-img{ height:72px; }
}
@media (min-width:901px){ .mobile-menu{ display:none !important; } }

/* ---------- Couverture page d'accueil ---------- */
.home-cover{
  position:relative; margin:0; width:100%; height:300px;
  overflow:hidden;
}
.home-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.home-cover::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(11,12,16,.55) 0%, rgba(11,12,16,0) 45%); }
.home-cover figcaption{
  position:absolute; left:24px; bottom:16px;
  font-family:var(--mono); font-size:12px; letter-spacing:.03em;
  color:#fff; text-transform:uppercase;
}
@media (max-width:760px){ .home-cover{ height:200px; } }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:84px 0 64px;
  overflow:hidden;
}
.hero-bg{ display:none; }
.beam{ position:absolute; border-radius:0; }
.beam-1{ width:420px; height:420px; left:4%; top:0; background:var(--violet-700); }
.beam-2{ width:360px; height:360px; right:6%; top:10%; background:var(--cyan-500); opacity:.6; }
.hero-content{ max-width:var(--wrap); margin-inline:auto; padding-inline:24px; }
.hero-grid{ display:flex; align-items:center; gap:48px; }
.hero-illustration{ flex:none; width:340px; height:auto; }
@media (max-width:980px){ .hero-illustration{ display:none; } }
.hero h1{ font-size:clamp(34px,5.4vw,60px); line-height:1.08; }
.hero-sub{ margin-top:18px; max-width:620px; color:var(--muted); font-size:17.5px; }
.hero-actions{ margin-top:30px; display:flex; gap:14px; flex-wrap:wrap; }

.rule{ border:0; height:1px; background:var(--border); margin:0; }

/* ---------- Section titles ---------- */
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:34px; flex-wrap:wrap; }
.section-title{ font-size:clamp(26px,3.4vw,38px); }
.section-link{ font-family:var(--mono); font-size:13px; color:var(--violet-300); letter-spacing:.03em; white-space:nowrap; }
.section-link:hover{ color:var(--cyan-300); }

section{ padding:64px 0; }

/* ---------- Category grid (classement) ---------- */
.cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:980px){ .cat-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cat-grid{ grid-template-columns:1fr; } }

.cat-card{
  display:flex; flex-direction:column; gap:14px;
  padding:26px 22px;
  border:1px solid var(--border);
  border-radius:0;
  background:var(--surface);
  box-shadow:var(--shadow-card);
  transition:border-color .25s, transform .25s var(--ease), box-shadow .25s var(--ease);
}
.cat-card:hover{ border-color:var(--border-hi); transform:translateY(-3px); box-shadow:var(--shadow-card-hover); }
.cat-icon{
  width:42px; height:42px; border-radius:0;
  display:flex; align-items:center; justify-content:center;
  background:rgba(139,59,255,.12); color:var(--violet-300);
}
.cat-card h3{ font-family:var(--serif); font-size:20px; }
.cat-card p{ color:var(--muted); font-size:14px; }
.cat-count{ margin-top:auto; font-family:var(--mono); font-size:12px; color:var(--dim); }

/* ---------- Ranking list ---------- */
.rank-list{ display:flex; flex-direction:column; gap:18px; }
.rank-item{
  display:grid; grid-template-columns:64px 1fr; gap:0; align-items:stretch;
  border:2px solid var(--text);
  border-radius:0;
  background:var(--surface);
  box-shadow:none;
  position:relative;
}
.rank-item::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:6px;
  background:var(--grad);
}
.rank-pos{
  font-family:var(--mono); font-size:15px; font-weight:700; color:#fff; line-height:1;
  background:var(--text);
  display:flex; align-items:flex-start; justify-content:center;
  padding-top:24px;
  letter-spacing:.04em;
}
.rank-item.pos-1 .rank-pos, .rank-item.pos-2 .rank-pos, .rank-item.pos-3 .rank-pos{ background:var(--violet-500); }
.rank-body{
  display:grid; grid-template-columns:190px 1fr; gap:0 28px;
  padding:26px 26px 26px 22px;
}
@media (max-width:680px){ .rank-body{ grid-template-columns:1fr; } }
.rank-body h3{
  grid-column:2; grid-row:1;
  font-family:var(--serif); font-size:34px; margin-bottom:6px;
  display:flex; align-items:center; flex-wrap:wrap; gap:10px;
}
.org-logo{
  width:30px; height:30px; border-radius:0;
  background:#fff; border:1px solid var(--border);
  object-fit:contain; padding:4px; flex:none;
}
.rank-link{ display:inline-flex; align-items:center; gap:10px; color:inherit; }
.rank-link:hover{ color:var(--violet-500); text-decoration:underline; text-underline-offset:3px; }

/* ---------- Clins d'œil typographiques à l'identité de chaque marque ---------- */
.bn-round{ font-family:"Poppins", var(--sans); font-weight:600; }
.bn-playful{ font-family:"Fredoka", var(--sans); font-weight:600; }
.bn-serif{ font-family:"Playfair Display", serif; font-style:italic; font-weight:600; }
.bn-squale{ font-family:"Poly", serif; font-style:italic; }
.bn-impact{ font-family:"Oswald", var(--sans); font-weight:600; text-transform:uppercase; letter-spacing:.02em; }
.bn-system{ font-family:"Segoe UI", Tahoma, Geneva, var(--sans); font-weight:600; }
.rank-more{ display:inline-block; margin-top:14px; font-family:var(--mono); font-size:12.5px; color:var(--violet-300); }
.rank-more:hover{ color:var(--cyan-300); }

/* ---------- Trust Tracker : version compacte, dans l'encart de note ---------- */
.trust-mini{
  margin-top:14px; padding-top:14px; border-top:1px solid var(--border-hi);
  display:flex; flex-direction:column; gap:10px;
}
.trust-mini-item{ display:flex; flex-direction:column; gap:4px; }
.trust-mini-label{ font-family:var(--mono); font-size:8.5px; text-transform:uppercase; letter-spacing:.03em; color:var(--dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trust-mini-bar{ position:relative; height:4px; border-radius:0; background:var(--surface-2); overflow:hidden; }
.trust-mini-fill{ position:absolute; inset:0; width:0; border-radius:0; background:var(--good); }
.trust-mini-fill.fill-mid{ background:#F5A623; }
.trust-mini-fill.fill-bad{ background:var(--bad); }
.trust-mini-value{ font-size:10px; font-weight:600; color:var(--text); }
@media (max-width:680px){ .trust-mini{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px 14px; } }

/* ---------- Trust Tracker : version complète (page d'avis dédiée) ---------- */
.trust-tracker{
  border:1px solid var(--border); border-radius:0; background:var(--surface);
  box-shadow:var(--shadow-card); overflow:hidden; margin-top:28px;
}
.trust-tracker-title{ font-family:var(--serif); font-size:19px; padding:22px 26px; border-bottom:1px solid var(--border); background:var(--bg-2); }
.trust-list{ display:flex; flex-direction:column; padding:10px 26px 22px; }
.trust-row{ display:grid; grid-template-columns:230px 1fr 56px; align-items:center; gap:18px; padding:12px 0; }
.trust-label{ display:flex; align-items:center; gap:9px; font-weight:600; font-size:14.5px; color:var(--text); }
.trust-label svg{ flex:none; color:var(--violet-400); }
.trust-info{ color:var(--dim); font-size:12px; cursor:help; }
.trust-dots{ display:flex; align-items:center; gap:7px; }
.trust-dots .dot{ width:14px; height:14px; flex:none; background:var(--surface-2); border:1.5px solid var(--border-hi); }
.trust-dots .dot.filled{ background:var(--violet-500); border-color:var(--violet-500); }
.trust-value{ text-align:right; font-weight:700; font-size:15px; color:var(--text); }
@media (max-width:600px){
  .trust-row{ grid-template-columns:1fr; gap:8px; }
  .trust-value{ text-align:left; }
}
.rank-tag{ font-family:var(--mono); font-size:11.5px; color:var(--dim); text-transform:uppercase; letter-spacing:.05em; }
.rank-desc{ grid-column:2; margin-top:10px; color:var(--muted); font-size:14.5px; line-height:1.65; }
.rank-pros-cons{ grid-column:2; margin-top:16px; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
.rank-pros-cons p{ font-size:13.5px; line-height:1.55; }
.rank-pros-cons .lbl{ font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px; display:block; }
.lbl-good{ color:var(--good); }
.lbl-bad{ color:var(--bad); }
.rank-pros-cons ul{ display:flex; flex-direction:column; gap:5px; }
.rank-pros-cons li{ padding-left:16px; position:relative; color:var(--muted); font-size:13.5px; }
.rank-pros-cons li::before{ position:absolute; left:0; }
.pros li::before{ content:"+"; color:var(--good); font-weight:700; }
.cons li::before{ content:"–"; color:var(--bad); font-weight:700; }
.rank-more{ grid-column:2; }

/* ---------- Encart de note : panneau sombre, calé à gauche ---------- */
.rank-side{
  grid-column:1; grid-row:1 / span 6; align-self:start;
  border-radius:0; border-top:5px solid var(--violet-500);
  background:var(--text); color:#fff;
  padding:20px 16px; overflow:hidden;
}
.rank-score{ text-align:left; }
.score-num{ font-family:var(--serif); font-size:40px; font-weight:700; color:var(--text); line-height:1; }
.score-num span{ font-size:15px; color:var(--dim); }
.score-stars{ margin-top:8px; font-size:13px; letter-spacing:2px; line-height:1; color:var(--violet-400); }
.score-note{ margin-top:8px; font-family:var(--mono); font-size:9px; text-transform:uppercase; letter-spacing:.05em; color:var(--dim); }

/* Version sombre : uniquement dans le panneau de note à gauche des fiches de classement */
.rank-side .rank-score{ padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.18); margin-bottom:14px; }
.rank-side .score-num{ color:#fff; }
.rank-side .score-num span{ color:rgba(255,255,255,.55); }
.rank-side .score-note{ color:rgba(255,255,255,.5); }

.rank-side .trust-mini-label{ color:rgba(255,255,255,.55); }
.rank-side .trust-mini-value{ color:#fff; }
.rank-side .trust-mini-bar{ background:rgba(255,255,255,.18); }
.rank-side .trust-mini{ border-top-color:rgba(255,255,255,.18); }

.score-tier-great{ border-top-color:var(--good); }
.score-tier-good{ border-top-color:var(--violet-500); }
.score-tier-ok{ border-top-color:#F5A623; }

@media (max-width:680px){
  .rank-item{ grid-template-columns:40px 1fr; }
  .rank-body{ grid-template-columns:1fr; padding:22px; }
  .rank-body h3{ grid-column:1; font-size:26px; }
  .rank-desc, .rank-pros-cons, .rank-more{ grid-column:1; }
  .rank-side{
    grid-column:1; grid-row:auto; margin:10px 0 14px; padding:16px;
  }
  .rank-pros-cons{ grid-template-columns:1fr; }
}

/* ---------- Articles ---------- */
.article-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:980px){ .article-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .article-grid{ grid-template-columns:1fr; } }

.article-card{
  display:flex; flex-direction:column; gap:14px;
  border:1px solid var(--border);
  border-radius:0;
  padding:22px;
  background:var(--surface);
  box-shadow:var(--shadow-card);
  transition:border-color .25s, transform .25s var(--ease), box-shadow .25s var(--ease);
}
.article-card:hover{ border-color:var(--border-hi); transform:translateY(-3px); box-shadow:var(--shadow-card-hover); }
.article-thumb{
  height:140px; border-radius:0;
  background:var(--grad);
  position:relative; overflow:hidden;
  display:flex; align-items:flex-end; padding:12px;
}
.article-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.article-thumb::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.45)); }
.article-thumb span{ position:relative; font-family:var(--mono); font-size:11px; color:#fff; text-transform:uppercase; letter-spacing:.05em; }

.article-cover{
  display:block; width:100%; height:auto; max-height:320px; object-fit:cover;
  border-radius:0; border:1px solid var(--border); box-shadow:var(--shadow-card);
  margin-top:28px;
}

/* ---------- Capture d'écran intégrée à un article ---------- */
.screenshot-fig{ margin:30px 0; }
.screenshot-fig img{
  display:block; width:100%; height:auto;
  border-radius:0; border:1px solid var(--border); box-shadow:var(--shadow-card);
}
.screenshot-fig figcaption{
  margin-top:10px; font-family:var(--mono); font-size:11.5px; color:var(--dim);
  text-align:center;
}

/* ---------- Mini capture d'écran dans l'aperçu du classement ---------- */
.rank-shot{ grid-column:2; margin-top:16px; }
.rank-shot img{
  display:block; width:100%; height:140px; object-fit:cover; object-position:top;
  border-radius:0; border:1px solid var(--border);
}
.article-card h3{ font-family:var(--serif); font-size:19px; line-height:1.3; }
.article-card p{ color:var(--muted); font-size:14px; }
.article-meta{ margin-top:auto; display:flex; align-items:center; gap:10px; font-family:var(--mono); font-size:11.5px; color:var(--dim); }

/* ---------- Article page ---------- */
.article-header{ padding:64px 0 36px; }
.article-header .kicker{ margin-bottom:16px; }
.article-header h1{ font-size:clamp(28px,4.4vw,46px); line-height:1.15; }
.article-header .sub{ margin-top:16px; color:var(--muted); font-size:17px; max-width:680px; }
.article-byline{ margin-top:22px; display:flex; align-items:center; gap:12px; font-size:13.5px; color:var(--dim); font-family:var(--mono); }
.avatar{ width:30px; height:30px; border-radius:0; background:var(--grad); flex:none; }

.prose{ max-width:var(--wrap-nar); margin-inline:auto; padding-inline:24px; }
.prose p{ margin-bottom:20px; color:#2B2D33; font-size:16.5px; line-height:1.75; }
.prose h2{ font-family:var(--serif); font-size:26px; margin:40px 0 16px; }
.prose h3{ font-family:var(--serif); font-size:20px; margin:30px 0 12px; }
.prose ul{ margin-bottom:20px; display:flex; flex-direction:column; gap:8px; }
.prose li{ padding-left:20px; position:relative; color:#2B2D33; font-size:16px; line-height:1.6; }
.prose li::before{ content:"—"; position:absolute; left:0; color:var(--violet-300); }
.prose blockquote{ margin:28px 0; padding:4px 0 4px 20px; border-left:2px solid var(--violet-500); color:var(--muted); font-style:italic; font-size:17px; }

/* ---------- Stats band ---------- */
.stats-band{ padding:48px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
@media (max-width:760px){ .stats-grid{ grid-template-columns:repeat(2,1fr); } }
.stat-label{ font-family:var(--mono); font-size:12px; color:var(--dim); text-transform:uppercase; letter-spacing:.05em; }
.stat-value{ font-family:var(--serif); font-size:36px; margin:6px 0; }
.stat-desc{ color:var(--muted); font-size:13.5px; }

/* ---------- Team / community ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:760px){ .team-grid{ grid-template-columns:1fr; } }
.team-card{ padding:24px; border:1px solid var(--border); border-radius:0; background:var(--surface); box-shadow:var(--shadow-card); }
.team-avatar{ width:52px; height:52px; border-radius:0; background:var(--grad); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:19px; color:#1A0E00; margin-bottom:14px; }
.team-card h3{ font-family:var(--serif); font-size:18px; }
.team-role{ font-family:var(--mono); font-size:11.5px; color:var(--violet-300); text-transform:uppercase; letter-spacing:.05em; margin:4px 0 10px; }
.team-card p{ color:var(--muted); font-size:14px; }

.perk-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:760px){ .perk-grid{ grid-template-columns:1fr; } }
.perk{ padding:22px; border:1px solid var(--border); border-radius:0; }
.perk-icon{ width:38px; height:38px; border-radius:0; background:rgba(14,159,110,.12); color:var(--cyan-300); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.perk h3{ font-size:16.5px; margin-bottom:6px; }
.perk p{ color:var(--muted); font-size:13.5px; }

/* ---------- Forum ---------- */
.forum-cats{ display:flex; flex-direction:column; gap:14px; }
.forum-cat{
  display:flex; align-items:center; gap:18px;
  padding:22px 24px;
  border:1px solid var(--border);
  border-radius:0;
  background:var(--surface);
  box-shadow:var(--shadow-card);
}
.forum-cat-icon{ width:44px; height:44px; border-radius:0; background:rgba(139,59,255,.12); color:var(--violet-300); display:flex; align-items:center; justify-content:center; flex:none; }
.forum-cat-body{ flex:1; }
.forum-cat h3{ font-family:var(--serif); font-size:17.5px; }
.forum-cat p{ color:var(--muted); font-size:13.5px; margin-top:3px; }
.forum-cat-meta{ text-align:right; font-family:var(--mono); font-size:12px; color:var(--dim); flex:none; }
.forum-cat-meta strong{ display:block; color:var(--text); font-size:16px; font-family:var(--sans); }

.thread-list{ display:flex; flex-direction:column; }
.thread{ display:flex; align-items:center; gap:16px; padding:18px 4px; border-bottom:1px solid var(--border); }
.thread-avatar{ width:34px; height:34px; border-radius:0; background:var(--grad-soft); flex:none; }
.thread-body{ flex:1; }
.thread-body h4{ font-size:15px; }
.thread-meta{ font-family:var(--mono); font-size:11.5px; color:var(--dim); margin-top:3px; }
.thread-replies{ font-family:var(--mono); font-size:13px; color:var(--muted); text-align:center; flex:none; width:70px; }
.thread-replies strong{ display:block; color:var(--text); font-size:17px; font-family:var(--sans); }

.notice{
  display:flex; align-items:flex-start; gap:14px;
  padding:18px 20px; border-radius:0; margin-bottom:28px;
  background:rgba(139,59,255,.08); border:1px solid rgba(139,59,255,.25);
}
.notice p{ color:var(--muted); font-size:14px; line-height:1.6; }
.notice strong{ color:var(--text); }

/* ---------- Forms ---------- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:13px; color:var(--muted); font-family:var(--mono); letter-spacing:.02em; }
.field input, .field textarea, .field select{
  background:var(--surface-2);
  border:1px solid var(--border);
  border-radius:0;
  padding:12px 14px;
  color:var(--text);
  font-family:var(--sans);
  font-size:14.5px;
  resize:vertical;
}
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; border-color:var(--violet-400); }
@media (max-width:620px){ .form-grid{ grid-template-columns:1fr; } }

.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; gap:32px; } }
.contact-info{ display:flex; flex-direction:column; gap:22px; }
.contact-row{ display:flex; gap:14px; align-items:flex-start; }
.contact-row-icon{ width:38px; height:38px; border-radius:0; background:rgba(139,59,255,.12); color:var(--violet-300); display:flex; align-items:center; justify-content:center; flex:none; }
.contact-row h4{ font-size:14.5px; margin-bottom:3px; }
.contact-row p{ color:var(--muted); font-size:14px; }

/* ---------- FAQ accordion ---------- */
.acc{ display:flex; flex-direction:column; gap:10px; }
.acc-item{ border:1px solid var(--border); border-radius:0; overflow:hidden; }
.acc-trigger{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 20px; text-align:left; font-size:15.5px; }
.acc-trigger svg{ flex:none; transition:transform .25s var(--ease); color:var(--dim); }
.acc-item.open .acc-trigger svg{ transform:rotate(45deg); }
.acc-panel{ max-height:0; overflow:hidden; transition:max-height .3s var(--ease); }
.acc-item.open .acc-panel{ max-height:400px; }
.acc-panel-inner{ padding:0 20px 20px; color:var(--muted); font-size:14.5px; line-height:1.65; }

/* ---------- Simple page header (pages secondaires) ---------- */
.page-header{ padding:56px 0 20px; }
.page-header h1{ font-size:clamp(28px,4vw,42px); }
.page-header p{ margin-top:14px; color:var(--muted); font-size:16px; max-width:620px; }

/* ---------- Footer ---------- */
.site-footer{ padding:56px 0 32px; border-top:1px solid var(--border); margin-top:40px; }
.footer-cols{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:28px; margin-bottom:40px; }
@media (max-width:900px){ .footer-cols{ grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:760px){ .footer-cols{ grid-template-columns:1fr 1fr; } }
.footer-tag{ margin-top:12px; color:var(--dim); font-size:13.5px; max-width:260px; }
.footer-col{ display:flex; flex-direction:column; gap:10px; }
.footer-head{ font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--dim); margin-bottom:4px; }
.footer-col a{ color:var(--muted); font-size:14px; }
.footer-col a:hover{ color:var(--text); }
.copyright{ color:var(--dim); font-size:12.5px; }

@media (max-width:600px){
  .hero{ padding:56px 0 44px; }
  section{ padding:48px 0; }
}

/* ---------- Bande de publicités carrées, sous le menu ---------- */
.ad-strip{ padding:8px 0; border-bottom:1px solid var(--border); background:var(--bg-2); }
.ad-strip-grid{ display:grid; grid-template-columns:repeat(4,140px); gap:8px; justify-content:center; }
.ad-strip-item{
  position:relative; display:flex; flex-direction:column;
  background:var(--surface); border:1px solid rgba(37,99,235,.4); border-radius:0;
  box-shadow:var(--shadow-card); overflow:hidden;
}
.ad-strip-item.is-closed{ display:none; }
.ad-strip-item img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.ad-strip-body{ padding:5px 6px 6px; }
.ad-strip-tag{ display:block; font-family:var(--mono); font-size:6.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--dim); }
.ad-strip-title{ display:block; font-weight:700; font-size:10px; color:var(--text); margin-top:1px; line-height:1.2; }
.ad-strip-desc{ display:block; font-size:9px; color:var(--muted); margin-top:1px; line-height:1.25; }
.ad-strip-close{
  position:absolute; top:4px; right:4px; width:16px; height:16px; border-radius:0;
  background:rgba(11,12,16,.55); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:8px; line-height:1; cursor:pointer; transition:background .2s;
}
.ad-strip-close:hover{ background:rgba(11,12,16,.75); }
@media (max-width:760px){
  .ad-strip-grid{ grid-template-columns:repeat(4,1fr); gap:5px; justify-content:stretch; }
  .ad-strip-body{ padding:4px 5px 5px; }
  .ad-strip-tag{ font-size:5.5px; }
  .ad-strip-title{ font-size:8px; margin-top:0; }
  .ad-strip-desc{ display:none; }
  .ad-strip-close{ width:14px; height:14px; font-size:7px; top:3px; right:3px; }
}

/* ---------- Bannière publicitaire en haut de page ---------- */
.top-banner{
  position:relative; width:100%; background:#061228;
  display:flex; align-items:center; justify-content:center;
}
.top-banner.is-closed{ display:none; }
.top-banner img{ display:block; width:100%; height:auto; max-height:110px; object-fit:contain; }
.top-banner-tag{
  position:absolute; left:10px; top:8px;
  font-family:var(--mono); font-size:9px; text-transform:uppercase; letter-spacing:.06em;
  color:rgba(255,255,255,.65);
}
.top-banner-close{
  position:absolute; top:8px; right:10px; width:24px; height:24px; border-radius:0;
  background:rgba(255,255,255,.14); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:12px; line-height:1; cursor:pointer; transition:background .2s;
}
.top-banner-close:hover{ background:rgba(255,255,255,.28); }
@media (max-width:600px){ .top-banner img{ max-height:70px; } }

/* ---------- Avis clients (agents immobiliers) ---------- */
.agent-review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:980px){ .agent-review-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .agent-review-grid{ grid-template-columns:1fr; } }
.agent-review-card{
  position:relative;
  padding:20px; border:1px solid var(--border); border-top:3px solid var(--border);
  border-radius:0;
  background:var(--surface); box-shadow:var(--shadow-card);
  display:flex; flex-direction:column;
}
.agent-review-source{
  position:absolute; top:16px; right:16px; width:26px; height:26px;
  border-radius:0; display:flex; align-items:center; justify-content:center;
  box-shadow:0 1px 3px rgba(0,0,0,.18); flex:none;
}
.agent-review-source svg{ width:14px; height:14px; display:block; }
.agent-review-source--google{ background:#fff; border:1px solid var(--border); }
.agent-review-source--google svg{ width:16px; height:16px; }
.agent-review-source--facebook{ background:#1877F2; }
.agent-review-source--twitter{ background:#1DA1F2; }
.agent-review-source--linkedin{ background:#0A66C2; }
.agent-review-source--trustpilot{ background:#00B67A; }
.agent-review-card[data-source="google"]{ border-top-color:#4285F4; }
.agent-review-card[data-source="facebook"]{ border-top-color:#1877F2; background:linear-gradient(180deg, rgba(24,119,242,.05), var(--surface) 60px); }
.agent-review-card[data-source="twitter"]{ border-top-color:#1DA1F2; background:linear-gradient(180deg, rgba(29,161,242,.05), var(--surface) 60px); }
.agent-review-card[data-source="linkedin"]{ border-top-color:#0A66C2; background:linear-gradient(180deg, rgba(10,102,194,.05), var(--surface) 60px); }
.agent-review-card[data-source="trustpilot"]{ border-top-color:#00B67A; background:linear-gradient(180deg, rgba(0,182,122,.06), var(--surface) 60px); }
.agent-review-stars{ color:#F5A623; font-size:14px; letter-spacing:2px; margin-bottom:10px; }
.agent-review-quote{ font-size:14px; color:#2B2D33; line-height:1.6; margin-bottom:16px; flex:1; }
.agent-review-quote::before{ content:"\201C"; }
.agent-review-quote::after{ content:"\201D"; }
.agent-review-author{ display:flex; align-items:center; gap:10px; }
.agent-review-avatar{
  width:36px; height:36px; border-radius:0; background:var(--grad);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:13px; color:#1A0E00; flex:none;
}
.agent-review-name{ font-size:13px; font-weight:700; color:var(--text); }
.agent-review-meta{ font-size:11.5px; color:var(--dim); margin-top:1px; }
.agent-review-summary{
  display:flex; align-items:center; gap:14px; margin-bottom:28px;
  padding:16px 20px; border:1px solid var(--border); border-radius:0;
  background:var(--bg-2); width:fit-content;
}
.agent-review-summary-score{ font-family:var(--serif); font-size:28px; color:var(--text); }
.agent-review-summary-stars{ color:#F5A623; font-size:14px; letter-spacing:1px; }
.agent-review-summary-count{ font-size:12px; color:var(--dim); margin-top:2px; }
.agent-review-more{ display:contents; }
.agent-review-more[hidden]{ display:none; }
.agent-review-more-btn-wrap[hidden]{ display:none; }
