/* ============================================================
   Rencontre Soumise — « L'ANTRE » — main.css
   Reliure de cuir & sceau de cire. Dark-first, angles nets.
   Divergence : primary #B8324A, accent #A66B84 (recent only),
   violet #6730A6 en halo focus uniquement.
   ============================================================ */

/* ---------- Utilitaires layout ---------- */
.section--alt{background:var(--rs-ink-800)}
.grid{display:grid;gap:var(--sp-5)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.flex{display:flex}
.gap-sm{gap:var(--sp-3)}

/* ---------- Formulaires génériques ---------- */
.form-group{margin-bottom:var(--sp-4)}
.form-label{
  display:block;font-family:var(--font-body);font-variant:small-caps;
  font-size:.8rem;letter-spacing:.08em;color:var(--rs-text-light);margin-bottom:var(--sp-2);
}
.form-input,.form-select{
  width:100%;
  font-family:var(--font-body);font-size:1rem;
  color:var(--rs-text);
  background:var(--rs-ink-900);
  border:1px solid var(--rs-border);
  border-bottom:1px solid var(--rs-border-hair);
  border-radius:var(--radius);
  padding:.8rem .9rem;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.form-input::placeholder{color:var(--rs-text-muted)}
.form-input:focus,.form-select:focus{
  outline:none;border-color:var(--rs-primary);
  box-shadow:var(--shadow-focus);
}
.form-select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--rs-primary) 50%),linear-gradient(135deg,var(--rs-primary) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}

/* ============================================================
   LEAD FORM — « Registre d'admission »
   ============================================================ */
.hp-section--hero-conversion .hero__inner{align-items:stretch}
.hp-section__lead-form{margin-top:var(--sp-6)}
.hp-section__lead-form--embedded{margin-top:0}

.lead-form{
  background:var(--rs-ink-850);
  border:1px solid var(--rs-border-hair);
  border-top:3px solid var(--rs-primary);
  border-radius:var(--radius);
  box-shadow:var(--shadow-deep);
  padding:var(--sp-6) var(--sp-6) var(--sp-5);
}
.lead-form__title{
  font-family:var(--font-heading);font-weight:700;font-size:var(--fs-lg);
  color:var(--rs-text);margin-bottom:var(--sp-5);
}
.lead-form__title::before{
  content:"— PROTOCOLE D'ENTRÉE";display:block;
  font-family:var(--font-body);font-weight:500;font-size:.72rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--rs-primary);
  margin-bottom:var(--sp-3);
}
.lead-form__step-indicator{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-5)}
.lead-form__step-dot{
  width:8px;height:8px;background:var(--rs-border);
  transform:rotate(45deg);transition:background .2s ease,box-shadow .2s ease;
}
.lead-form__step-dot.is-active,
.lead-form__step.is-active~.lead-form__step-indicator .lead-form__step-dot.is-active{
  background:var(--rs-primary);box-shadow:0 0 0 3px var(--rs-primary-glow);
}
.lead-form__step{display:none}
.lead-form__step.is-active{display:block}

.lead-form__gender-group{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);margin-bottom:var(--sp-4);
}
.lead-form__gender-btn{
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-body);font-variant:small-caps;
  font-size:.82rem;letter-spacing:.06em;
  color:var(--rs-text-light);
  background:var(--rs-ink-800);
  border:1px solid var(--rs-border);
  border-radius:var(--radius);
  padding:.7rem .4rem;cursor:pointer;text-align:center;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.lead-form__gender-btn input{position:absolute;opacity:0;width:0;height:0}
.lead-form__gender-btn:hover{border-color:var(--rs-border-hair);color:var(--rs-text)}
.lead-form__gender-btn.is-active,
.lead-form__gender-btn:has(input:checked){
  background:var(--rs-primary);color:var(--rs-ink-900);border-color:var(--rs-primary);
}
.lead-form .form-input{margin-bottom:var(--sp-4)}
.lead-form .btn-block{margin-top:var(--sp-2)}
.lead-form .btn-secondary{margin-top:var(--sp-3)}

/* ============================================================
   REASSURANCE — « Articles du protocole »
   ============================================================ */
.hp-section--reassurance .section{background:var(--rs-ink-850)}
.hp-section--reassurance .section-title::before{content:"— L'ENGAGEMENT"}
.hp-section--reassurance .container{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
}
.hp-section--reassurance .section-title{grid-column:1/-1;text-align:center}
.reassurance-item{
  position:relative;
  padding:var(--sp-5) var(--sp-6);
  border-left:1px solid var(--rs-primary);
  text-align:left;
}
.reassurance-item+.reassurance-item{border-left:1px solid var(--rs-border);box-shadow:inset 1px 0 0 var(--rs-primary)}
.reassurance-item__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.5em;height:2.5em;
  background:var(--rs-ink-800);
  border:1px solid var(--rs-border-hair);
  border-radius:var(--radius);
  color:var(--rs-primary);
  margin-bottom:var(--sp-4);
}
.reassurance-item__icon svg{width:1.3em;height:1.3em}
.reassurance-item__title{
  font-family:var(--font-heading);font-weight:600;font-size:var(--fs-md);
  color:var(--rs-text);margin-bottom:var(--sp-2);
}
.reassurance-item__title::before{
  display:block;
  font-family:var(--font-body);font-variant:small-caps;
  font-size:.74rem;letter-spacing:.18em;color:var(--rs-primary);
  margin-bottom:var(--sp-2);
}
.reassurance-item:nth-of-type(1) .reassurance-item__title::before{content:"Article I"}
.reassurance-item:nth-of-type(2) .reassurance-item__title::before{content:"Article II"}
.reassurance-item:nth-of-type(3) .reassurance-item__title::before{content:"Article III"}
.reassurance-item__desc{
  font-family:var(--font-body);font-weight:300;font-size:var(--fs-base);
  color:var(--rs-text-light);margin:0;
}

/* ============================================================
   CTA — panneau centré + sceau filigrané
   ============================================================ */
.hp-section--cta{background:var(--rs-ink-900)}
.cta-section{position:relative}
.cta-section--a{
  position:relative;
  border-top:1px solid var(--rs-primary);
  border-bottom:1px solid var(--rs-primary);
  background:var(--rs-ink-900);
  overflow:hidden;
}
.cta-section--a::before{
  content:"";position:absolute;left:0;right:0;top:1px;height:1px;background:var(--rs-border-hair);
}
.cta-section--a::after{
  content:"";position:absolute;top:50%;left:50%;width:min(420px,70vw);height:min(420px,70vw);
  transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(circle at 42% 38%,var(--rs-primary),var(--rs-primary-deep) 70%,transparent 72%);
  border-radius:48% 52% 50% 50%/50% 50% 52% 48%;
  opacity:.06;
}
.cta-section--a .container{position:relative;z-index:1;max-width:640px}
.cta-section__title{
  font-family:var(--font-heading);font-weight:800;font-size:var(--fs-xl);
  color:var(--rs-text);margin-bottom:var(--sp-4);
}
.cta-section__title em{font-style:italic;color:var(--rs-primary)}
.cta-section__desc{
  font-family:var(--font-heading);font-style:italic;font-weight:600;
  font-size:var(--fs-md);color:var(--rs-text-light);margin-bottom:var(--sp-6);
}
.cta-section__actions{display:flex;justify-content:center;gap:var(--sp-4);flex-wrap:wrap}

/* ============================================================
   GRILLE PROFILS — « Fiches de dossier scellées »
   ============================================================ */
.hp-section--profils{background:var(--rs-ink-900);padding-block:var(--sp-10)}
.hp-section__title{
  max-width:var(--container);margin:0 auto var(--sp-6);padding-inline:var(--sp-5);
  font-family:var(--font-heading);font-weight:700;font-size:var(--fs-xl);color:var(--rs-text);
}
.hp-section__title::before{
  content:"— LES SOUMISES";display:block;
  font-family:var(--font-body);font-weight:500;font-size:.72rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--rs-primary);margin-bottom:var(--sp-3);
}
.listing-grid{max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5)}
.listing-grid--annonces{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:1.75rem;
}
.card-annonce{
  background:var(--rs-ink-850);
  border:1px solid var(--rs-border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.card-annonce:hover{
  border-color:var(--rs-primary);
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
}
.card-annonce__link{display:block;color:inherit}
.card-annonce__image{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--rs-ink-800)}
.card-annonce__image img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.9) contrast(1.05) brightness(.9);
  transition:transform .4s ease;
}
.card-annonce:hover .card-annonce__image img{transform:scale(1.04)}
.card-annonce__image::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,var(--rs-ink-900) 2%,transparent 45%);
}
.card-annonce__photo-count{
  position:absolute;bottom:.6rem;right:.6rem;z-index:2;
  display:inline-flex;align-items:center;gap:.3em;
  font-family:var(--font-body);font-size:.68rem;font-variant:small-caps;letter-spacing:.06em;
  color:var(--rs-text);
  background:rgba(23,9,14,.8);
  border:1px solid var(--rs-border);
  border-radius:var(--radius);
  padding:.15rem .45rem;
}
.card-annonce__photo-count svg{width:.9em;height:.9em}
.card-annonce__content{padding:1rem 1.1rem 1.15rem;background:var(--rs-ink-850)}
.card-annonce__title{
  font-family:var(--font-heading);font-weight:600;font-size:var(--fs-md);
  color:var(--rs-text);margin:0 0 var(--sp-3);
  display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;
}
.card-annonce__title span{
  font-family:var(--font-body);font-variant:small-caps;
  font-size:.62rem;letter-spacing:.06em;
  color:var(--rs-primary);
  border:1px solid var(--rs-primary);
  border-radius:var(--radius);
  padding:1px 6px;line-height:1.4;
}
.card-annonce__tags{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:var(--sp-3)}
.card-annonce__tag{
  display:inline-flex;align-items:center;gap:.3em;
  font-family:var(--font-body);font-size:.72rem;font-variant:small-caps;letter-spacing:.04em;
  color:var(--rs-text-light);
  background:var(--rs-ink-800);
  border:1px solid var(--rs-border);
  border-radius:var(--radius);
  padding:.18rem .5rem;
}
.card-annonce__tag svg{width:.85em;height:.85em;color:var(--rs-primary)}
.card-annonce__badge{
  display:inline-flex;align-items:center;gap:.35em;
  font-family:var(--font-body);font-size:.68rem;font-variant:small-caps;letter-spacing:.05em;
  color:var(--rs-text-light);
  background:var(--rs-ink-900);
  border:1px solid var(--rs-border);
  border-radius:var(--radius);
  padding:.18rem .5rem;
}
.card-annonce__badge-dot{width:7px;height:7px;border-radius:var(--radius-round);background:var(--rs-text-muted);flex-shrink:0}
.card-annonce__badge--online .card-annonce__badge-dot{
  background:var(--rs-primary);box-shadow:0 0 0 0 var(--rs-primary-glow);animation:rs-pulse 2s infinite;
}
.card-annonce__badge--online{color:var(--rs-primary)}
.card-annonce__badge--recent .card-annonce__badge-dot{background:var(--rs-accent)}
.card-annonce__badge--offline .card-annonce__badge-dot{background:var(--rs-text-muted)}
.card-annonce__excerpt{
  font-family:var(--font-body);font-style:italic;font-weight:300;font-size:var(--fs-sm);
  color:var(--rs-text-light);margin:0;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* ---------- Cities ---------- */
.hp-section--cities{background:var(--rs-ink-900);padding-block:var(--sp-8)}
.hp-section--cities .container{max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5)}
.hp-section--cities a{
  font-family:var(--font-body);font-variant:small-caps;font-size:.85rem;letter-spacing:.06em;
  color:var(--rs-text-light);margin-right:var(--sp-4);
}
.hp-section--cities a:hover{color:var(--rs-primary)}

/* ============================================================
   FAQ — lignes de registre
   ============================================================ */
.hp-section--faq .section-title::before{content:"— AVANT LE SEUIL"}
.hp-section--faq .container{max-width:820px}
.faq-list{margin-top:var(--sp-5)}
.faq-item{border-bottom:1px solid var(--rs-border);background:transparent}
.faq-item summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  font-family:var(--font-heading);font-weight:600;font-size:var(--fs-md);
  color:var(--rs-text);
  padding:1.1rem 0;
  transition:color .2s ease;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"";flex-shrink:0;width:12px;height:12px;
  background:var(--rs-primary);transform:rotate(45deg);
  transition:transform .25s ease,background .2s ease;
}
.faq-item[open] summary::after{transform:rotate(225deg)}
.faq-item summary:hover{color:var(--rs-primary)}
.faq-item__answer{
  font-family:var(--font-body);font-weight:300;font-size:var(--fs-base);line-height:1.75;
  color:var(--rs-text-light);
  padding:0 0 1.2rem 1.1rem;
  border-left:1px solid var(--rs-border-hair);
  margin-bottom:.2rem;
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background:var(--rs-ink-900);
  border-top:1px solid var(--rs-primary);
  box-shadow:0 -1px 0 1px var(--rs-border);
  position:relative;overflow:hidden;
  padding-block:var(--sp-8) var(--sp-5);
}
.site-footer::after{
  content:"";position:absolute;right:-60px;bottom:-60px;width:260px;height:260px;pointer-events:none;
  background:radial-gradient(circle at 42% 38%,var(--rs-primary),var(--rs-primary-deep) 70%,transparent 72%);
  border-radius:48% 52% 50% 50%/50% 50% 52% 48%;opacity:.04;
}
.site-footer__inner{max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5);position:relative;z-index:1}
.site-footer__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-6);
  padding-bottom:var(--sp-6);
}
.site-footer__col h3,.site-footer__col strong,.site-footer__col-title{
  display:block;
  font-family:var(--font-body);font-variant:small-caps;font-weight:500;
  font-size:.74rem;letter-spacing:.2em;color:var(--rs-primary);
  margin-bottom:var(--sp-4);text-transform:uppercase;
}
.site-footer__col ul{list-style:none;margin:0;padding:0}
.site-footer__col li{margin-bottom:var(--sp-3)}
.site-footer__col a{
  position:relative;font-family:var(--font-body);font-size:.9rem;color:var(--rs-text-light);
}
.site-footer__col a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--rs-primary);
  transform:scaleX(0);transform-origin:left;transition:transform .2s ease;
}
.site-footer__col a:hover{color:var(--rs-text)}
.site-footer__col a:hover::after{transform:scaleX(1)}
.site-footer__logo{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:var(--sp-4)}
.site-footer__logo-icon{width:24px;height:24px}
.site-footer__baseline{font-family:var(--font-heading);font-style:italic;color:var(--rs-text-light);font-size:.95rem}
.site-footer__bottom{
  border-top:1px solid var(--rs-border);
  padding-top:var(--sp-5);
  font-size:var(--fs-xs);color:var(--rs-text-muted);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-3);
}
.site-footer__bottom a{color:var(--rs-text-muted)}
.site-footer__bottom a:hover{color:var(--rs-text-light)}

/* ============================================================
   STICKY CTA BAR
   ============================================================ */
.sticky-cta-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  background:var(--rs-ink-900);
  border-top:1px solid var(--rs-primary);
  box-shadow:0 -8px 24px rgba(0,0,0,.5);
  transition:transform .3s ease;
}
.sticky-cta-bar--dark{background:var(--rs-ink-900)}
.sticky-cta-bar.is-hidden{transform:translateY(110%)}
.sticky-cta-bar__inner{
  display:flex;align-items:center;justify-content:center;gap:var(--sp-4);
  padding-block:.7rem;
}
.sticky-cta-bar__btn{--btn-py:.6rem;--btn-px:1.6rem;font-size:.8rem}
.sticky-cta-bar__close{
  background:none;border:0;color:var(--rs-text-muted);font-size:1.4rem;line-height:1;
  padding:.2rem .5rem;
}
.sticky-cta-bar__close:hover{color:var(--rs-primary)}

/* ============================================================
   CONSENT BANNER (caché par défaut)
   ============================================================ */
.consent-banner{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:var(--rs-ink-850);
  border-top:1px solid var(--rs-primary);
  box-shadow:0 -12px 30px rgba(0,0,0,.6);
}
.consent-banner.is-visible{display:block}
.consent-banner__inner{
  max-width:var(--container);margin-inline:auto;padding:var(--sp-4) var(--sp-5);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);
}
.consent-banner__text{font-family:var(--font-body);font-size:.85rem;color:var(--rs-text-light);margin:0;max-width:62ch}
.consent-banner__actions{display:flex;gap:var(--sp-3);flex-shrink:0}

/* ============================================================
   EMAIL MODAL (caché par défaut)
   ============================================================ */
.email-modal{
  display:none;
  position:fixed;inset:0;z-index:100;
  align-items:center;justify-content:center;
  padding:var(--sp-5);
  background:rgba(23,9,14,.85);
}
.email-modal[aria-hidden="false"]{display:flex}
.email-modal__panel,.email-modal .modal__panel,.email-modal>div{
  background:var(--rs-ink-850);
  border:1px solid var(--rs-border-hair);
  border-top:3px solid var(--rs-primary);
  border-radius:var(--radius);
  box-shadow:var(--shadow-deep);
  max-width:440px;width:100%;
  padding:var(--sp-6);position:relative;
}
.email-modal__close,.email-modal [data-close]{
  position:absolute;top:.8rem;right:.9rem;
  background:none;border:0;color:var(--rs-text-light);font-size:1.4rem;line-height:1;cursor:pointer;
}
.email-modal__close:hover{color:var(--rs-primary)}
.email-modal h2,.email-modal h3{font-family:var(--font-heading);color:var(--rs-text)}

/* ============================================================
   PAGE PROFIL — variant A « le dossier de la Soumise »
   ============================================================ */
main .single-profil{background:var(--rs-ink-900);padding-bottom:var(--sp-10)}

.breadcrumbs{padding-block:var(--sp-4)}
.breadcrumbs__list{
  list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;
  max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5);
}
.breadcrumbs__item{
  display:flex;align-items:center;gap:.5rem;
  font-family:var(--font-body);font-variant:small-caps;font-size:.74rem;letter-spacing:.05em;
  color:var(--rs-text-light);
}
.breadcrumbs__item+.breadcrumbs__item::before{content:"/";color:var(--rs-text-muted)}
.breadcrumbs__item a{color:var(--rs-text-light)}
.breadcrumbs__item a:hover{color:var(--rs-primary)}
.breadcrumbs__item[aria-current],.breadcrumbs__item:last-child{color:var(--rs-text-muted)}

.single-profil__page-layout{
  display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--sp-6);
  max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5);
}
.single-profil__main{min-width:0}
.single-profil__sidebar{display:none}

.single-profil__card{
  background:var(--rs-ink-850);
  border:1px solid var(--rs-border);
  border-top:3px solid var(--rs-primary);
  border-radius:var(--radius);
  box-shadow:var(--shadow-md);
  padding:var(--sp-6);
  margin-bottom:var(--sp-6);
}
.single-profil__top{display:grid;grid-template-columns:230px 1fr;gap:var(--sp-6);align-items:start}
.single-profil__photo{position:relative;border-radius:var(--radius)}
.single-profil__img{
  width:100%;aspect-ratio:3/4;object-fit:cover;
  border:1px solid var(--rs-border-hair);border-radius:var(--radius);
  filter:saturate(.9) contrast(1.05) brightness(.9);
  background:var(--rs-ink-800);
}
.single-profil__photo::after{
  content:"";position:absolute;top:-12px;left:-12px;width:44px;height:44px;z-index:3;
  background:radial-gradient(circle at 40% 35%,var(--rs-primary),var(--rs-primary-deep));
  border-radius:48% 52% 50% 50%/50% 50% 52% 48%;
  box-shadow:0 5px 14px rgba(0,0,0,.5),inset 0 2px 4px rgba(255,255,255,.14);
}
.single-profil__badge{
  position:absolute;top:.7rem;left:.7rem;z-index:4;
  display:inline-flex;align-items:center;gap:.4em;
  font-family:var(--font-body);font-variant:small-caps;font-size:.68rem;letter-spacing:.05em;
  color:var(--rs-text);
  background:rgba(23,9,14,.85);
  border:1px solid var(--rs-border);
  border-radius:var(--radius);
  padding:.22rem .55rem;
}
.single-profil__badge-dot{width:7px;height:7px;border-radius:var(--radius-round);background:var(--rs-text-muted);flex-shrink:0}
.single-profil__badge--online .single-profil__badge-dot,
.single-profil__badge--dispo .single-profil__badge-dot{
  background:var(--rs-primary);box-shadow:0 0 0 0 var(--rs-primary-glow);animation:rs-pulse 2s infinite;
}
.single-profil__badge--online,.single-profil__badge--dispo{color:var(--rs-primary)}
.single-profil__badge--recent .single-profil__badge-dot{background:var(--rs-accent)}
.single-profil__badge--offline .single-profil__badge-dot{background:var(--rs-text-muted)}

.single-profil__info{min-width:0}
.single-profil__name{
  font-family:var(--font-heading);font-weight:900;font-size:var(--fs-xl);
  color:var(--rs-text);margin:0 0 var(--sp-2);letter-spacing:-.02em;
}
.single-profil__handle{
  font-family:var(--font-body);font-style:italic;font-size:1rem;color:var(--rs-primary);margin:0 0 var(--sp-4);
}
.single-profil__meta-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 var(--sp-4);padding:0}
.single-profil__meta-item{display:inline-flex}
.single-profil__tag{
  display:inline-flex;align-items:center;gap:.3em;
  font-family:var(--font-body);font-variant:small-caps;font-size:.75rem;letter-spacing:.04em;
  color:var(--rs-text-light);
  background:var(--rs-ink-800);
  border:1px solid var(--rs-border);
  border-radius:var(--radius);
  padding:.22rem .55rem;
}
.single-profil__tag svg{width:.9em;height:.9em;color:var(--rs-primary)}
.single-profil__desc-courte{
  font-family:var(--font-heading);font-style:italic;font-weight:600;font-size:var(--fs-md);
  color:var(--rs-text-light);margin:var(--sp-4) 0 0;
}
.single-profil__desc{
  font-family:var(--font-body);font-weight:300;font-size:var(--fs-base);line-height:1.75;
  color:var(--rs-text-light);
  max-width:68ch;
  padding-left:var(--sp-4);
  border-left:1px solid var(--rs-border-hair);
  margin-top:var(--sp-6);
}
.single-profil__desc h2,.single-profil__desc h3{font-family:var(--font-heading);color:var(--rs-text);margin-top:var(--sp-5)}
.single-profil__related-links{margin-top:var(--sp-6)}
.single-profil__related-links strong{
  display:block;font-family:var(--font-body);font-variant:small-caps;
  font-size:.78rem;letter-spacing:.14em;color:var(--rs-primary);margin-bottom:var(--sp-3);
}
.single-profil__links-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.single-profil__links-list a{font-family:var(--font-body);font-size:.9rem;color:var(--rs-text-light)}
.single-profil__links-list a:hover{color:var(--rs-primary)}

/* ============================================================
   CHAT — messagerie boudoir (SI EN LIGNE)
   ============================================================ */
.chat{
  background:var(--rs-ink-850);
  border:1px solid var(--rs-border-hair);
  border-top:3px solid var(--rs-primary);
  border-radius:var(--radius);
  box-shadow:var(--shadow-md);
  overflow:hidden;margin-bottom:var(--sp-6);
}
.chat__header{
  display:flex;align-items:center;gap:var(--sp-4);
  background:var(--rs-ink-900);
  border-bottom:1px solid var(--rs-border);
  padding:var(--sp-4) var(--sp-5);
}
.chat__header-avatar{position:relative;flex-shrink:0}
.chat__avatar-img{
  width:46px;height:46px;border-radius:var(--radius-round);object-fit:cover;
  border:2px solid var(--rs-primary);
}
.chat__header-dot{
  position:absolute;bottom:1px;right:1px;
  width:11px;height:11px;border-radius:var(--radius-round);
  background:var(--rs-primary);border:2px solid var(--rs-ink-900);
  box-shadow:0 0 0 0 var(--rs-primary-glow);animation:rs-pulse 2s infinite;
}
.chat__header-info{display:flex;flex-direction:column;min-width:0}
.chat__header-name{font-family:var(--font-heading);font-weight:600;font-size:1.05rem;color:var(--rs-text)}
.chat__header-status{font-family:var(--font-body);font-style:italic;font-size:.78rem;color:var(--rs-primary)}

.chat__messages{
  background:var(--rs-ink-900);
  padding:var(--sp-5);
  min-height:320px;max-height:460px;overflow-y:auto;
  display:flex;flex-direction:column;gap:var(--sp-3);
}
.chat__bubble{
  max-width:78%;padding:.7rem .95rem;
  font-family:var(--font-body);font-size:.92rem;line-height:1.55;
  border-radius:var(--radius);
}
.chat__bubble--profil{
  align-self:flex-start;
  background:var(--rs-ink-800);color:var(--rs-text);
  border:1px solid var(--rs-border);
  border-top-left-radius:0;
}
.chat__bubble--user{
  align-self:flex-end;
  background:var(--rs-primary);color:var(--rs-ink-900);
  border-top-right-radius:0;
}
.chat__typing{align-self:flex-start;display:inline-flex;gap:.3rem;padding:.7rem .9rem;background:var(--rs-ink-800);border:1px solid var(--rs-border)}
.chat__typing-dot{width:6px;height:6px;background:var(--rs-text-light);animation:rs-bounce 1.3s infinite ease-in-out}
.chat__typing-dot:nth-child(2){animation-delay:.18s}
.chat__typing-dot:nth-child(3){animation-delay:.36s}
@keyframes rs-bounce{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}

.chat__input-bar{
  display:flex;align-items:center;gap:var(--sp-3);
  background:var(--rs-ink-900);
  border-top:1px solid var(--rs-border);
  padding:var(--sp-3) var(--sp-4);
}
.chat__input{
  flex:1;min-width:0;
  font-family:var(--font-body);font-size:.95rem;color:var(--rs-text);
  background:var(--rs-ink-850);
  border:1px solid var(--rs-border);
  border-bottom:1px solid var(--rs-border-hair);
  border-radius:var(--radius);
  padding:.7rem .85rem;
}
.chat__input::placeholder{color:var(--rs-text-muted)}
.chat__input:focus{outline:none;border-color:var(--rs-primary);box-shadow:var(--shadow-focus)}
.chat__send{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;
  background:var(--rs-primary);color:var(--rs-ink-900);
  border:1px solid var(--rs-primary);border-radius:var(--radius);
  transition:background .2s ease;
}
.chat__send:hover{background:var(--rs-primary-deep);color:var(--rs-text)}
.chat__send svg{width:1.1em;height:1.1em}

/* ============================================================
   CONTACT CARD — « laisser un pli cacheté » (SI HORS LIGNE)
   ============================================================ */
.single-profil__contact-card{
  background:var(--rs-ink-850);
  border:1px solid var(--rs-border);
  border-top:3px solid var(--rs-primary);
  border-radius:var(--radius);
  box-shadow:var(--shadow-md);
  padding:var(--sp-6);margin-bottom:var(--sp-6);
}
.single-profil__contact-top{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4)}
.single-profil__contact-avatar{
  width:48px;height:48px;border-radius:var(--radius-round);object-fit:cover;flex-shrink:0;
  border:2px solid var(--rs-border-hair);background:var(--rs-ink-800);
}
.single-profil__contact-who{display:flex;flex-direction:column;min-width:0}
.single-profil__contact-name{font-family:var(--font-heading);font-weight:600;font-size:1.05rem;color:var(--rs-text)}
.single-profil__contact-offline{font-family:var(--font-body);font-style:italic;font-size:.8rem;color:var(--rs-text-muted)}
.single-profil__contact-prompt{font-family:var(--font-heading);font-style:italic;font-size:var(--fs-base);color:var(--rs-text-light);margin-bottom:var(--sp-4)}
.single-profil__form{display:flex;flex-direction:column;gap:var(--sp-4)}
.single-profil__textarea{
  width:100%;min-height:110px;resize:vertical;
  font-family:var(--font-body);font-size:.95rem;color:var(--rs-text);line-height:1.6;
  background:var(--rs-ink-900);
  border:1px solid var(--rs-border);
  border-bottom:1px solid var(--rs-border-hair);
  border-radius:var(--radius);
  padding:.8rem .9rem;
}
.single-profil__textarea::placeholder{color:var(--rs-text-muted)}
.single-profil__textarea:focus{outline:none;border-color:var(--rs-primary);box-shadow:var(--shadow-focus)}
.single-profil__chips{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.single-profil__chips-label{
  font-family:var(--font-body);font-variant:small-caps;font-size:.74rem;letter-spacing:.06em;
  color:var(--rs-text-muted);margin-right:.3rem;
}
.single-profil__chip{
  font-family:var(--font-body);font-variant:small-caps;font-size:.78rem;letter-spacing:.04em;
  color:var(--rs-text-light);
  background:transparent;
  border:1px solid var(--rs-border);
  border-radius:var(--radius);
  padding:.35rem .7rem;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.single-profil__chip:hover,.single-profil__chip.is-active{
  background:var(--rs-primary);color:var(--rs-ink-900);border-color:var(--rs-primary);
}
.single-profil__submit{--btn-py:.85rem;--btn-px:1.8rem;align-self:flex-start}

/* ============================================================
   MAILLAGE (section liens, cartes inline-stylées → on touche pas)
   ============================================================ */
.maillage__title{
  max-width:var(--container);margin:var(--sp-8) auto var(--sp-5);padding-inline:var(--sp-5);
  font-family:var(--font-heading);font-weight:700;font-size:var(--fs-lg);color:var(--rs-text);
}
.maillage__title::before{
  content:"— À DÉCOUVRIR";display:block;
  font-family:var(--font-body);font-weight:500;font-size:.72rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--rs-primary);margin-bottom:var(--sp-3);
}
.maillage__all-link{
  display:inline-block;
  max-width:var(--container);margin:0 auto var(--sp-6);padding-inline:var(--sp-5);
  font-family:var(--font-body);font-variant:small-caps;font-size:.85rem;letter-spacing:.08em;
  color:var(--rs-primary);
}
.maillage__all-link:hover{color:var(--rs-accent)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .single-profil__page-layout{grid-template-columns:1fr}
  .lead-form__gender-group{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .hp-section--reassurance .container{grid-template-columns:1fr}
  .reassurance-item{border-left:1px solid var(--rs-primary);border-top:1px solid var(--rs-border);box-shadow:none}
  .reassurance-item+.reassurance-item{box-shadow:none}
  .single-profil__top{grid-template-columns:1fr;gap:var(--sp-5)}
  .single-profil__photo{max-width:260px}
  .site-footer__grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-5)}
  .cta-section__actions{flex-direction:column}
  .cta-section__actions .btn{width:100%}
}
@media (max-width:600px){
  body{font-size:16px}
  .listing-grid--annonces{grid-template-columns:1fr;gap:1.25rem}
  .site-footer__grid{grid-template-columns:1fr}
  .site-footer__bottom{flex-direction:column}
  .lead-form{padding:var(--sp-5) var(--sp-4)}
  .chat__bubble{max-width:88%}
  .single-profil__card,.single-profil__contact-card,.chat{border-radius:var(--radius)}
  .consent-banner__inner{flex-direction:column;align-items:flex-start}
  .hero__media::after{width:42px;height:42px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.05ms!important}
}

/* Correctif réassurance : items dans .grid.grid-3 (wrapper), pas dans .container */
.hp-section--reassurance .container{display:block !important;max-width:1180px;margin-inline:auto;}
.hp-section--reassurance .grid-3, .grid-3{
  display:grid !important; gap:28px;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important; align-items:start;
}
@media (max-width:700px){ .hp-section--reassurance .grid-3, .grid-3{grid-template-columns:1fr !important;} }

/* ============================================================
   PAGE ARCHIVE / LISTING (profils + villes) — layout auto-thémé
   ============================================================ */
.listing-page{max-width:1200px;margin-inline:auto;padding:26px 20px 66px;}
.listing-page__title{margin:10px 0 4px;}
.listing-page__count{opacity:.7;font-size:.9rem;margin-bottom:26px;font-family:var(--font-body,inherit);}
.listing-page__layout{display:grid;grid-template-columns:250px 1fr;gap:34px;align-items:start;}
.listing-page__sidebar{display:flex;flex-direction:column;gap:24px;position:sticky;top:84px;}
.listing-page__sidebar-filters,.listing-page__sidebar-cities{display:flex;flex-direction:column;gap:12px;}
.listing-page__sidebar-cities::before{content:"Villes";display:block;font-family:var(--font-body,inherit);font-weight:700;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;opacity:.6;}
.listing-page__content{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:20px;align-content:start;}
.listing-page__content .listing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:20px;}
.city-links{display:flex;flex-wrap:wrap;gap:8px;}
.search-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.search-filters input,.search-filters select{padding:9px 12px;border:1px solid var(--color-border,rgba(128,128,128,.28));border-radius:var(--radius,8px);background:transparent;color:inherit;font:inherit;font-size:.9rem;}
@media(max-width:900px){
  .listing-page__layout{grid-template-columns:1fr;}
  .listing-page__sidebar{position:static;flex-direction:row;flex-wrap:wrap;gap:16px;}
  .listing-page__sidebar-filters,.listing-page__sidebar-cities{flex:1;min-width:220px;}
}
@media(max-width:560px){.listing-page__content,.listing-page__content .listing-grid{grid-template-columns:1fr;}}

/* ============================================================
   POLISH DESIGN — espacements resserrés + grille réassurance
   ============================================================ */
/* Padding vertical des sections : capper les bandeaux géants */
.hp-section > .section, .hp-section > section.section, .section{ padding-block: clamp(34px,4.2vw,60px) !important; }
.hp-section--cta, .hp-section--cta-secondary{ padding-block: clamp(20px,3vw,40px) !important; }
.hp-section--cities{ padding-block: clamp(24px,3vw,42px) !important; }
.hp-section--profils{ padding-block: clamp(30px,3.5vw,52px) !important; }
/* Réassurance : 3 colonnes larges (le wrapper réel est .grid-3, pas .container) */
.hp-section--reassurance .container{ display:block !important; max-width:1200px; margin-inline:auto; }
.hp-section--reassurance .grid-3, .grid-3{
  display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:24px; align-items:stretch;
}
@media(max-width:700px){ .hp-section--reassurance .grid-3, .grid-3{ grid-template-columns:1fr !important; } }
/* Pas de min-height géant qui gonfle hero/CTA */
.hero, .hero__inner, .cta-section, .hp-section{ min-height:auto !important; }
/* Réduire l'espace mort du hero conversion */
.hp-section--hero{ padding-block: clamp(24px,3vw,48px) clamp(30px,4vw,64px) !important; }

/* ===================== AUDIT FIXES — TRANSVERSAL ===================== */
/* 1. Grille archive/listing (cassée sur les 5 sites) */
.listing-page__layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:32px;align-items:start}
.listing-page__content{min-width:0}
.listing-grid,.listing-grid--annonces,.listing-grid--full{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr)) !important;gap:20px}
.listing-grid>*{min-width:0}
@media(max-width:900px){.listing-page__layout{grid-template-columns:1fr}}
/* 2. Hauteurs de cartes égalisées (home + archive) */
.hp-section--profils .listing-grid,.grid-3{align-items:stretch}
.card-annonce{display:flex;flex-direction:column;height:100%}
.card-annonce__link{display:flex;flex-direction:column;height:100%}
.card-annonce__content{flex:1;display:flex;flex-direction:column}
.card-annonce__excerpt{min-height:2.6em}
.reassurance-item{height:100%}
/* 3. CTA dupliqué masqué */
.hp-section--cta-secondary{display:none}
/* 4. Badge "Vérifié" vert -> couleur de marque */
.card-annonce__title span{background:var(--color-primary,#8b2040) !important;color:#fff !important;border-color:transparent !important}
/* 5. Pages villes (WP page) : mesure lisible + lead */
body.page:not(.home) #main.container{max-width:880px}
body.page:not(.home) .lead{font-size:1.13rem;line-height:1.7}
body.page:not(.home) #main.container>p,body.page:not(.home) #main.container>h2{max-width:72ch}
/* 6. Espace pour la sticky bar */
body{padding-bottom:64px}
.sticky-cta-bar__btn{white-space:nowrap}
.sticky-cta-bar__inner{padding-block:12px}
/* 7. Titre sidebar villes -> kicker small-caps */
.listing-page__sidebar .maillage__title,.listing-page__sidebar-cities>*:first-child,.listing-page__sidebar h2,.listing-page__sidebar h3{font-size:.72rem !important;letter-spacing:.16em;text-transform:uppercase;font-family:var(--font-body) !important;font-weight:700;color:var(--color-primary);margin:0 0 12px;line-height:1.3}
/* 8. Bande villes home resserrée */
.hp-section--cities{padding-block:clamp(24px,3vw,40px) !important}
/* 9. MOBILE — anti-débordement horizontal */
@media(max-width:760px){
  html,body{overflow-x:hidden}
  #main.container,.container,.single-profil,.listing-page,article,.hero,.hero__inner,.lead-form,.hp-section__lead-form,.cta-section,.card-annonce{max-width:100% !important;box-sizing:border-box}
  body.page:not(.home) #main.container{padding-inline:16px !important}
  .lead-form__gender-group{grid-template-columns:1fr !important}
  h1,h2,.hero__title,.section-title,.single-profil__name,.maillage__title,.listing-page__title,.hp-section__title,.card-annonce__title{overflow-wrap:anywhere;word-break:normal}
}
@media(max-width:560px){
  .listing-grid,.listing-grid--annonces,.listing-grid--full{grid-template-columns:repeat(2,1fr) !important;gap:12px}
  .card-annonce__image{aspect-ratio:3/4}
  .card-annonce__content{padding:10px 12px}
}


/* onyx (rencontresoumise) */
@media(max-width:640px){.hero__title{font-size:clamp(1.8rem,8vw,2.5rem) !important;overflow-wrap:anywhere;line-height:1.08}}
.site-footer__col:empty{display:none}
.reassurance-item{overflow:hidden}


/* FIX archive variant b : content en block, la grille = .listing-grid */
.listing-page__content{display:block !important}
.listing-page__content>.listing-grid,.listing-grid,.listing-grid--full,.listing-grid--annonces{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr)) !important;gap:20px}
@media(max-width:560px){.listing-page__content>.listing-grid,.listing-grid,.listing-grid--full,.listing-grid--annonces{grid-template-columns:repeat(2,1fr) !important;gap:12px}}

/* Skip-link : caché sauf au focus clavier (accessibilité, pas de bandeau visible) */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;padding:.6rem 1rem;background:var(--rs-primary);color:#fff;border-radius:0 0 var(--radius) 0}
.skip-link:focus{left:0}
/* Lead-form embarqué sur homepage-c : respiration au-dessus des profils */
.hp-section--lead-form{background:var(--rs-ink-900);padding-block:var(--sp-8)}
.hp-section--lead-form .hp-section__lead-form{max-width:34rem;margin-inline:auto}

/* ---- Page inscription (L'Antre) ---- */
.register-page{padding:4rem 1rem;background:var(--rs-ink-900)}
.register-page__box{max-width:32rem;margin-inline:auto;background:var(--rs-ink-850);border:1px solid var(--rs-border-hair);border-top:3px solid var(--rs-primary);border-radius:var(--radius,2px);padding:2.4rem 2.2rem;box-shadow:var(--shadow-deep,0 30px 60px -30px rgba(0,0,0,.6))}
.register-page__title{font-family:var(--font-heading);font-size:2rem;line-height:1.12;margin:0 0 .5rem;color:var(--rs-text)}
.register-page__subtitle{color:var(--rs-text-light);margin:0 0 1.2rem;font-size:.98rem}
.register-page__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1.3rem 0;text-align:center}
.register-page__stat-number{display:block;font-family:var(--font-heading);font-size:1.6rem;font-weight:700;color:var(--rs-primary)}
.register-page__stat-label{font-size:.74rem;color:var(--rs-text-muted);letter-spacing:.08em;text-transform:uppercase}
.register-page__promise{font-size:.92rem;color:var(--rs-text-light);border-left:2px solid var(--rs-primary);padding-left:.9rem;margin-bottom:1.3rem}
.register-page__promise p{margin:0}
.register-form__label{display:block;font-size:.85rem;margin-bottom:.4rem;color:var(--rs-text)}
.register-form__input{width:100%;padding:.9rem 1rem;border:1px solid var(--rs-border);border-radius:var(--radius,2px);font-size:1rem;margin-bottom:1rem;background:var(--rs-ink-800);color:var(--rs-text)}
.register-form__input:focus{outline:2px solid var(--rs-primary);outline-offset:1px}
.register-form__submit{width:100%;padding:1rem;font-size:1.02rem}
.register-page__trust{margin-top:1.3rem;font-size:.8rem;color:var(--rs-text-muted)}
.register-page__trust p{margin:.25rem 0}
.register-form__legal{margin-top:1rem;font-size:.75rem;color:var(--rs-text-muted)}
.register-form__legal a{color:var(--rs-primary)}
@media(max-width:520px){.register-page{padding:2.2rem .8rem}.register-page__box{padding:1.7rem 1.2rem}}
/* ---- Hero compact : fini le bandeau geant ---- */
.hero--b{padding:3.2rem 0 3.6rem !important;min-height:0 !important}
.hero--b .hero__title{font-size:clamp(2.1rem,4.2vw,3.1rem) !important;margin-bottom:.4rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.3rem}
.hero__stat{margin-top:1rem;font-size:.85rem;color:var(--rs-text-light);letter-spacing:.06em}
.hero__stat-count{font-weight:700;color:#fff;font-size:1.05em}

/* ---- Pages villes (taxonomy) : grille + entête ---- */
.hp-classifieds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.2rem;margin-top:1.2rem}
.hp-classifieds-header{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:0 0 1rem}
.hp-classifieds-header__title{margin:0}
.hp-classifieds-header__count{font-size:.85rem;opacity:.7}
.hp-pagination{display:flex;justify-content:center;gap:.4rem;margin-top:1.6rem}
.hp-pagination .page-numbers{padding:.5rem .85rem;border:1px solid var(--color-border,rgba(128,128,128,.35));border-radius:6px;text-decoration:none}
.hp-pagination .page-numbers.current{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
@media(max-width:600px){.hp-classifieds-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem}}

/* ---- Layout pages villes : contenu + sidebar ---- */
.hp-classifieds-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:2.2rem;align-items:start}
@media(max-width:900px){.hp-classifieds-layout{grid-template-columns:1fr}}
.hp-classifieds-layout__sidebar{display:flex;flex-direction:column;gap:1.4rem}
.sidebar-search__box{background:var(--color-surface_alt,rgba(128,128,128,.08));border:1px solid var(--color-border,rgba(128,128,128,.25));border-radius:10px;padding:1.1rem 1.1rem;color:var(--color-text,inherit)}
.sidebar-search__box-title{font-family:var(--font-heading);font-size:1rem;font-weight:700;margin:0 0 .7rem;color:var(--color-text,inherit)}
.sidebar-search__city-list{list-style:none;margin:0;padding:0}
.sidebar-search__city-list li{margin:0}
.sidebar-search__city-link{display:flex;justify-content:space-between;align-items:center;padding:.42rem .2rem;text-decoration:none;color:var(--color-text,inherit);border-bottom:1px solid var(--color-border,rgba(128,128,128,.15));font-size:.92rem}
.sidebar-search__city-link:hover .sidebar-search__city-name{color:var(--color-primary)}
.sidebar-search__city-list li:last-child .sidebar-search__city-link{border-bottom:0}
.sidebar-search__city-count{font-size:.78rem;opacity:.6}
.sidebar-search__nearby{display:flex;flex-direction:column;gap:.6rem}
.sidebar-search__nearby-card{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--color-text,inherit)}
.sidebar-search__nearby-img{width:46px;height:46px;border-radius:50%;object-fit:cover;flex-shrink:0}
.sidebar-search__nearby-info{display:flex;flex-direction:column;line-height:1.25}
.sidebar-search__nearby-name{font-weight:600;font-size:.9rem}
.sidebar-search__nearby-card:hover .sidebar-search__nearby-name{color:var(--color-primary)}
.sidebar-search__nearby-age{font-size:.76rem;opacity:.6}
.sidebar-search__search-link{display:inline-block;margin-top:.5rem;font-size:.85rem;color:var(--color-primary)}
.sidebar-search__cta{margin-top:.4rem}
.sidebar-banner{margin:0}
.sidebar-banner__img{max-width:100%;height:auto;border-radius:10px;display:block}

/* ---- Correctifs QA transverses ---- */
/* CTA inséré dans la grille d'archive : pleine largeur, un seul exemplaire */
.listing-grid > .cta-section{grid-column:1/-1}
.listing-grid > .cta-section ~ .cta-section{display:none}
.listing-grid > .cta-section .cta-section__title{overflow-wrap:break-word}
/* Tchat : pas de grand vide avant que le JS démarre la conversation */
.chat__messages{min-height:140px !important}
/* Page hub villes : cartes */
.cities-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.2rem;margin-block:1.4rem}
.cities-cards__card{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;padding:1.2rem 1.2rem 1.1rem;border:1px solid var(--color-border,rgba(128,128,128,.28));border-radius:12px;text-decoration:none;color:inherit;background:var(--color-surface_alt,rgba(128,128,128,.06));transition:transform .15s ease,box-shadow .15s ease}
.cities-cards__card:hover{transform:translateY(-2px);box-shadow:0 12px 28px -18px rgba(0,0,0,.45)}
.cities-cards__avatars{display:flex}
.cities-cards__avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid var(--color-surface,#fff);margin-left:-10px}
.cities-cards__avatar:first-child{margin-left:0}
.cities-cards__name{font-family:var(--font-heading);font-size:1.15rem;font-weight:700;color:var(--color-text,inherit)}
.cities-cards__count{font-size:.82rem;opacity:.65}
.cities-cards__cta{font-size:.85rem;font-weight:600;color:var(--color-primary);margin-top:.2rem}
/* Page 404 propre */
.page-404{max-width:38rem;margin:4rem auto 5rem;text-align:center;padding:0 1rem}
.page-404__title{font-family:var(--font-heading);font-size:clamp(3rem,8vw,5rem);line-height:1;margin:0 0 .6rem;color:var(--color-primary)}
.page-404__text{opacity:.75;margin-bottom:1.4rem}
.page-404 form{display:flex;gap:.5rem;justify-content:center;margin-bottom:1.4rem}
.page-404 input[type="search"],.page-404 input[type="text"]{flex:1;max-width:22rem;padding:.8rem 1rem;border:1px solid var(--color-border,rgba(128,128,128,.35));border-radius:8px}
/* ---- QA onyx ---- */
/* Hero : plus compact, contenu centré */
.hero--b{padding:2.6rem 0 3rem !important;min-height:0 !important}
.hero--b .hero__inner{display:flex;justify-content:center}
.hero--b .hero__content{max-width:44rem;text-align:center}
/* Bouton fantôme lisible sur le fond violet */
.hero--b .btn-ghost{color:#fff;border-color:rgba(255,255,255,.55)}
.hero--b .btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
/* Filtres d'archive : selects stylés, en ligne */
.search-filters{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin-bottom:1.2rem}
.search-filters select,.search-filters .form-select{flex:0 1 220px;max-width:240px;padding:.65rem .9rem;background:var(--rs-ink-800);color:var(--rs-text);border:1px solid var(--rs-border);border-radius:var(--radius,2px)}
.search-filters button,.search-filters .btn{flex:0 0 auto}
/* Le bloc de contenu éditorial de la home lu comme un témoignage → l'habiller en citation */
.hp-section--seo-content{background:var(--rs-ink-900);padding-block:var(--sp-8)}
.hp-section--seo-content .seo-content{max-width:38rem;margin-inline:auto;padding:1.6rem 1.8rem;border-left:3px solid var(--rs-primary);background:var(--rs-ink-850);font-style:italic;color:var(--rs-text-light)}
.hp-section--seo-content .seo-content::before{content:"— Parole de membre";display:block;font-style:normal;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rs-primary);margin-bottom:.7rem}

/* ---- QA finale transverse ---- */
/* Avatar du widget "En ligne maintenant" : contraint (l'img n'était pas bornée) */
.sidebar-search__nearby-img{width:46px;height:46px;border-radius:50%;overflow:hidden;flex-shrink:0}
.sidebar-search__nearby-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
/* Filtres d'archive : rangée compacte stylée (au lieu de selects nus pleine largeur) */
.search-filters{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin-bottom:1.3rem}
.search-filters select,.search-filters .form-select{flex:0 1 220px;max-width:240px;padding:.65rem .9rem;border:1px solid var(--color-border,rgba(128,128,128,.35));border-radius:8px;background:var(--color-surface,#fff);color:var(--color-text,inherit);font-size:.92rem}
.search-filters button,.search-filters .btn,.search-filters input[type=submit]{flex:0 0 auto}
/* CTA secondaire de home : doublon → caché partout */
.hp-section--cta-secondary{display:none}

/* Compteur "1 photo" : sans objet (1 photo par profil) */
.card-annonce__photo-count{display:none}

/* 14/10/2026 : champ anti-robot du formulaire masqué (il était visible ; rempli par un humain ou par le remplissage automatique du navigateur, le lead était rejeté) */
.lead-form .form-hp{position:absolute !important;left:-9999px !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important}

/* ==== 14/10/2026 : accueil, profils visibles sans scroller ====
   Ordinateur : hero et formulaire côte à côte, la 1re rangée de photos remonte au-dessus de la barre du bas.
   Mobile : hero compact, 1re rangée de profils, formulaire, puis les autres profils.
   Retour arrière : supprimer ce bloc, ici et dans critical.css (copies d'origine sauvegardées le 14/10). */
@media (min-width:980px){
  body.home.variant-homepage-c #main{display:grid !important;grid-template-columns:minmax(16px,1fr) minmax(0,792px) 420px minmax(16px,1fr);column-gap:0}
  body.home.variant-homepage-c #main > *{grid-column:1 / -1;min-width:0}
  body.home.variant-homepage-c #main > .hp-section--hero{grid-column:2;grid-row:1;margin:16px 12px 18px 0 !important;padding:0 !important;display:flex !important;min-height:0 !important}
  body.home.variant-homepage-c #main > .hp-section--hero > .hero{flex:1;display:flex !important;align-items:center;padding:28px 36px !important;margin:0 !important;min-height:0 !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__inner{display:block !important;padding:0 !important;margin:0 !important;max-width:none !important;width:100%}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__content{text-align:left !important;max-width:none !important;margin:0 !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__title{font-size:clamp(2.1rem,3vw,2.9rem) !important;margin:0 0 12px !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__subtitle{margin:0 !important;max-width:none !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__actions{justify-content:flex-start !important;margin-top:18px !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__stat{margin:12px 0 0 !important}
  body.home.variant-homepage-c #main > .hp-section--lead-form{grid-column:3;grid-row:1;margin:16px 0 18px 12px !important;padding:0 !important;background:transparent !important;display:flex !important}
  body.home.variant-homepage-c #main > .hp-section--lead-form .hp-section__lead-form{margin:0 !important;padding:0 !important;max-width:none !important;width:100%;display:flex;background:transparent !important}
  body.home.variant-homepage-c #main > .hp-section--lead-form .lead-form{width:100% !important;max-width:none !important;margin:0 !important;padding:20px 24px !important;display:flex;flex-direction:column;justify-content:center}
  body.home.variant-homepage-c .hp-section--profils{padding-top:18px !important}
  body.home.variant-homepage-c .hp-section--profils > .hp-section__title{margin-top:0 !important;margin-bottom:0 !important}
  body.home.variant-homepage-c .hp-section--profils > .listing-grid{margin-top:16px !important}
  body.home.variant-homepage-c .hp-section--lead-form .lead-form__step.is-active:has(#lead-email){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px}
  body.home.variant-homepage-c .hp-section--lead-form .lead-form__step:has(#lead-email) > :not(.form-group:has(#lead-prenom)):not(.form-group:has(#lead-email)){grid-column:1 / -1}
}
body.home .hp-section--lead-form .lead-form__title{margin:0 0 10px !important}
body.home .hp-section--lead-form .lead-form__step-indicator{margin-bottom:14px !important}
body.home .hp-section--lead-form .lead-form__step.is-active:has(#lead-age){display:grid;grid-template-columns:146px minmax(0,1fr);column-gap:12px}
body.home .hp-section--lead-form .lead-form__step:has(#lead-age) > .btn{grid-column:1 / -1}
body.home .hp-section--lead-form .lead-form .form-group{margin-bottom:12px !important}
@media (max-width:979px){
  body.home.variant-homepage-c #main{display:grid !important;grid-template-columns:16px minmax(0,1fr) minmax(0,1fr) 16px}
  body.home.variant-homepage-c #main > *{grid-column:1 / -1;min-width:0;order:6}
  body.home.variant-homepage-c .hp-section--profils,
  body.home.variant-homepage-c .hp-section--profils > .listing-grid{display:contents !important}
  body.home.variant-homepage-c #main > .hp-section--hero{order:1;padding:0 !important}
  body.home.variant-homepage-c #main > .hp-section--hero > .hero{padding:22px 16px 8px !important;min-height:0 !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__inner{padding:0 !important;gap:0 !important}
  body.home.variant-homepage-c .hp-section--profils > *{grid-column:2 / 4;order:2;min-width:0}
  body.home.variant-homepage-c .hp-section--profils > .hp-section__title{margin:18px 0 14px !important;max-width:none !important;padding-inline:0 !important}
  body.home.variant-homepage-c .hp-section--profils > .listing-grid > *{order:5;margin:0 0 12px !important;max-width:none !important;transform:none !important}
  body.home.variant-homepage-c .hp-section--profils > .listing-grid > :nth-child(-n+2){order:3}
  body.home.variant-homepage-c .hp-section--profils > .listing-grid > :nth-child(odd){grid-column:2;margin-right:6px !important}
  body.home.variant-homepage-c .hp-section--profils > .listing-grid > :nth-child(even){grid-column:3;margin-left:6px !important}
  body.home.variant-homepage-c #main > .hp-section--lead-form{order:4;margin:0 !important;padding:4px 16px 18px !important}
  body.home.variant-homepage-c #main > .hp-section--lead-form .hp-section__lead-form{margin:0 !important;padding:0 !important;max-width:none !important}
  body.home.variant-homepage-c #main > .hp-section--lead-form .lead-form{padding:20px 18px !important;margin:0 !important;max-width:none !important}
  body.home.variant-homepage-c .hero__title{font-size:clamp(1.8rem,7.6vw,2.4rem) !important;margin:0 0 10px !important}
  body.home.variant-homepage-c .hero__actions{margin-top:14px !important}
  body.home.variant-homepage-c .hero__stat{margin:10px 0 0 !important}
}
/* rencontresoumise.net : surtitre « sur invitation » en double sous le compteur, hero plus serré */
body.home .hero__content > p.hero__stat::before{content:none !important}
body.home .hero__content > p.hero__subtitle::before{margin-bottom:6px}
@media (min-width:980px){
  body.home.variant-homepage-c #main > .hp-section--hero > .hero{border-radius:var(--radius,6px);overflow:hidden;padding:22px 32px !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__content{display:flex !important;flex-wrap:wrap;align-items:center;column-gap:22px}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__title,
  body.home.variant-homepage-c #main > .hp-section--hero .hero__subtitle{flex:0 0 100%}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__title{font-size:clamp(1.8rem,2.3vw,2.2rem) !important;margin:0 0 10px !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__subtitle{font-size:1rem !important;line-height:1.5 !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__actions{margin-top:14px !important}
  body.home.variant-homepage-c #main > .hp-section--hero .hero__stat{margin:14px 0 0 !important}
  body.home.variant-homepage-c .hp-section--profils > .hp-section__title{font-size:1.7rem !important}
  body.home.variant-homepage-c #main > .hp-section--lead-form .lead-form{padding:16px 22px !important}
  body.home.variant-homepage-c .hp-section--lead-form .lead-form__title{font-size:1.15rem !important}
  body.home.variant-homepage-c .hp-section--lead-form .lead-form__step-indicator{margin-bottom:10px !important}
  body.home.variant-homepage-c .hp-section--lead-form .lead-form .form-group{margin-bottom:8px !important}
}
@media (max-width:979px){
  body.home.variant-homepage-c #main > .hp-section--hero > .hero{padding:20px 16px 10px !important}
  body.home.variant-homepage-c .hero__title{font-size:clamp(1.6rem,6.6vw,2rem) !important;margin:0 0 8px !important}
  body.home.variant-homepage-c .hero__subtitle{font-size:.95rem !important;line-height:1.45 !important;margin:0 !important}
  body.home.variant-homepage-c .hero__actions{flex-wrap:nowrap !important;gap:10px !important;margin-top:14px !important}
  body.home.variant-homepage-c .hero__actions .btn{flex:1 1 0;min-width:0;padding-inline:10px !important;white-space:normal;text-align:center}
  body.home.variant-homepage-c .hero__stat{margin:8px 0 0 !important}
  body.home.variant-homepage-c .hp-section--profils > .hp-section__title{font-size:1.6rem !important;margin:16px 0 12px !important}
}
