/* ============ HERO STICKER + LEAD FORM (conversion variant) ============ */
.hero__media::after{
  content:"18+ // NO TABOU";
  position:absolute;
  top:-18px;
  right:-14px;
  width:82px;
  height:82px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:8px;
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  font-size:10px;
  letter-spacing:0.08em;
  line-height:1.2;
  color:var(--ink);
  background:var(--color-primary);
  border:3px solid var(--ink);
  border-radius:50%;
  transform:rotate(-12deg);
  box-shadow:3px 3px 0 var(--ink);
  z-index:2;
}

.hp-section--hero-conversion .hero__inner{grid-template-columns:1.15fr 0.85fr}

.hp-section__lead-form{position:relative;background:var(--bg)}
.hp-section__lead-form--embedded{padding:0 0 var(--sp-24)}
.hp-section__lead-form--embedded .container{max-width:1180px;margin:0 auto;padding:0 var(--sp-6)}

.lead-form{
  background:var(--paper);
  color:var(--ink);
  border:3px solid var(--ink);
  border-radius:0;
  box-shadow:8px 8px 0 var(--color-primary);
  padding:var(--sp-8);
  max-width:560px;
  margin:0 auto;
  transform:rotate(-1deg);
}
.lead-form__title{
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-0.03em;
  color:var(--ink);
  font-size:var(--fs-lg);
  margin-bottom:var(--sp-6);
}
.lead-form__title span{color:var(--color-primary)}

.lead-form__step-indicator{
  display:flex;
  align-items:center;
  gap:0;
  margin-bottom:var(--sp-6);
}
.lead-form__step-dot{
  width:12px;
  height:12px;
  border:2px solid var(--ink);
  border-radius:0;
  background:var(--paper);
  flex:none;
}
.lead-form__step-dot + .lead-form__step-dot{margin-left:22px;position:relative}
.lead-form__step-dot + .lead-form__step-dot::before{
  content:"";
  position:absolute;
  top:50%;
  left:-22px;
  width:22px;
  height:2px;
  background:var(--ink);
}
.lead-form__step-dot.is-active,.lead-form__step-dot--active{background:var(--color-primary)}

.lead-form__step{display:none}
.lead-form__step.is-active{display:block}

.lead-form__gender-group{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sp-3);
  margin-bottom:var(--sp-6);
}
.lead-form__gender-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 12px;
  background:var(--paper);
  color:var(--ink);
  border:2px solid var(--ink);
  border-radius:0;
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:12px;
  cursor:pointer;
  transition:transform .05s linear,box-shadow .05s linear;
  user-select:none;
}
.lead-form__gender-btn:hover{box-shadow:3px 3px 0 var(--ink)}
.lead-form__gender-btn input{position:absolute;opacity:0;pointer-events:none}
.lead-form__gender-btn.is-active,
.lead-form__gender-btn:has(input:checked){
  background:var(--color-primary);
  color:var(--ink);
  box-shadow:3px 3px 0 var(--ink);
  transform:translate(-1px,-1px);
}
.lead-form__gender-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}

.form-group{margin-bottom:var(--sp-4)}
.form-label{
  display:block;
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:11px;
  color:var(--ink);
  margin-bottom:var(--sp-2);
}
.form-input,.form-select,.lead-form .form-input{
  width:100%;
  padding:13px 14px;
  background:#fff;
  color:var(--ink);
  border:2px solid var(--ink);
  border-radius:0;
  font-family:var(--font-body);
  font-size:var(--fs-base);
  margin-bottom:var(--sp-4);
}
.form-input::placeholder,.form-select::placeholder{
  color:#6E6678;
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-size:var(--fs-sm);
}
.form-input:focus,.form-select:focus{
  outline:none;
  border:3px solid var(--color-primary);
  box-shadow:3px 3px 0 var(--color-primary);
}
.lead-form .btn-primary.btn-block{
  background:var(--color-primary);
  color:var(--ink);
  border:2px solid var(--ink);
  box-shadow:5px 5px 0 var(--ink);
  padding:16px;
  margin-top:var(--sp-2);
}
.lead-form .btn-primary.btn-block:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink)}
.lead-form .btn-secondary{
  background:transparent;
  color:var(--ink);
  border:2px solid var(--ink);
  margin-top:var(--sp-2);
}
.lead-form .btn-secondary:hover{background:var(--ink);color:var(--paper)}

/* ============ REASSURANCE ============ */
.hp-section--reassurance{background:var(--bg)}
.hp-section--reassurance .grid-3{gap:var(--sp-8)}
.hp-section--reassurance .container{display:block}
.hp-section--reassurance .section > .container{position:relative}

.hp-section--reassurance .section-title{text-align:left}
.hp-section--reassurance .section-title.text-center{text-align:left}

.hp-section--reassurance .reassurance-item,
.reassurance-item{
  position:relative;
  padding:var(--sp-8) var(--sp-6) var(--sp-6);
  border:3px solid var(--ink);
  border-radius:0;
  overflow:hidden;
  text-align:left;
  box-shadow:6px 6px 0 var(--ink);
}
.hp-section--reassurance{display:block}
.hp-section--reassurance .section > .container{
  display:grid;
  grid-template-columns:1fr;
}
.hp-section--reassurance .reassurance-item{display:block}

.hp-section--reassurance .section .container{position:relative}
.hp-section--reassurance .reassurance-item{margin-bottom:0}

/* layout: title then 3 items in grid */
.hp-section--reassurance .section > .container{grid-template-columns:1fr}
.hp-section--reassurance .section-title{grid-column:1/-1}

.reassurance-item:nth-child(2){
  background:var(--color-primary);
  color:var(--ink);
  border-color:var(--ink);
  transform:rotate(-1.5deg);
}
.reassurance-item:nth-child(3){
  background:var(--paper);
  color:var(--ink);
  border-color:var(--color-primary);
  transform:rotate(1deg);
}
.reassurance-item:nth-child(4){
  background:var(--bg-2);
  color:var(--text);
  border-color:var(--acid);
  transform:rotate(-1deg);
}
.reassurance-item::before{
  counter-increment:reass;
  content:counter(reass,decimal-leading-zero);
  position:absolute;
  right:-8px;
  bottom:-28px;
  font-family:var(--font-heading);
  font-weight:900;
  font-size:120px;
  line-height:1;
  color:transparent;
  -webkit-text-stroke:2px rgba(244,240,230,0.14);
  pointer-events:none;
  z-index:0;
}
.reassurance-item:nth-child(3)::before{-webkit-text-stroke-color:rgba(11,10,13,0.12)}
.hp-section--reassurance .section > .container{counter-reset:reass}

.reassurance-item__icon{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:8px;
  border:2px solid currentColor;
  border-radius:0;
  margin-bottom:var(--sp-4);
}
.reassurance-item__icon svg{width:28px;height:28px;display:block}
.reassurance-item__title{
  position:relative;
  z-index:1;
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  font-size:var(--fs-md);
  margin-bottom:var(--sp-2);
  color:inherit;
}
.reassurance-item__desc{
  position:relative;
  z-index:1;
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  line-height:1.6;
  margin:0;
  color:inherit;
  opacity:0.92;
}

/* ============ CTA ============ */
.hp-section--cta{background:var(--bg);position:relative;overflow:hidden}
.cta-section--a{
  position:relative;
  padding:var(--sp-24) 0;
}
.cta-section--a::before{
  content:"";
  position:absolute;
  left:0;right:0;
  top:var(--sp-16);
  height:16px;
  background:var(--tape);
  opacity:0.85;
}
.cta-section--a .container{
  position:relative;
  background:var(--color-primary);
  color:var(--ink);
  border:4px solid var(--ink);
  border-radius:0;
  box-shadow:10px 10px 0 var(--ink);
  padding:var(--sp-16) var(--sp-12);
  text-align:left;
}
.cta-section--a .container::after{
  content:"18+";
  position:absolute;
  top:-20px;
  right:-16px;
  width:64px;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--paper);
  color:var(--ink);
  border:3px solid var(--ink);
  border-radius:50%;
  font-family:var(--font-heading);
  font-weight:800;
  font-size:18px;
  transform:rotate(10deg);
  box-shadow:3px 3px 0 var(--ink);
}
.cta-section__title{
  font-family:var(--font-heading);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-0.03em;
  line-height:0.9;
  font-size:var(--fs-2xl);
  color:var(--ink);
  margin-bottom:var(--sp-4);
}
.cta-section__desc{
  font-family:var(--font-body);
  color:var(--ink);
  font-size:var(--fs-md);
  max-width:640px;
  margin-bottom:var(--sp-8);
}
.cta-section__actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-4);
}
.cta-section__actions .btn-ghost{
  background:transparent;
  border:3px solid var(--ink);
  color:var(--ink);
}
.cta-section__actions .btn-ghost:hover{background:var(--ink);color:var(--color-primary)}

/* ============ PROFILS LISTING GRID ============ */
.hp-section--profils{background:var(--bg);padding:var(--sp-24) 0}
.hp-section__title{
  max-width:1180px;
  margin:0 auto var(--sp-12);
  padding:0 var(--sp-6);
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-0.03em;
  font-size:var(--fs-xl);
}
.hp-section__title::before{content:"# ";color:var(--color-primary)}

.listing-grid--annonces{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:var(--sp-6);
  max-width:1180px;
  margin:0 auto;
  padding:0 var(--sp-6);
}

.card-annonce{
  background:var(--bg-2);
  border:3px solid var(--ink);
  border-radius:0;
  box-shadow:6px 6px 0 var(--color-primary);
  overflow:hidden;
  transition:transform .05s linear,box-shadow .05s linear,border-color .05s linear;
}
.card-annonce:nth-child(even){transform:rotate(1deg)}
.card-annonce:nth-child(3n){transform:rotate(-1deg)}
.card-annonce:hover{
  transform:translate(3px,3px);
  box-shadow:3px 3px 0 var(--color-primary);
  border-color:var(--color-primary);
}
.card-annonce__link{display:block;color:inherit}

.card-annonce__image{
  position:relative;
  aspect-ratio:4/5;
  border-bottom:3px solid var(--ink);
  overflow:hidden;
}
.card-annonce__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:contrast(1.08) saturate(1.05);
}
.card-annonce__photo-count{
  position:absolute;
  bottom:8px;
  right:8px;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:11px;
  padding:4px 8px;
  border:1px solid var(--paper);
}

.card-annonce__content{padding:var(--sp-4)}
.card-annonce__title{
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-0.02em;
  font-size:var(--fs-md);
  color:var(--text);
  margin-bottom:var(--sp-3);
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
}
.card-annonce__title span{
  display:inline-block;
  background:var(--acid);
  color:var(--ink);
  border:1px solid var(--ink);
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-size:10px;
  padding:2px 6px;
  transform:rotate(-3deg);
}

.card-annonce__tags{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-bottom:var(--sp-3);
}
.card-annonce__tag{
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:11px;
  padding:3px 8px;
  border:1.5px solid;
  border-radius:0;
}
.card-annonce__tag--age{background:var(--color-primary);color:var(--ink);border-color:var(--ink)}
.card-annonce__tag--location{background:transparent;color:var(--cyan);border-color:var(--cyan)}

.card-annonce__badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:10px;
  padding:3px 8px;
  border:1.5px solid var(--border);
  color:var(--text-light);
}
.card-annonce__badge-dot{
  width:8px;
  height:8px;
  border-radius:0;
  display:inline-block;
  background:var(--offline);
  flex:none;
}
.card-annonce__badge--online{color:var(--acid);border-color:var(--acid)}
.card-annonce__badge--online .card-annonce__badge-dot{
  background:var(--acid);
  animation:pulse-steps 1s steps(2) infinite;
}
.card-annonce__badge--recent{color:var(--recent);border-color:var(--recent)}
.card-annonce__badge--recent .card-annonce__badge-dot{background:var(--recent)}
.card-annonce__badge--offline{color:var(--offline);border-color:var(--offline)}
.card-annonce__badge--offline .card-annonce__badge-dot{background:var(--offline)}
@keyframes pulse-steps{0%{opacity:1}50%{opacity:0.25}100%{opacity:1}}

.card-annonce__excerpt{
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  line-height:1.5;
  color:var(--text-light);
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ============ CITIES ============ */
.hp-section--cities{background:var(--bg);padding:0 0 var(--sp-16)}
.hp-section--cities .container{max-width:1180px;margin:0 auto;padding:0 var(--sp-6)}

/* ============ FAQ ============ */
.hp-section--faq .section--alt{position:relative;background:var(--bg-2)}
.hp-section--faq .section--alt::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:var(--tape);
}
.faq-list{display:flex;flex-direction:column;gap:var(--sp-3);max-width:820px}
.faq-item{
  border:2px solid var(--border);
  border-radius:0;
  background:var(--bg);
}
.faq-item[open]{
  border-left:4px solid var(--color-primary);
  background:var(--bg-2);
}
.faq-item summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--sp-4);
  padding:var(--sp-4) var(--sp-6);
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.04em;
  font-size:var(--fs-sm);
  color:var(--text);
  cursor:pointer;
  list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";
  flex:none;
  display:flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  background:var(--color-primary);
  color:var(--ink);
  font-family:var(--font-heading);
  font-weight:800;
  font-size:18px;
  line-height:1;
  transition:transform .1s linear;
}
.faq-item[open] summary::after{content:"×";transform:rotate(0deg)}
.faq-item__answer{
  padding:0 var(--sp-6) var(--sp-6);
  font-family:var(--font-body);
  color:var(--text-light);
  line-height:1.6;
  font-size:var(--fs-sm);
}

/* ============ FOOTER ============ */
.site-footer{
  position:relative;
  background:#080609;
  border-top:4px solid transparent;
  border-image:var(--tape) 4;
  padding-top:var(--sp-16);
  overflow:hidden;
}
.site-footer::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:var(--tape);
}
.site-footer__inner{
  max-width:1180px;
  margin:0 auto;
  padding:0 var(--sp-6);
  position:relative;
  z-index:1;
}
.site-footer__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:var(--sp-12);
  padding-bottom:var(--sp-16);
}
.site-footer__col h3,
.site-footer__col strong,
.site-footer__col-title{
  display:inline-block;
  font-family:var(--font-heading);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:13px;
  color:var(--text);
  margin-bottom:var(--sp-4);
  padding-bottom:4px;
  border-bottom:2px solid var(--color-primary);
}
.site-footer__col ul{display:flex;flex-direction:column;gap:var(--sp-2)}
.site-footer__col a{
  font-family:var(--font-body);
  text-transform:uppercase;
  letter-spacing:0.04em;
  font-size:12px;
  color:var(--text-light);
}
.site-footer__col a:hover{background:var(--color-primary);color:var(--ink)}

.site-footer__bottom{
  position:relative;
  z-index:1;
  border-top:1px solid var(--border);
  padding:var(--sp-6);
  max-width:1180px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:var(--sp-3);
  flex-wrap:wrap;
  font-family:var(--font-body);
  font-size:11px;
  color:var(--text-light);
}
.site-footer__bottom::before{
  content:"18+";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:3px 6px;
  background:var(--color-primary);
  color:var(--ink);
  font-family:var(--font-heading);
  font-weight:800;
  font-size:11px;
}
.site-footer__inner::after{
  content:"LE MONDE // FÉTICHISTE";
  position:absolute;
  bottom:-46px;
  left:var(--sp-6);
  right:0;
  font-family:var(--font-heading);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-0.04em;
  font-size:clamp(2.4rem,9vw,6rem);
  line-height:0.8;
  color:transparent;
  -webkit-text-stroke:2px rgba(244,240,230,0.06);
  white-space:nowrap;
  pointer-events:none;
  z-index:0;
}

/* ============ STICKY CTA ============ */
.sticky-cta-bar{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:60;
  background:var(--bg-2);
  border-top:4px solid var(--color-primary);
  transition:transform .2s ease;
}
.sticky-cta-bar--dark{background:var(--bg-2)}
.sticky-cta-bar.is-hidden{transform:translateY(110%)}
.sticky-cta-bar__inner{
  display:flex;
  align-items:center;
  gap:var(--sp-4);
  padding:var(--sp-3) var(--sp-6);
}
.sticky-cta-bar__btn{
  margin-left:auto;
  background:var(--color-primary);
  color:var(--ink);
  border:2px solid var(--ink);
  box-shadow:3px 3px 0 var(--ink);
}
.sticky-cta-bar__btn:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.sticky-cta-bar__close{
  background:transparent;
  border:2px solid var(--text-light);
  color:var(--text);
  width:36px;height:36px;
  border-radius:0;
  font-size:18px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sticky-cta-bar__close:hover{border-color:var(--color-primary);color:var(--color-primary)}

/* ============ CONSENT BANNER (hidden by default) ============ */
.consent-banner{
  display:none;
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:70;
  background:var(--bg-2);
  border-top:4px solid var(--color-primary);
}
.consent-banner.is-visible{display:block}
.consent-banner__inner{
  max-width:1180px;
  margin:0 auto;
  padding:var(--sp-4) var(--sp-6);
  display:flex;
  align-items:center;
  gap:var(--sp-6);
  flex-wrap:wrap;
}
.consent-banner__text{
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  color:var(--text-light);
  flex:1;
  min-width:240px;
}
.consent-banner__actions{display:flex;gap:var(--sp-3);flex-wrap:wrap}

/* ============ EMAIL MODAL (hidden by default) ============ */
.email-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:100;
  align-items:center;
  justify-content:center;
  padding:var(--sp-6);
  background:rgba(8,6,9,0.86);
}
.email-modal[aria-hidden="false"]{display:flex}
.email-modal__inner,
.email-modal .email-modal__content,
.email-modal > div{
  background:var(--paper);
  color:var(--ink);
  border:3px solid var(--ink);
  border-radius:0;
  box-shadow:8px 8px 0 var(--color-primary);
  max-width:460px;
  width:100%;
  padding:var(--sp-8);
}
.email-modal h2,.email-modal h3{color:var(--ink)}
.email-modal input{
  background:#fff;
  border:2px solid var(--ink);
  border-radius:0;
  color:var(--ink);
}

/* ============ PAGE PROFIL — variant A ============ */
.single-profil--a{background:var(--bg);padding:var(--sp-12) 0 var(--sp-24)}

.breadcrumbs{max-width:1180px;margin:0 auto var(--sp-8);padding:0 var(--sp-6)}
.breadcrumbs__list{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.breadcrumbs__item{
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:11px;
  color:var(--text-light);
}
.breadcrumbs__item:not(:last-child)::after{content:"/";color:var(--color-primary);margin-left:8px}
.breadcrumbs__item:last-child{color:var(--text)}
.breadcrumbs__item a{color:var(--text-light)}
.breadcrumbs__item a:hover{color:var(--color-primary)}

.single-profil__page-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-8);
}
.single-profil__main{min-width:0}

.single-profil__card{
  background:var(--bg-2);
  border:3px solid var(--line);
  border-radius:0;
  box-shadow:8px 8px 0 var(--color-primary);
  padding:var(--sp-8);
  margin-bottom:var(--sp-8);
}
.single-profil__top{
  display:grid;
  grid-template-columns:320px 1fr;
  gap:var(--sp-8);
}
.single-profil__photo{position:relative}
.single-profil__img,.single-profil__photo img{
  width:100%;
  border:3px solid var(--ink);
  border-radius:0;
  aspect-ratio:4/5;
  object-fit:cover;
}
.single-profil__badge{
  position:absolute;
  top:12px;
  left:12px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:11px;
  padding:5px 9px;
  border:2px solid var(--ink);
  color:var(--ink);
}
.single-profil__badge-dot{width:8px;height:8px;border-radius:0;background:var(--ink);flex:none}
.single-profil__badge--online{background:var(--acid);color:var(--ink)}
.single-profil__badge--online .single-profil__badge-dot{animation:pulse-steps 1s steps(2) infinite}
.single-profil__badge--recent{background:var(--recent);color:var(--ink)}
.single-profil__badge--offline{background:var(--offline);color:var(--paper)}
.single-profil__badge--offline .single-profil__badge-dot{background:var(--paper)}
.single-profil__badge--dispo{background:var(--color-primary);color:var(--ink)}

.single-profil__name{
  font-family:var(--font-heading);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-0.03em;
  line-height:0.92;
  font-size:var(--fs-xl);
  color:var(--text);
  margin-bottom:var(--sp-2);
}
.single-profil__name span{color:var(--color-primary)}
.single-profil__handle{
  font-family:var(--font-body);
  color:var(--cyan);
  font-size:var(--fs-sm);
  margin-bottom:var(--sp-4);
}
.single-profil__meta-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:var(--sp-4);
}
.single-profil__meta-item{display:inline-flex}
.single-profil__tag{
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:11px;
  padding:4px 9px;
  border:1.5px solid;
  border-radius:0;
}
.single-profil__tag--age{background:var(--color-primary);color:var(--ink);border-color:var(--ink)}
.single-profil__tag--location{background:transparent;color:var(--cyan);border-color:var(--cyan)}
.single-profil__tag--distance{background:transparent;color:var(--text);border-color:var(--line)}
.single-profil__desc-courte{
  font-family:var(--font-body);
  color:var(--text);
  line-height:1.6;
  margin-top:var(--sp-4);
}
.single-profil__info > .single-profil__meta-item:has(.single-profil__views),
.single-profil__views{
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-size:12px;
  color:var(--acid);
}

.single-profil__desc{
  margin-top:var(--sp-8);
  padding-top:var(--sp-6);
  border-top:2px solid var(--border);
  font-family:var(--font-body);
  color:var(--text);
  line-height:1.7;
}
.single-profil__desc a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:2px}

.single-profil__related-links{margin-top:var(--sp-6)}
.single-profil__related-links strong{
  display:block;
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0.02em;
  font-size:var(--fs-sm);
  color:var(--text);
  margin-bottom:var(--sp-3);
}
.single-profil__related-links strong::before{content:"// ";color:var(--color-primary)}
.single-profil__links-list{display:flex;flex-wrap:wrap;gap:8px}
.single-profil__links-list a{
  display:inline-block;
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-size:11px;
  padding:5px 10px;
  border:1.5px solid var(--cyan);
  color:var(--cyan);
}
.single-profil__links-list a:hover{background:var(--cyan);color:var(--ink)}

/* ---- CHAT ---- */
.chat{
  background:var(--bg-2);
  border:3px solid var(--color-primary);
  border-radius:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  max-height:640px;
}
.chat__header{
  display:flex;
  align-items:center;
  gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);
  background:var(--ink);
  border-bottom:3px solid var(--color-primary);
}
.chat__header-avatar{position:relative;flex:none}
.chat__avatar-img{
  width:40px;height:40px;
  border:2px solid var(--line);
  border-radius:0;
  object-fit:cover;
}
.chat__header-dot{
  position:absolute;
  bottom:-3px;right:-3px;
  width:10px;height:10px;
  background:var(--acid);
  border:1px solid var(--ink);
  animation:pulse-steps 1s steps(2) infinite;
}
.chat__header-info{display:flex;flex-direction:column;line-height:1.2}
.chat__header-name{
  font-family:var(--font-heading);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:-0.02em;
  font-size:var(--fs-sm);
  color:var(--text);
}
.chat__header-status{
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:10px;
  color:var(--acid);
}
.chat__messages{
  flex:1;
  overflow-y:auto;
  padding:var(--sp-4);
  background:var(--bg);
  background-image:var(--grain);
  display:flex;
  flex-direction:column;
  gap:var(--sp-3);
}
.chat__bubble{
  max-width:78%;
  padding:10px 13px;
  border-radius:0;
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  line-height:1.5;
  border:2px solid var(--ink);
}
.chat__bubble--profil{
  align-self:flex-start;
  background:var(--paper);
  color:var(--ink);
  box-shadow:3px 3px 0 rgba(11,10,13,0.55);
}
.chat__bubble--user{
  align-self:flex-end;
  background:var(--color-primary);
  color:var(--ink);
  box-shadow:-3px 3px 0 rgba(11,10,13,0.55);
}
.chat__typing{
  align-self:flex-start;
  display:inline-flex;
  gap:5px;
  padding:12px 13px;
  background:var(--paper);
  border:2px solid var(--ink);
}
.chat__typing-dot{
  width:8px;height:8px;
  background:var(--ink);
  border-radius:0;
  animation:type-steps 0.9s steps(2) infinite;
}
.chat__typing-dot:nth-child(2){animation-delay:.15s}
.chat__typing-dot:nth-child(3){animation-delay:.3s}
@keyframes type-steps{0%{transform:translateY(0)}50%{transform:translateY(-5px)}100%{transform:translateY(0)}}
.chat__input-bar{
  display:flex;
  gap:var(--sp-2);
  padding:var(--sp-3);
  background:var(--ink);
  border-top:3px solid var(--color-primary);
}
.chat__input{
  flex:1;
  padding:11px 12px;
  background:var(--bg-2);
  color:var(--text);
  border:2px solid var(--line);
  border-radius:0;
  font-family:var(--font-body);
  font-size:var(--fs-sm);
}
.chat__input::placeholder{color:var(--text-light);text-transform:uppercase;letter-spacing:0.04em;font-size:12px}
.chat__input:focus{outline:none;border-color:var(--color-primary)}
.chat__send{
  flex:none;
  min-width:48px;
  padding:0 14px;
  background:var(--color-primary);
  color:var(--ink);
  border:2px solid var(--ink);
  border-radius:0;
  font-family:var(--font-heading);
  font-weight:800;
  font-size:18px;
  box-shadow:3px 3px 0 var(--ink);
}
.chat__send:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}

/* ---- CONTACT (offline) ---- */
.single-profil__contact-card{
  background:var(--paper);
  color:var(--ink);
  border:3px solid var(--ink);
  border-radius:0;
  box-shadow:8px 8px 0 var(--color-primary);
  padding:var(--sp-8);
}
.single-profil__contact-top{
  display:flex;
  align-items:center;
  gap:var(--sp-3);
  margin-bottom:var(--sp-4);
}
.single-profil__contact-avatar{
  width:48px;height:48px;
  border:2px solid var(--ink);
  border-radius:0;
  object-fit:cover;
  flex:none;
}
.single-profil__contact-who{display:flex;flex-direction:column;line-height:1.2}
.single-profil__contact-name{
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-0.02em;
  font-size:var(--fs-md);
  color:var(--ink);
}
.single-profil__contact-offline{
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:10px;
  color:var(--offline);
}
.single-profil__contact-prompt{
  font-family:var(--font-body);
  color:var(--ink);
  line-height:1.6;
  margin-bottom:var(--sp-4);
}
.single-profil__textarea{
  width:100%;
  min-height:110px;
  padding:12px 14px;
  background:#fff;
  color:var(--ink);
  border:2px solid var(--ink);
  border-radius:0;
  font-family:var(--font-body);
  font-size:var(--fs-base);
  resize:vertical;
  margin-bottom:var(--sp-4);
}
.single-profil__textarea:focus{
  outline:none;
  border:3px solid var(--color-primary);
  box-shadow:3px 3px 0 var(--color-primary);
}
.single-profil__chips{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:var(--sp-6);
}
.single-profil__chips-label{
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:11px;
  color:var(--ink);
  margin-right:4px;
}
.single-profil__chip{
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-size:11px;
  padding:6px 11px;
  background:var(--paper);
  color:var(--ink);
  border:2px solid var(--ink);
  border-radius:0;
}
.single-profil__chip:hover{background:var(--color-primary);color:var(--ink)}
.single-profil__submit{
  width:100%;
  background:var(--color-primary);
  color:var(--ink);
  border:2px solid var(--ink);
  box-shadow:5px 5px 0 var(--ink);
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  padding:16px;
}
.single-profil__submit:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink)}

.single-profil__sidebar{display:none}

/* ---- MAILLAGE ---- */
.maillage__title{
  max-width:1180px;
  margin:var(--sp-16) auto var(--sp-6);
  padding:0 var(--sp-6);
  font-family:var(--font-heading);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-0.03em;
  font-size:var(--fs-lg);
}
.maillage__title::before{content:"// ";color:var(--color-primary)}
.maillage__all-link{
  display:inline-block;
  margin:0 auto var(--sp-8);
  font-family:var(--font-body);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-size:11px;
  padding:6px 12px;
  background:var(--color-primary);
  color:var(--ink);
  border:2px solid var(--ink);
  box-shadow:3px 3px 0 var(--ink);
}
.maillage__all-link:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);color:var(--ink)}

/* ============ RESPONSIVE ============ */
@media (max-width:1024px){
  .single-profil__top{grid-template-columns:260px 1fr}
  .cta-section__title{font-size:var(--fs-xl)}
}

@media (max-width:768px){
  .menu-toggle{display:flex}
  .site-header__nav{
    display:none;
    position:absolute;
    top:100%;left:0;right:0;
    background:var(--bg-2);
    border-bottom:4px solid var(--color-primary);
    padding:var(--sp-4) var(--sp-6);
  }
  .site-header__nav.is-open{display:block}
  .site-header__nav-list{flex-direction:column;align-items:flex-start;gap:var(--sp-4)}
  .hero__inner{grid-template-columns:1fr;gap:var(--sp-12)}
  .hp-section--hero-conversion .hero__inner{grid-template-columns:1fr}
  .grid-3,.hp-section--reassurance .section > .container{grid-template-columns:1fr 1fr}
  .single-profil__top{grid-template-columns:1fr}
  .single-profil__page-layout{grid-template-columns:1fr}
  .cta-section--a .container{padding:var(--sp-12) var(--sp-6)}
}

@media (max-width:600px){
  :root{
    --shadow-hard:4px 4px 0 var(--ink);
    --shadow-hard-mag:4px 4px 0 var(--color-primary);
  }
  .container{padding-left:var(--sp-4);padding-right:var(--sp-4)}
  .section{padding-top:var(--sp-16);padding-bottom:var(--sp-16)}
  .grid-3,
  .hp-section--reassurance .section > .container,
  .listing-grid--annonces{grid-template-columns:1fr}
  .listing-grid--annonces{gap:var(--sp-4)}

  .hero__title,
  .lead-form,
  .reassurance-item,
  .reassurance-item:nth-child(2),
  .reassurance-item:nth-child(3),
  .reassurance-item:nth-child(4),
  .card-annonce,
  .card-annonce:nth-child(even),
  .card-annonce:nth-child(3n),
  .site-header__logo,
  .hero__image--placeholder{transform:none !important}

  .lead-form{box-shadow:4px 4px 0 var(--color-primary)}
  .card-annonce{box-shadow:4px 4px 0 var(--color-primary)}
  .single-profil__card,
  .single-profil__contact-card{box-shadow:4px 4px 0 var(--color-primary)}
  .hero__image--placeholder{box-shadow:4px 4px 0 var(--color-primary)}
  .cta-section--a .container{box-shadow:5px 5px 0 var(--ink)}

  .cta-section__title{font-size:var(--fs-lg)}
  .cta-section__actions .btn,
  .hero__actions .btn{width:100%}
  .site-header__inner{gap:var(--sp-3)}
  .site-header__cta-btn{display:none}
}
/* ============================================================
   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}
}


/* cathode (lemondefetichiste) */
.hp-section--hero .hero,.hp-section--hero{background:#0C0910 !important}
.hero__title{color:#fff}
@media(max-width:640px){.hero__title,.section-title,.single-profil__name{font-size:clamp(1.9rem,8.5vw,2.9rem) !important;overflow-wrap:anywhere;word-break:break-word;line-height:1.02}.site-header__cta-btn{display:none}.site-header__logo-text{font-size:1rem;overflow-wrap:anywhere}}
.reassurance-item{overflow:hidden}
.site-footer__inner::after{display:none}
.site-footer__col:empty{display:none}


/* 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é (manquait) + header padding */
.skip-link{position:absolute!important;left:-9999px;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;z-index:100000}
.skip-link:focus{left:8px;top:8px;width:auto;height:auto;clip:auto;padding:8px 16px;background:var(--color-primary,#CC3EA1);color:#fff;font-weight:700}
.site-header__inner{padding-inline:clamp(16px,3vw,40px) !important;}
.site-header__logo-text{white-space:normal;}

/* Hero compact : resserrer le vide avant les profils */
.hp-section--hero{padding-block:clamp(28px,4vw,60px) clamp(18px,2.5vw,36px) !important;min-height:0 !important;}
.hp-section--hero .hero{padding-block:0 !important;min-height:0 !important;}
.hp-section--hero .hero__subtitle,.hp-section--hero .hero__lead,.hp-section--hero p{margin-top:6px !important;}
.hp-section--profils{padding-top:clamp(20px,2.5vw,36px) !important;}

/* ---- Page inscription (Le Monde Fetichiste) ---- */
.register-page{padding:4rem 1rem}
.register-page__box{max-width:34rem;margin-inline:auto;background:var(--paper,#F5F2F4);color:var(--ink,#121014);border:3px solid var(--ink,#121014);border-radius:0;padding:2.4rem 2.2rem;box-shadow:8px 8px 0 var(--color-primary)}
.register-page__title{font-family:var(--font-heading);font-size:1.7rem;line-height:1.1;margin:0 0 .5rem;text-transform:uppercase}
.register-page__title::before{content:"# "}
.register-page__subtitle{margin:0 0 1.2rem;font-size:.98rem;opacity:.8}
.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:800;color:var(--color-primary)}
.register-page__stat-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.register-page__promise{font-size:.92rem;border-left:4px solid var(--color-primary);padding-left:.9rem;margin-bottom:1.3rem}
.register-page__promise p{margin:0}
.register-form__label{display:block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem}
.register-form__input{width:100%;padding:.9rem 1rem;border:2px solid var(--ink,#121014);border-radius:0;font-size:1rem;margin-bottom:1rem;background:#fff;color:var(--ink,#121014)}
.register-form__input:focus{outline:3px solid var(--color-primary);outline-offset:0}
.register-form__submit{width:100%;padding:1rem;font-size:1rem}
.register-page__trust{margin-top:1.3rem;font-size:.8rem;opacity:.7}
.register-page__trust p{margin:.25rem 0}
.register-form__legal{margin-top:1rem;font-size:.75rem;opacity:.7}
.register-form__legal a{color:var(--color-primary)}
@media(max-width:520px){.register-page{padding:2.2rem .8rem}.register-page__box{padding:1.7rem 1.2rem;box-shadow:5px 5px 0 var(--color-primary)}}
/* Boutons + stat du hero */
.hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.3rem}
.hero__stat{margin-top:1rem;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.hero__stat-count{font-weight:800;color:var(--color-primary);font-size:1.1em}

/* ---- 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 cathode ---- */
/* Maillage "Rencontres à X" sur profil : panneau clair→sombre cohérent */
.single-profil__links,.single-profil__links-list{background:transparent}
.single-profil__links{border:1px solid rgba(255,255,255,.14);border-radius:0;padding:1rem 1.2rem}
.single-profil__links,.single-profil__links a{color:var(--paper,#F5F2F4)}
.single-profil__links a:hover{color:var(--color-primary)}
/* Tuile CTA de la grille : mots longs sans débordement */
.listing-grid .cta-section__title{overflow-wrap:break-word;hyphens:auto}
/* Bouton secondaire du héro lisible */
.hero--b .btn-ghost,.hero--b .btn-secondary{color:#fff;border-color:rgba(255,255,255,.5)}

/* ---- 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}

/* ---- Cartes profil : version soignée (brutal net) ---- */
.card-annonce{border:2px solid var(--paper,#F5F2F4);border-radius:0;background:var(--bg,#0C0910);overflow:hidden;transition:transform .12s ease,box-shadow .12s ease;display:flex;flex-direction:column}
.card-annonce:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--color-primary)}
.card-annonce__image{position:relative;aspect-ratio:4/5;overflow:hidden}
.card-annonce__image img{width:100%;height:100%;object-fit:cover;display:block}
.card-annonce__content{padding:.9rem 1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem}
.card-annonce__title{font-family:var(--font-heading);font-size:.95rem;letter-spacing:.02em;text-transform:uppercase;color:var(--paper,#F5F2F4);margin:0;overflow-wrap:anywhere}
.card-annonce__meta,.card-annonce__title + div{font-size:.82rem;color:var(--color-primary);letter-spacing:.06em}
.card-annonce__excerpt{font-size:.82rem;color:rgba(245,242,244,.62);line-height:1.5;margin:0}
.card-annonce__badge{position:absolute;top:.6rem;left:.6rem;background:var(--color-primary);color:#0C0910;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:.28rem .55rem}

/* Badges statut sur les cartes (overlay image, haut-gauche) */
.card-profil--b{position:relative}
.card-profil__badge{position:absolute;top:.6rem;left:.6rem;z-index:2;display:inline-flex;align-items:center;gap:.35rem;font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:.3rem .55rem}
.card-profil__badge-dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.card-profil__badge--online{background:var(--color-primary);color:#0C0910}
.card-profil__badge--recent{background:#F5A623;color:#0C0910}
.card-profil__badge--offline{background:rgba(245,242,244,.25);color:#F5F2F4}
