/*
 * Pages de contenu — Logement Intermittent
 * Chargée sur les Pages WordPress (is_page). Autonome : redéclare les
 * primitives (.li-wrap/.li-btn) pour ne pas dépendre de home.css.
 */

/* Primitives partagées */
.li-wrap { width: 100%; max-width: none; margin-inline: auto; padding-inline: clamp(20px, 4vw, 56px); }
.li-center { text-align: center; margin-top: var(--li-space-6); }
.li-btn { display: inline-block; font-weight: 600; font-size: 1rem; line-height: 1; padding: 0.95em 1.7em; border-radius: var(--li-radius-pill); transition: transform var(--li-transition), box-shadow var(--li-transition), background-color var(--li-transition); }
.li-btn--velvet { background: var(--li-velvet); color: #fff; box-shadow: var(--li-shadow-sm); }
.li-btn--velvet:hover { background: var(--li-velvet-dark); color: #fff; transform: translateY(-2px); box-shadow: var(--li-shadow); }
.li-btn--brass { background: var(--li-brass); color: #2A2018; box-shadow: var(--li-shadow-sm); }
.li-btn--brass:hover { background: var(--li-brass-soft); transform: translateY(-2px); }
.li-btn--ghost { background: transparent; color: var(--li-text); box-shadow: inset 0 0 0 1.5px var(--li-border); }
.li-btn--ghost:hover { box-shadow: inset 0 0 0 1.5px var(--li-brass); color: var(--li-velvet-dark); }

/* Gabarit de page */
/* Le thème parent enveloppe le contenu dans .page__text (parfois max-width/marge asymétrique) : on le neutralise pour que .li-page centre proprement */
.page__text { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }

/* li-footer-spacing-guard — RESPIRATION AVANT LE FOOTER, non négociable.
   La règle .page__text{padding-bottom:clamp(104px,12vh,168px)} de hivepress.css était
   ANNULÉE par le `padding:0 !important` ci-dessus (neutralisation du gabarit parent
   pour le centrage .li-page). Résultat : sur TOUTE page à shortcode, le contenu venait
   coller au footer sombre — constaté et signalé plusieurs fois, corrigé à la source le
   2026-08-03 plutôt que page par page.
   On réaffirme donc l'espacement ici, après la neutralisation et avec la même force.
   Toute nouvelle page de contenu en hérite : ne PAS ajouter de marge au cas par cas. */
.page__text { padding-bottom: clamp(104px, 12vh, 168px) !important; }
@media (max-width: 768px) { .page__text { padding-bottom: 56px !important; } }
.li-page { max-width: 860px; margin-inline: auto; padding: var(--li-space-8) var(--li-space-5); }
.li-page--wide { max-width: var(--li-container); }
/* Mobile/tablette : les 24px horizontaux de .li-page s'empilaient sur le padding
   du .container (thème parent) → marge latérale double (≈39px) sur toutes les
   pages texte (Confiance, FAQ, Contact, CGV…). On laisse la gouttière au seul
   .container et on garde le padding VERTICAL. */
@media(max-width:768px){ .li-page{ padding-left:8px; padding-right:8px } }
@media(max-width:560px){ .li-page{ padding-left:0; padding-right:0 } }
.li-page__title { font-family: var(--li-font-title); font-size: clamp(2.05rem, 5.4vw, 3rem); text-align: center; margin: 0 auto var(--li-space-3); letter-spacing: -0.022em; line-height: 1.06; }
.li-page__lead { text-align: center; color: var(--li-text-2); font-size: 1.14rem; max-width: 620px; margin: 0 auto var(--li-space-6); }
.li-page h2 { font-family: var(--li-font-title); font-size: clamp(1.55rem, 3.4vw, 2.05rem); letter-spacing: -0.015em; line-height: 1.12; margin: 44px 0 var(--li-space-3); }
/* Kicker de section : sur-titre discret + filet dégradé, au-dessus du h2.
   Rendu comme <p class="li-sec__kicker"> (wpautop-safe). */
.li-page .li-sec__kicker { display: flex; align-items: center; gap: 8px; font-family: var(--li-font-body); font-weight: 700; font-size: 0.7rem; letter-spacing: 0.11em; text-transform: uppercase; color: var(--li-brass-deep, #A86A12); margin: 44px 0 8px; }
.li-page .li-sec__kicker::before { content: ""; width: 20px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--li-velvet), var(--li-brass)); }
.li-page .li-sec__kicker + h2 { margin-top: 0; }
.li-page h3 { font-size: 1.2rem; margin: var(--li-space-5) 0 var(--li-space-2); color: var(--li-velvet-dark); }
.li-page p { margin: 0 0 var(--li-space-4); }
/* Le chapô doit rester centré : `.li-page p` (0,1,1) écrasait son margin:0 auto
 * et le collait à gauche. On réimpose le centrage avec une spécificité (0,2,0). */
.li-page p.li-page__lead { margin-left: auto; margin-right: auto; }
.li-page ul:not([class]), .li-page ol:not([class]) { margin: 0 0 var(--li-space-4) 1.2em; display: grid; gap: var(--li-space-2); }
.li-page a { text-decoration: underline; text-underline-offset: 2px; }

/* Grille de « features » réutilisable */
.li-feature-grid { display: grid; gap: var(--li-space-5); grid-template-columns: 1fr; margin: var(--li-space-6) 0; }
.li-feature { background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius-lg); padding: var(--li-space-6); box-shadow: var(--li-shadow-sm); transition: transform .2s var(--li-ease), box-shadow .2s var(--li-ease); }
.li-feature:hover { transform: translateY(-3px); box-shadow: var(--li-shadow); }
.li-feature h3 { margin-top: 0; }
.li-feature p { color: var(--li-text-2); margin: 0; }
/* Icône de carte « feature » — pastille douce et cohérente */
.li-feature__ico { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 15px; margin-bottom: var(--li-space-4); font-size: 1.3rem; color: var(--li-velvet-dark); background: linear-gradient(135deg, rgba(238,61,111,.12), rgba(208,134,30,.16)); }
.li-feature__ico--gold { color: var(--li-brass-deep, #A86A12); background: linear-gradient(135deg, rgba(244,206,118,.34), rgba(208,134,30,.18)); }
/* Variante « pastille numérotée » pour les cartes d'étapes (1 · 2 · 3) */
.li-feature__ico--num { border-radius: 50%; color: #fff; font-family: var(--li-font-title); font-weight: 700; font-size: 1.3rem; background: linear-gradient(120deg, var(--li-velvet), var(--li-brass)); box-shadow: var(--li-shadow-sm); }

/* Échelle de confiance — frise de marches reliées par des flèches */
.li-ladder { display: flex; flex-direction: column; gap: var(--li-space-3); margin: var(--li-space-6) 0; }
.li-ladder__step { flex: 1 1 0; background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius-lg); box-shadow: var(--li-shadow-sm); padding: var(--li-space-6) var(--li-space-5) var(--li-space-5); text-align: center; }
.li-ladder__step--top { border-color: var(--li-brass); box-shadow: var(--li-shadow); }
.li-ladder__num { width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto var(--li-space-3); font-family: var(--li-font-title); font-weight: 700; font-size: 1.25rem; color: #fff; background: linear-gradient(120deg, var(--li-velvet), var(--li-brass)); box-shadow: var(--li-shadow-sm); }
.li-ladder__step h3 { margin: 0 0 var(--li-space-2); }
.li-ladder__step p { color: var(--li-text-2); margin: 0; font-size: 0.95rem; }
.li-ladder__arrow { align-self: center; color: var(--li-velvet); font-size: 1.7rem; line-height: 1; transform: rotate(90deg); }
@media (min-width: 820px) {
	.li-ladder { flex-direction: row; align-items: stretch; gap: var(--li-space-2); }
	.li-ladder__arrow { transform: none; }
}

/* Tarifs */
.li-pricing { display: grid; gap: var(--li-space-5); grid-template-columns: 1fr; margin: var(--li-space-6) 0; }
.li-plan { background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius-lg); padding: var(--li-space-7) var(--li-space-6); text-align: center; position: relative; display: flex; flex-direction: column; }
.li-plan .li-btn { align-self: center; margin-top: auto; white-space: nowrap; }
.li-plan--featured { border-color: var(--li-brass); box-shadow: var(--li-shadow); }
.li-plan__tag { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--li-brass); color: #fff; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.3em 0.9em; border-radius: var(--li-radius-pill); }
.li-plan h3 { color: var(--li-text); margin: 0 0 var(--li-space-3); font-size: 1.3rem; }
.li-plan__price { font-family: var(--li-font-title); font-size: 2.6rem; color: var(--li-velvet-dark); line-height: 1; }
.li-plan__price span { font-size: 1rem; color: var(--li-text-2); font-family: var(--li-font-body); }
.li-plan__permonth { margin: var(--li-space-2) 0 0; color: var(--li-text-2); font-size: 0.9rem; }
.li-plan ul { list-style: none; margin: var(--li-space-5) 0; padding: 0; display: grid; gap: var(--li-space-3); text-align: left; }
.li-plan li { padding-left: 1.6em; position: relative; color: var(--li-text-2); }
.li-plan li::before { content: "✓"; position: absolute; left: 0; color: var(--li-brass); font-weight: 700; }
/* — Amélioration UX cartes tarifs — */
.li-plan { transition: transform .2s var(--li-ease), box-shadow .2s var(--li-ease); }
.li-plan:hover { transform: translateY(-4px); box-shadow: var(--li-shadow); }
.li-plan__ico { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto var(--li-space-3); font-size: 1.35rem; color: #fff; background: linear-gradient(120deg, var(--li-velvet), var(--li-brass)); box-shadow: var(--li-shadow-sm); }
.li-plan__ico--neutral { background: var(--li-cream-2, #F7EFE3); color: var(--li-text-2); }
.li-plan__ico--gold { background: linear-gradient(120deg, var(--li-brass-soft), var(--li-brass-deep, var(--li-brass))); color: #3A2606; }
.li-plan__price { margin-top: 4px; }
.li-plan .li-btn { width: 100%; }
.li-plan--popular { border-color: var(--li-velvet); box-shadow: var(--li-shadow); }
.li-plan__tag--pop { background: var(--li-velvet); }
@media (min-width: 1000px) {
	.li-plan--featured { transform: scale(1.035); }
	.li-plan--featured:hover { transform: scale(1.035) translateY(-4px); }
}

/* Encadré juridique / note */
.li-note { background: rgba(176,138,79,0.08); border: 1px solid var(--li-brass-soft); border-radius: var(--li-radius); padding: var(--li-space-4) var(--li-space-5); color: var(--li-text-2); font-size: 0.95rem; margin: var(--li-space-6) 0; }
.li-note strong { color: var(--li-velvet-dark); }
/* Notes de pages de contenu : callout épuré à filet latéral (or = info, framboise = cadre). */
.li-page .li-note { position: relative; background: var(--cream-2); border: 1px solid var(--li-border); border-left: 4px solid var(--li-brass); border-radius: var(--li-radius-sm); padding: 16px 18px; margin: 22px 0; }
/* Encart à icône : icône flottante, l'icône reste DANS le flux.
   - Pas de position absolue : mobile-cards.css réécrit le padding horizontal
     des cartes en !important sous 560px, la réserve de 44px sautait et l'icône
     chevauchait la première ligne (page /confiance-securite/).
   - Pas de flex non plus : le texte « nu » (nœuds texte + <strong> + <a>) se
     fractionnait alors en colonnes, chaque enfant inline devenant un item flex
     (bandeau « Vous reprenez un brouillon » du wizard /publier/).
   Le float garde tout le texte dans un seul flux, quel que soit le balisage. */
.li-page .li-note:has(> i) { display: block; }
.li-page .li-note:has(> i)::after { content: ""; display: block; clear: both; }
.li-page .li-note > i { float: left; margin: 2px 12px 0 0; color: var(--li-brass-deep, #A86A12); }
.li-page .li-note strong { color: var(--li-text); }
.li-page .li-note--rasp { border-left-color: var(--li-velvet); }
.li-page .li-note--rasp > i { color: var(--li-velvet-dark); }
/* Liste à pictos (ex. « Bonnes pratiques ») */
.li-page .li-do { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 12px; }
.li-page .li-do li { display: flex; gap: 12px; align-items: flex-start; color: var(--li-text); }
.li-page .li-do li > i { color: var(--li-velvet); margin-top: 3px; flex: none; }

/* Aides & modèles — carte de téléchargement */
.li-dl { display: grid; gap: var(--li-space-4); margin: var(--li-space-6) 0; }
.li-dl__card { display: flex; align-items: center; gap: var(--li-space-5); flex-wrap: wrap; background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius-lg); padding: var(--li-space-5) var(--li-space-6); box-shadow: var(--li-shadow-sm); }
.li-dl__icon { flex: 0 0 auto; width: 48px; height: 56px; border-radius: 6px; background: linear-gradient(150deg, var(--li-velvet), var(--li-velvet-dark)); position: relative; box-shadow: var(--li-shadow-sm); }
.li-dl__icon::after { content: "PDF"; position: absolute; left: 0; right: 0; bottom: 8px; text-align: center; color: #fff; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.06em; }
.li-dl__body { flex: 1 1 240px; min-width: 220px; }
.li-dl__body h3 { margin: 0 0 0.2em; }
.li-dl__body p { margin: 0; color: var(--li-text-2); font-size: 0.95rem; }
.li-dl__card .li-btn { flex: 0 0 auto; }
.li-dl__card .li-btn { text-decoration: none; }

/* FAQ — même composant que la page d'accueil (liste à filets, marqueur +/− rose).
   Les sélecteurs couvrent le markup historique `.li-faq__item` ET les <details> nus. */
.li-faq { max-width: 780px; margin: var(--li-space-6) auto 0; display: block; }
.li-faq details, .li-faq__item { background: none; border: 0; border-bottom: 1px solid var(--li-border); border-radius: 0; box-shadow: none; padding: 20px 0; }
.li-faq details[open], .li-faq__item[open] { box-shadow: none; border-color: var(--li-border); }
.li-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 0; border-radius: 0; background: none; font-family: var(--li-font-title); font-size: 1.15rem; font-weight: 600; color: var(--li-text); transition: color var(--li-transition); }
.li-faq summary::-webkit-details-marker { display: none; }
.li-faq summary:hover { color: var(--li-velvet-dark); }
.li-faq summary:focus-visible { outline: 2px solid var(--li-velvet); outline-offset: 3px; }
.li-faq summary::after { content: "+"; flex: 0 0 auto; width: auto; height: auto; background: none; border-radius: 0; color: var(--li-velvet); font-size: 1.5rem; font-weight: 400; line-height: 1; transform: none; }
.li-faq details[open] summary::after, .li-faq__item[open] summary::after { content: "−"; background: none; color: var(--li-velvet); transform: none; }
.li-faq p { color: var(--li-text-2); margin: 12px 0 0; padding: 0; border: 0; animation: li-faq-reveal var(--li-transition) both; }
.li-faq p a { color: var(--li-velvet-dark); }
@keyframes li-faq-reveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* Vérification — parcours en 2 étapes sur une seule page ([li_verification]) */
/* grid-template-columns: minmax(0,1fr) : sur iOS Safari, une piste de grille
   « auto » se dimensionne au max-content de son contenu (l'input[type=file] natif
   est très large) → la carte déborde à droite malgré min-width:0. minmax(0,1fr)
   force la piste à la largeur du conteneur. */
.li-verif-steps { max-width: 720px; margin: var(--li-space-6) auto 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--li-space-5); }
/* min-width:0 : sans ça, la carte (item de grille) refuse de rétrécir sous la
   largeur intrinsèque de l'input[type=file] → débordement à droite sur mobile. */
.li-vstep { min-width: 0; background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius-lg); box-shadow: var(--li-shadow-sm); padding: var(--li-space-6); transition: box-shadow var(--li-transition), border-color var(--li-transition), opacity var(--li-transition); }
.li-vstep.is-active { border-color: var(--li-brass-soft); box-shadow: var(--li-shadow); }
.li-vstep.is-locked { opacity: 0.62; }
.li-vstep__head { display: flex; align-items: center; gap: var(--li-space-4); margin-bottom: var(--li-space-5); }
.li-vstep__num { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--li-font-title); font-weight: 700; font-size: 1.2rem; color: #fff; background: linear-gradient(120deg, var(--li-velvet), var(--li-brass)); box-shadow: var(--li-shadow-sm); }
.li-vstep.is-locked .li-vstep__num { background: none; color: var(--li-text-2); box-shadow: inset 0 0 0 2px var(--li-border); }
.li-vstep.is-done .li-vstep__num { background: linear-gradient(120deg, #0E9E8E, #1FB39A); }
.li-vstep__title { display: flex; align-items: center; flex-wrap: wrap; gap: var(--li-space-3); }
.li-vstep__title h2 { font-family: var(--li-font-title); font-size: 1.3rem; margin: 0; }
.li-vstep__tag { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 3px 10px; border-radius: var(--li-radius-pill); background: var(--li-cream-2, #F7EFE3); color: var(--li-text-2); border: 1px solid var(--li-border); }
.li-vstep__tag--req { background: rgba(238,61,111,0.10); color: var(--li-velvet-dark); border-color: rgba(238,61,111,0.24); }
.li-vstep__body { min-width: 0; overflow-wrap: break-word; }
.li-vstep__body > .li-note:first-child { margin-top: 0; }
/* Formulaires de vérification (identité / régime) — champs maison */
.li-verif-form { margin: 0; min-width: 0; }
.li-verif-form p { margin: 0 0 var(--li-space-4); }
.li-verif-form label { display: block; line-height: 1.45; font-weight: 400; color: var(--li-text-2); }
.li-verif-form label strong { display: inline-block; margin-bottom: 6px; color: var(--li-text); font-weight: 700; }
/* Champ « régime » : tout le libellé est un <strong> (texte long) — on le rend
   lisible (semi-gras, taille de corps) plutôt qu'un pavé criard en gros gras. */
.li-verif-field--optional label strong { display: block; font-weight: 600; font-size: 0.95rem; line-height: 1.45; }
.li-verif-form select,
.li-verif-form input[type="text"],
.li-verif-form input[type="url"] { width: 100%; max-width: 420px; padding: 11px 14px; border: 1px solid var(--li-border); border-radius: var(--li-radius-sm); background: #fff; font: inherit; color: var(--li-text); transition: border-color var(--li-transition), box-shadow var(--li-transition); }
.li-verif-form select:focus,
.li-verif-form input[type="text"]:focus,
.li-verif-form input[type="url"]:focus { outline: none; border-color: var(--li-velvet); box-shadow: 0 0 0 3px rgba(238,61,111,0.12); }
.li-verif-form input[type="file"] { display: block; width: 100%; max-width: 100%; font: inherit; color: var(--li-text-2); padding: 10px 0; }
.li-verif-form input[type="file"]::file-selector-button { font: inherit; font-weight: 600; cursor: pointer; margin-right: 12px; padding: 9px 16px; border: 1px solid var(--li-border); border-radius: var(--li-radius-pill); background: var(--li-cream-2, #F7EFE3); color: var(--li-velvet-dark); transition: background-color var(--li-transition); }
.li-verif-form input[type="file"]::file-selector-button:hover { background: var(--li-brass-soft); }
.li-verif-form .li-btn { margin-top: var(--li-space-2); cursor: pointer; border: none; }
.li-verif-form .li-note { margin: var(--li-space-4) 0; }

/* Dépôt combiné : deux groupes de champs (identité requise + régime facultatif) */
.li-verif-field { border: 0; margin: 0 0 var(--li-space-5); padding: 0; }
.li-verif-field--optional { margin-top: var(--li-space-5); padding-top: var(--li-space-5); border-top: 1px dashed var(--li-border); }
.li-verif-field--optional label em { color: var(--li-text-2); font-style: normal; font-weight: 600; font-size: 0.86em; background: var(--li-cream-2, #F7EFE3); border-radius: var(--li-radius-pill); padding: 2px 9px; margin-left: 4px; vertical-align: middle; }
.li-verif-steps--combined .li-vstep__tag--req { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; color: var(--li-text-2); font-weight: 600; text-transform: none; letter-spacing: 0; font-size: 0.9rem; line-height: 1.4; }

/* Confort mobile : cartes de vérification moins « épaisses » */
@media (max-width: 600px) {
	.li-verif-steps { gap: var(--li-space-4); }
	.li-vstep { padding: var(--li-space-5); }
	.li-vstep__title h2 { font-size: 1.15rem; }
}

@media (min-width: 768px) {
	.li-feature-grid { grid-template-columns: repeat(3, 1fr); }
	/* Tablette : 2 colonnes ; la 3e carte (orpheline) est centrée sous les deux premières. */
	.li-pricing { grid-template-columns: repeat(2, 1fr); max-width: 720px; margin-inline: auto; }
	.li-pricing .li-plan:last-child:nth-child(odd) { grid-column: 1 / -1; max-width: calc(50% - (var(--li-space-5) / 2)); margin-inline: auto; }
}

@media (min-width: 1000px) {
	/* Grand écran : 3 colonnes sur une seule rangée. */
	.li-pricing { grid-template-columns: repeat(3, 1fr); max-width: 1040px; }
	.li-pricing .li-plan:last-child:nth-child(odd) { grid-column: auto; max-width: none; margin-inline: 0; }
}

/* Maillage inter-villes (pages villes SEO) */
.li-othercities { margin: 32px 0 8px; padding: 16px 20px; background: var(--li-glass); border: 1px solid var(--li-border); border-radius: var(--li-radius); font-size: .95rem; color: var(--li-text-2); }
.li-othercities strong { color: var(--li-text); }
.li-othercities a { color: var(--li-velvet-dark); font-weight: 600; }
.li-othercities a:hover { color: var(--li-velvet); }

/* ============================ PUBLIER (formulaire simple) ============================ */
.li-qp { max-width: 760px; margin: var(--li-space-7) auto 0; display: grid; gap: var(--li-space-5); text-align: left; }
.li-qp__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.li-qp__card { background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius-lg); box-shadow: var(--li-shadow-sm); padding: var(--li-space-6); margin: 0; }
.li-qp__card--legal { background: rgba(176,138,79,0.06); border-color: var(--li-brass-soft); display: grid; gap: var(--li-space-3); }
/* .li-page .li-qp__cta (0,2,0) pour battre `.li-page p` (0,1,1) — sinon la
   marge haute saute et le bouton colle à l'encart. */
.li-qp__cta,
.li-page .li-qp__cta { margin: var(--li-space-6) 0 0; text-align: center; }
.li-qp__legend { display: flex; align-items: center; gap: 10px; font-family: var(--li-font-title); font-size: 1.25rem; font-weight: 600; color: var(--li-text); padding: 0; margin-bottom: var(--li-space-4); }
.li-qp__step { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(120deg, var(--li-velvet), var(--li-brass)); color: #fff; font-size: 0.95rem; font-weight: 700; font-family: var(--li-font-body); flex: none; }
.li-qp__row { display: grid; gap: var(--li-space-4); grid-template-columns: 1fr; }
.li-qp__field { display: grid; gap: 6px; margin-bottom: var(--li-space-4); }
.li-qp__field:last-child { margin-bottom: 0; }
.li-qp__lbl { font-weight: 600; color: var(--li-text); font-size: 0.92rem; }
.li-qp input[type="text"], .li-qp input[type="email"], .li-qp input[type="password"], .li-qp input[type="number"], .li-qp select, .li-qp textarea {
	width: 100%; background: #fff; border: 1.5px solid var(--li-border); border-radius: var(--li-radius-sm); padding: 0.72em 0.95em; color: var(--li-text); font-family: var(--li-font-body); font-size: 1rem; transition: box-shadow var(--li-transition); }
.li-qp input:focus, .li-qp select:focus, .li-qp textarea:focus { border-color: var(--li-velvet); box-shadow: 0 0 0 3px rgba(238,61,111,.15); outline: none; }
.li-qp textarea { resize: vertical; min-height: 120px; line-height: 1.6; }
.li-qp__hint { font-size: 0.85rem; color: var(--li-text-2); margin: 2px 0 0; }
.li-qp__hint a { color: var(--li-velvet-dark); font-weight: 600; }
.li-qp__err { color: var(--li-velvet-dark); font-size: 0.85rem; font-weight: 600; }
.li-qp__alert { background: rgba(238,61,111,.1); border: 1px solid var(--li-velvet); color: var(--li-velvet-dark); border-radius: var(--li-radius-sm); padding: var(--li-space-3) var(--li-space-4); font-weight: 600; }
.li-qp__check { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; font-size: 0.95rem; color: var(--li-text); cursor: pointer; }
.li-qp__check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--li-velvet); cursor: pointer; }
.li-qp__check a { color: var(--li-velvet-dark); font-weight: 600; }
.li-qp__opt { font-weight: 400; color: var(--li-text-2); font-size: 0.85rem; }
.li-qp__checks { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 2px; }
.li-qp__chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1.5px solid var(--li-border); border-radius: var(--li-radius-pill); background: #fff; cursor: pointer; font-size: 0.95rem; transition: border-color var(--li-transition), background var(--li-transition); }
.li-qp__chip:hover { border-color: var(--li-velvet); }
.li-qp__chip input { width: 17px; height: 17px; accent-color: var(--li-velvet); cursor: pointer; }
.li-qp__chip:has(input:checked) { border-color: var(--li-velvet); background: rgba(238,61,111,.07); }
.li-qp__actions { text-align: center; display: grid; gap: var(--li-space-3); justify-items: center; }
.li-qp__submit { font-size: 1.05rem; padding: 0.95em 2.2em; }
.li-qp__note { color: var(--li-text-2); font-size: 0.9rem; max-width: 520px; margin: 0; }

/* Demande de logement — notes de retour colorées */
.li-note--ok { border-color: var(--li-velvet); background: rgba(238,61,111,.06); }
.li-note--ok strong { color: var(--li-velvet-dark); }
.li-note--err { border-color: #c0392b; background: rgba(192,57,43,.06); }
.li-note--err strong { color: #c0392b; }
.li-demande-form .li-dp { position: relative; }
.li-demande-form .li-dp__display { cursor: pointer; }

/* Préférences de notifications — lignes + interrupteurs */
.li-notif-list { padding: 4px 6px; }
.li-notif-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 4px; border-bottom: 1px solid var(--li-border); cursor: pointer; margin: 0; }
.li-notif-row:last-child { border-bottom: none; }
.li-notif-row__txt { display: grid; gap: 3px; }
.li-notif-row__txt strong { color: var(--li-text); font-size: 1.02rem; }
.li-notif-row__txt > span { color: var(--li-text-2); font-size: 0.9rem; }
.li-switch { position: relative; flex: none; width: 50px; height: 28px; }
.li-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 2; }
.li-switch__track { position: absolute; inset: 0; border-radius: 999px; background: var(--li-border); transition: background .2s; }
.li-switch__knob { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(36,23,38,.25); transition: transform .2s; }
.li-switch input:checked ~ .li-switch__track { background: linear-gradient(120deg, var(--rasp-br), var(--rasp)); }
.li-switch input:checked ~ .li-switch__track .li-switch__knob { transform: translateX(22px); }
.li-switch input:focus-visible ~ .li-switch__track { box-shadow: 0 0 0 3px rgba(238,61,111,.28); }

/* Booster mon annonce */
.li-boost-list { display: grid; gap: 14px; margin-top: 8px; }
.li-boost-card { background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius-lg); box-shadow: var(--li-shadow-sm); padding: 18px 20px; display: grid; gap: 14px; }
.li-boost-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.li-boost-card__thumb { width: 54px; height: 54px; object-fit: cover; border-radius: 12px; flex: none; }
.li-boost-card__head .li-boost-card__title { flex: 1; min-width: 180px; }
.li-boost-card__title { font-weight: 600; color: var(--li-text); font-size: 1.05rem; }
.li-boost-card__badges { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.li-flag { display: inline-flex; align-items: center; gap: 4px; font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.4em 0.72em; border-radius: 999px; line-height: 1; }
.li-flag--featured { background: linear-gradient(135deg, var(--gold-br), var(--gold-deep)); color: #3A2606; }
.li-flag--urgent { background: linear-gradient(135deg, #ff7a45, #e63946); color: #fff; }
.li-flag--example { background: rgba(58,38,6,.07); color: #6B5836; border: 1px dashed rgba(160,120,31,.55); }
.li-boost-card__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.li-boost-card__actions form { margin: 0; display: flex; flex: 1; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.li-boost-locked { margin-right: auto; }
.li-boost-card__actions .li-btn--gold.li-btn--gold { color: #fff; }
.li-ico-white { filter: brightness(0) invert(1); display: inline-block; }
.li-boost-card__actions .li-btn { font-size: 0.92rem; padding: 0.62em 1.15em; }
.li-boost-locked { font-size: 0.86rem; color: var(--li-text-2); font-weight: 600; }
.li-boost-active { font-size: 0.9rem; color: #c0392b; font-weight: 700; }

/* Modifier une annonce — duplication + demande */
.li-modif-h2 { font-family: var(--li-font-title); font-size: clamp(1.3rem, 3vw, 1.7rem); margin: var(--li-space-7) 0 var(--li-space-2); }
.li-dup-list { display: grid; gap: 10px; margin: var(--li-space-4) 0 var(--li-space-2); }
.li-dup-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius-lg); box-shadow: var(--li-shadow-sm); padding: 14px 18px; }
.li-dup-row__title { font-weight: 600; color: var(--li-text); }
.li-dup-row .li-btn { font-size: 0.92rem; padding: 0.6em 1.15em; }

/* Avis : étoiles + champs fichier */
.li-stars { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; font-size: 2rem; line-height: 1; }
.li-stars input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.li-stars label { color: var(--li-border); cursor: pointer; padding: 0 2px; transition: color .15s; }
.li-stars input:checked ~ label { color: var(--li-brass); }
.li-stars label:hover, .li-stars label:hover ~ label { color: var(--li-brass); }
.li-stars input:focus-visible + label { outline: 2px solid var(--li-velvet); outline-offset: 2px; border-radius: 4px; }
.li-qp input[type="file"] { width: 100%; padding: 0.55em; border: 1.5px dashed var(--li-border); border-radius: var(--li-radius-sm); background: #fff; font-size: 0.92rem; cursor: pointer; }
.li-qp input[type="file"]::file-selector-button { margin-right: 12px; border: none; border-radius: var(--li-radius-pill); background: rgba(238,61,111,.1); color: var(--li-velvet-dark); font-weight: 600; padding: 0.5em 1em; cursor: pointer; }

@media (min-width: 640px) {
	.li-qp__row { grid-template-columns: 1fr 1fr; }
	.li-qp__field--prix { max-width: 240px; }
}

/* Option « demande urgente » (formulaire de demande de logement) */
.li-urgent-opt { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; border: 1.5px solid var(--li-brass); background: linear-gradient(135deg, rgba(208,134,30,.1), rgba(238,61,111,.05)); }
.li-urgent-opt__cb { margin-top: 3px; width: 18px; height: 18px; flex: none; accent-color: var(--li-velvet); cursor: pointer; }
.li-urgent-opt__body { display: flex; flex-direction: column; gap: 4px; }
.li-urgent-opt__title { font-weight: 700; color: var(--li-text); }
.li-urgent-opt__desc { font-size: .9rem; color: var(--li-text-2); line-height: 1.5; }

/* Page « Demandes de logement » — recensement des demandes */
.li-demandes { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin: 24px 0; }
.li-dcard { background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius); box-shadow: var(--li-shadow-sm); padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.li-dcard--urgent { border-color: var(--li-velvet); box-shadow: 0 6px 22px rgba(238,61,111,.14); }
.li-dcard__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.li-dcard__loc { font-family: var(--li-font-title); font-weight: 600; font-size: 1.15rem; color: var(--li-text); }
.li-dcard__loc .hp-icon { color: var(--li-velvet); }
.li-dcard__cp { color: var(--li-text-2); font-weight: 400; font-size: .95rem; }
.li-dcard__meta { font-size: .9rem; color: var(--li-text-2); }
.li-dcard__meta .hp-icon { color: var(--li-velvet); margin-right: 3px; }
.li-dcard__msg { color: var(--li-text); line-height: 1.55; font-size: .95rem; margin: 2px 0 0; }
.li-dcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--li-border); }
.li-dcard__author { font-size: .9rem; font-weight: 600; color: var(--li-text); }
.li-dcard__author .hp-icon { color: var(--li-velvet); margin-right: 4px; }
.li-dcard__del { margin: 0; }
/* Boutons de carte demande HARMONISÉS : même pilule/taille/typo, sans soulignement.
   !important pour neutraliser le style bouton du thème parent (dégradé, coins 3px,
   16px) qui fuitait sur le <button> Supprimer. Primaire (Répondre) vs destructif. */
.li-dcard__foot .li-btn {
	font-size: .9rem !important;
	font-weight: 600 !important;
	padding: .62em 1.4em !important;
	border-radius: var(--pill) !important;
	line-height: 1 !important;
	text-decoration: none !important;
}
.li-dcard__reply {
	background: linear-gradient(120deg, var(--rasp-br), var(--rasp) 60%, var(--rasp-deep)) !important;
	color: #fff !important;
	box-shadow: 0 6px 18px rgba(238,61,111,.30) !important;
}
.li-dcard__reply:hover { color: #fff !important; transform: translateY(-1px); }
.li-dcard__del-btn {
	background: #fff !important;
	color: #b3261e !important;
	box-shadow: inset 0 0 0 1.5px rgba(179,38,30,.45) !important;
}
.li-dcard__del-btn:hover { background: rgba(179,38,30,.06) !important; box-shadow: inset 0 0 0 1.5px #b3261e !important; }
/* .li-page .li-demandes__cta (0,2,0) pour battre `.li-page p` (0,1,1) qui sinon
   écrase le margin-top et colle le bouton aux cartes. */
.li-demandes__cta,
.li-page .li-demandes__cta { text-align: center; margin: 56px 0 24px; }
.li-demandes__cta .li-btn { padding: 1em 2em; }
/* Mobile : le libellé long « Vous cherchez un logement ? Publier une demande » débordait
   (le .li-btn est en white-space:nowrap). On l'autorise à revenir à la ligne dans le viewport. */
@media(max-width:560px){
  .li-demandes__cta .li-btn { white-space: normal; max-width: 100%; line-height: 1.35; padding: .85em 1.4em; }
}

/* Page « Demandes » — UX : grille centrée/équilibrée, compteur, avatar, survol */
.li-demandes { display: flex; flex-wrap: wrap; justify-content: center; max-width: 920px; margin: 24px auto 0; }
.li-dcard { flex: 1 1 320px; max-width: 430px; transition: transform .25s var(--li-ease), box-shadow .25s var(--li-ease); }
.li-dcard:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(36,23,38,.1); }
.li-demandes__count { text-align: center; color: var(--li-text-2); font-size: .95rem; font-weight: 600; margin: 0 auto 18px; }
.li-dcard__author { display: inline-flex; align-items: center; }
.li-dcard__avatar { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, var(--li-brass), var(--li-brass-soft)); color: #fff; font-weight: 700; font-size: .72rem; margin-right: 8px; flex: none; }

/* Page « Demandes » — filtre ville + badge « Nouveau » */
.li-demandes__filter { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 auto 18px; }
.li-demandes__filter label { font-weight: 600; color: var(--li-text-2); font-size: .92rem; }
.li-demandes__filter select { padding: .5em 2em .5em .9em; border: 1.5px solid var(--li-border); border-radius: var(--li-radius-sm); background: #fff; font-family: var(--li-font-body); color: var(--li-text); cursor: pointer; font-weight: 600; }
.li-dcard__flags { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.li-dcard__head { flex-wrap: wrap; align-items: flex-start; }
.li-dcard__date { margin-left: auto; font-size: .78rem; font-weight: 600; color: var(--li-text-2); white-space: nowrap; padding-top: .25em; }
@media (max-width: 480px) { .li-dcard__date { margin-left: 0; } }
.li-flag--new { background: rgba(238,61,111,.12); color: var(--li-velvet-dark); border: 1px solid rgba(238,61,111,.32); }

/* ===================== DEMANDES — améliorations UX ===================== */
/* Le compteur « X demandes… » a été retiré (26/07/2026) : la barre ne porte
   plus que le filtre ville → centré. */
.li-demandes__bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 18px;max-width:920px;margin:8px auto 4px}
.li-demandes__bar .li-demandes__count{margin:0;text-align:left}
.li-demandes__bar .li-demandes__filter{margin:0}
.li-demandes__count strong{color:var(--li-velvet-dark)}
.li-dcard__chips{display:flex;flex-wrap:wrap;gap:6px 8px}
.li-dchip{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:600;color:var(--li-text-2);background:rgba(176,138,79,.08);border:1px solid var(--li-brass-soft);border-radius:999px;padding:.28em .7em}
.li-dchip .hp-icon{color:var(--li-velvet);font-size:.82em}
.li-dcard__who{display:inline-flex;flex-direction:column;line-height:1.2}
.li-dcard__name{font-weight:600;color:var(--li-text);display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.li-dcard__ago{font-size:.78rem;color:var(--li-text-2);font-weight:400}
.li-dbadge{display:inline-flex;align-items:center;gap:3px;font-size:.64rem;font-weight:700;padding:.18em .5em;border-radius:999px;white-space:nowrap}
.li-dbadge--trust{color:var(--trust-teal-deep);background:rgba(13,148,136,.14);border:1px solid rgba(13,148,136,.32)}
.li-dbadge--ok{color:var(--trust-blue-deep);background:rgba(37,99,235,.12);border:1px solid rgba(37,99,235,.30)}
.li-dbadge .hp-icon{font-size:.9em}
.li-dcard__author .li-dbadge .hp-icon{color:inherit}
.li-dcard__author .li-dcard__avatar .hp-icon{color:#fff;font-size:.85rem;margin:0;line-height:1}
.li-demandes__empty{max-width:520px;margin:10px auto 0;text-align:center;background:var(--li-card);border:1px solid var(--li-border);border-radius:var(--li-radius-lg);box-shadow:var(--li-shadow-sm);padding:36px 28px}
.li-demandes__empty>.hp-icon{font-size:2rem;color:var(--li-velvet);opacity:.7}
.li-demandes__empty p{margin:12px 0 0;color:var(--li-text);font-size:1.05rem}
.li-demandes__empty .li-demandes__empty-sub{color:var(--li-text-2);font-size:.95rem}
.li-demandes__empty .li-btn{margin:16px 6px 0}
/* ====================================================================

 * Formules /tarifs/ — habillage aligné sur la carte d'onboarding.
 * (Ajout 2026-07-05.) Scellé sous .li-pricing : n'affecte que cette grille.
 * Contenu et libellés CTA inchangés (stripe.php continue de rebrancher).
 * ==================================================================== */
.li-pricing { --rasp: #EE3D6F; --gold: #D0861E; }

/* Survol : léger soulèvement + ombre framboise (comme l'onboarding). */
.li-pricing .li-plan { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.li-pricing .li-plan:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(238,61,111,.14); border-color: rgba(238,61,111,.30); }

/* Carte « Le plus populaire » : bordure dégradée framboise→or. */
.li-pricing .li-plan--popular {
	border: 2px solid transparent;
	background: linear-gradient(var(--li-card), var(--li-card)) padding-box,
	            linear-gradient(135deg, var(--rasp), var(--gold)) border-box;
	box-shadow: 0 18px 40px rgba(238,61,111,.16);
}

/* Badge/tag : pilule dégradée + ombre portée. */
.li-pricing .li-plan__tag,
.li-pricing .li-plan__tag--pop {
	background: linear-gradient(135deg, var(--rasp), var(--gold));
	box-shadow: 0 6px 16px rgba(238,61,111,.30);
}

/* Prix en dégradé sur la carte populaire. */
.li-pricing .li-plan--popular .li-plan__price,
.li-pricing .li-plan--popular .li-plan__price span {
	background: linear-gradient(135deg, var(--rasp), var(--gold));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Puces : pastille ronde dégradée avec coche blanche (remplace le « ✓ » brass). */
.li-pricing .li-plan li { padding-left: 1.9em; }
.li-pricing .li-plan li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .18em;
	width: 1.15em;
	height: 1.15em;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--rasp), var(--gold));
}
.li-pricing .li-plan li::after {
	content: "";
	position: absolute;
	left: .42em;
	top: .40em;
	width: .30em;
	height: .55em;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(42deg);
}

/* ====================================================================
 * Formules /tarifs/ — raffinement v2 (2026-07-05) : boutons dégradés,
 * encadrements cohérents (Membre=framboise / Premium=or), touches couleur.
 * Toujours scellé sous .li-pricing.
 * ==================================================================== */

/* --- Boutons : traitement dégradé premium (comme les CTA d'onboarding) --- */
.li-pricing .li-plan .li-btn {
	border: 0;
	font-weight: 700;
	padding: 0.92em 1.5em;
	transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.li-pricing .li-plan .li-btn:hover { transform: translateY(-2px); }

/* Membre (velvet) → dégradé framboise */
.li-pricing .li-btn--velvet {
	background: linear-gradient(120deg, var(--rasp-br,#F96E93), var(--rasp,#EE3D6F) 60%, var(--rasp-deep,#C91E52));
	color: #fff;
	box-shadow: 0 8px 22px rgba(238,61,111,.34);
}
.li-pricing .li-btn--velvet:hover {
	background: linear-gradient(120deg, var(--rasp-br,#F96E93), var(--rasp,#EE3D6F) 60%, var(--rasp-deep,#C91E52));
	filter: brightness(1.05);
	box-shadow: 0 12px 30px rgba(238,61,111,.46);
	color: #fff;
}

/* Premium (brass) → dégradé or */
.li-pricing .li-btn--brass {
	background: linear-gradient(120deg, var(--gold-br,#F3BE6B), var(--gold,#D0861E) 60%, var(--gold-deep,#A86A12));
	color: #3A2606;
	box-shadow: 0 8px 22px rgba(208,134,30,.34);
}
.li-pricing .li-btn--brass:hover {
	background: linear-gradient(120deg, var(--gold-br,#F3BE6B), var(--gold,#D0861E) 60%, var(--gold-deep,#A86A12));
	filter: brightness(1.05);
	box-shadow: 0 12px 30px rgba(208,134,30,.46);
	color: #3A2606;
}

/* Gratuit (ghost) → plein doux, moins « fantomatique » */
.li-pricing .li-btn--ghost {
	background: var(--cream-2,#F7EFE3);
	color: var(--rasp-deep,#C91E52);
	box-shadow: inset 0 0 0 1.5px rgba(238,61,111,.20);
}
.li-pricing .li-btn--ghost:hover {
	background: #fff;
	color: var(--rasp-deep,#C91E52);
	box-shadow: inset 0 0 0 1.5px rgba(238,61,111,.5);
}

/* --- Carte Premium : bordure dégradée or (cohérente avec la carte populaire) --- */
.li-pricing .li-plan--featured {
	border: 2px solid transparent;
	background: linear-gradient(var(--card,#fff), var(--card,#fff)) padding-box,
	            linear-gradient(135deg, var(--gold-br,#F3BE6B), var(--gold-deep,#A86A12)) border-box;
	box-shadow: 0 18px 40px rgba(208,134,30,.16);
}
.li-pricing .li-plan--featured:hover { border-color: transparent; box-shadow: 0 22px 46px rgba(208,134,30,.22); }

/* Prix Premium en dégradé or, badge Premium or (famille cohérente). */
.li-pricing .li-plan--featured .li-plan__price,
.li-pricing .li-plan--featured .li-plan__price span {
	background: linear-gradient(135deg, var(--gold,#D0861E), var(--gold-deep,#A86A12));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.li-pricing .li-plan--featured .li-plan__tag {
	background: linear-gradient(135deg, var(--gold,#D0861E), var(--gold-deep,#A86A12));
	box-shadow: 0 6px 16px rgba(208,134,30,.30);
}
/* Puces de la carte Premium en dégradé or (assorties à sa famille). */
.li-pricing .li-plan--featured li::before {
	background: linear-gradient(135deg, var(--gold,#D0861E), var(--gold-deep,#A86A12));
}

/* li-btn__nounderline_fix */
.li-page a.li-btn,.li-btn,.li-btn:hover,.li-btn:focus{text-decoration:none!important}

/* =========================================================================
   Vérification du profil — anti-débordement mobile
   Sur petit écran, le libellé long « Identité + régime requis… » et le champ
   fichier natif débordaient de la carte (coupés au bord droit). On empile le
   titre et sa pastille, on autorise le retour à la ligne et on borne les champs.
   ========================================================================= */
@media (max-width: 600px) {
	.li-vstep__head { flex-wrap: wrap; }
	.li-vstep__title { flex-direction: column; align-items: flex-start; min-width: 0; gap: var(--li-space-2); }
	.li-vstep__tag { white-space: normal; max-width: 100%; }
	.li-verif-form label { font-size: 0.9rem; }
	.li-verif-form label strong { font-size: 0.98rem; }
	.li-verif-field--optional label strong { font-size: 0.9rem; }
	.li-verif-form select,
	.li-verif-form input[type="file"] { max-width: 100%; }
	.li-verif-form input[type="file"] { font-size: 0.9rem; }
}

/* === Mobile : page « Demandes de logement » (id 139) — padding resserré === */
@media (max-width: 680px) {
	.page-id-139 .li-page { padding: 32px 16px; }
}

/* ============ DEMANDE « TROUVÉ ! » — tampon diagonal sur la carte ============
   L'auteur d'une demande la marque « Trouvé ! » (meta li_demande_trouve) : un
   gros tampon framboise encadré, posé en diagonale, recouvre toute la carte
   .li-dcard de la page /demandes/. Le contenu s'estompe, le pied de carte reste
   actif pour l'auteur (Rouvrir / Supprimer) ; le bouton Répondre disparaît. */
.li-dcard--found { position: relative; border-color: rgba(238,61,111,.35); }
.li-dcard--found > :not(.li-dcard__stamp):not(.li-dcard__foot) { opacity: .38; filter: grayscale(.35); }
.li-dcard--found .li-dcard__foot { border-top-color: rgba(238,61,111,.25); }
.li-dcard__stamp { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; z-index: 3; }
.li-dcard__stamp-txt {
	display: inline-block;
	transform: rotate(-14deg);
	font-family: var(--li-font-title);
	font-weight: 800;
	font-size: 2.6rem;
	line-height: 1;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--li-velvet);
	border: 5px solid var(--li-velvet);
	border-radius: 12px;
	padding: .24em .55em;
	background: rgba(255,255,255,.55);
	box-shadow: 0 10px 28px rgba(238,61,111,.22), inset 0 0 0 2px rgba(255,255,255,.5);
}
.li-dcard__own { display: inline-flex; align-items: center; gap: 8px; }
.li-dcard__found { margin: 0; }
@media (max-width: 560px) {
	.li-dcard__stamp-txt { font-size: 2rem; }
}

/* ====================================================================
 * Correctifs audit affichage — /tarifs/ & grilles de contenu (2026-07-15)
 * ==================================================================== */

/* wpautop insère des <br> parasites après les badges des cartes Abonné /
   Premium : tout le contenu de ces cartes descendait de ~27px par rapport
   à la carte Gratuit (icônes, titres, prix désalignés). */
.li-pricing .li-plan > br { display: none; }

/* Les CTA des 3 formules flottaient à des hauteurs différentes :
   on les ancre tous en bas de carte. */
.li-pricing .li-plan > .li-btn { margin-top: auto !important; }

/* Badge Fondateur « Premium — lancement, temporaire » : il s'empilait sur
   3 lignes et recouvrait la carte. Une seule ligne compacte. */
.li-pricing .li-plan--featured .li-plan__tag {
	white-space: nowrap;
	font-size: 0.66rem;
	max-width: none;
}

/* Grilles de cartes (étapes, avantages…) : quand un titre passe sur 2
   lignes, les paragraphes voisins se désalignent — on réserve la hauteur. */
@media (min-width: 768px) {
	.li-feature-grid .li-feature h3 { min-height: 2.6em; }
}

/* Les CTA des formules sont emballes dans un <p> par wpautop : on ancre ce paragraphe en bas de carte. */
.li-pricing .li-plan > p:has(> .li-btn) { margin-top: auto !important; margin-bottom: 0; }

/* Document Complianz (/politique-de-cookies-ue/) : le plugin borne la largeur
   sans se centrer → colonne collée à gauche dans le cadre 1750px (même bug
   que li-abo sur /mon-compte/). On le centre comme une .li-page. */
.page__text .cmplz-document { max-width: 860px; margin-inline: auto !important; padding: var(--li-space-8) var(--li-space-5); }

/* Mon abonnement (/mon-compte/) : le contenu (shortcode nu, sans wrapper
   .li-page) collait au pied de page. */
.page-id-237 .page__text { padding-bottom: 72px !important; }
@media (max-width: 768px) {
	.page-id-237 .page__text { padding-bottom: 48px !important; }
}

/* ====================================================================
 * Formules /tarifs/ — v3 lisibilité (2026-07-21)
 * Design system : tokens --li-* (espacements, rayons, typo, couleurs).
 * Objectif : listes d'avantages centrées horizontalement dans la carte,
 * hiérarchie de lecture (nom → prix → période → avantages → CTA) et
 * respiration du chapeau de page. Toujours scellé sous .li-pricing.
 * ==================================================================== */

/* Chapeau de page : mesure de lecture confortable, interligne aéré. */
.li-page__lead { max-width: 68ch; line-height: 1.75; }

/* Carte : respiration interne et rythme vertical régulier. */
.li-pricing .li-plan { padding: var(--li-space-7) var(--li-space-5) var(--li-space-6); gap: 0; }
.li-pricing .li-plan h3 { font-size: 1.22rem; letter-spacing: .01em; margin-bottom: var(--li-space-2); }

/* Prix : chiffre dominant, période en libellé discret sous le prix. */
.li-pricing .li-plan__price { font-size: 3rem; font-weight: 700; }
.li-pricing .li-plan__permonth {
	margin-top: var(--li-space-2);
	font-size: 0.82rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--li-text-2);
}

/* Liste d'avantages : bloc centré horizontalement (plus de marge à gauche),
   texte aligné à gauche pour rester lisible, mesure bornée. */
.li-pricing .li-plan ul {
	width: fit-content;
	max-width: min(100%, 34ch);
	margin: var(--li-space-6) auto var(--li-space-6);
	text-align: left;
	gap: 0;
}
.li-pricing .li-plan li {
	padding: 0.62em 0 0.62em 1.9em;
	line-height: 1.5;
	font-size: 0.95rem;
	color: var(--li-text);
	border-top: 1px solid var(--li-border);
}
.li-pricing .li-plan li:first-child { border-top: 0; padding-top: 0; }
.li-pricing .li-plan li:last-child { padding-bottom: 0; }
.li-pricing .li-plan li strong { color: var(--li-text); font-weight: 700; }
.li-pricing .li-plan li em { color: var(--li-text-2); font-style: normal; }

/* Puces : coche alignée sur la 1re ligne du texte, quelle que soit sa hauteur. */
.li-pricing .li-plan li::before { top: 0.72em; width: 1.2em; height: 1.2em; }
.li-pricing .li-plan li:first-child::before { top: 0.1em; }
.li-pricing .li-plan li::after { left: .45em; top: .95em; }
.li-pricing .li-plan li:first-child::after { top: .33em; }

/* CTA : séparé du contenu, largeur bornée pour ne pas écraser la carte. */
.li-pricing .li-plan > p:has(> .li-btn) { padding-top: var(--li-space-5); border-top: 1px solid var(--li-border); width: 100%; }
.li-pricing .li-plan .li-btn { max-width: 320px; margin-inline: auto; }

@media (max-width: 600px) {
	.li-pricing .li-plan { padding: var(--li-space-6) var(--li-space-4) var(--li-space-5); }
	.li-pricing .li-plan__price { font-size: 2.6rem; }
	.li-pricing .li-plan ul { max-width: 100%; }
}

/* Alignement des 3 formules par le haut (2026-07-21) : la carte Premium
   était mise à l'échelle (scale 1.035) et dépassait au-dessus des deux
   autres. On neutralise l'échelle et on aligne les cartes en haut, à
   hauteur égale (le CTA reste ancré en bas via margin-top:auto). */
.li-pricing { align-items: stretch; }
.li-pricing .li-plan--featured,
.li-pricing .li-plan--featured:hover { transform: none; }
.li-pricing .li-plan:hover { transform: translateY(-4px); }

/* Badge « Premium — lancement » : la pilule est centrée sur le bord haut de la
   carte et dépassait à droite, faute de place autour de la grille. On réserve
   la marge latérale sur la grille (et un peu de hauteur en haut pour les
   badges), plutôt que de rétrécir le libellé. */
.li-pricing { padding-inline: var(--li-space-4); padding-top: var(--li-space-4); }
.li-pricing .li-plan__tag { max-width: calc(100% + var(--li-space-6)); }


/* ====================================================================
 * Surfaces ambre — texte et icônes en BLANC (unification, 2026-07-21)
 * Le brun #3A2606 sur ambre clair manquait de lisibilité et cassait la
 * cohérence avec les surfaces framboise (déjà en blanc). On passe tout
 * en blanc et on fonce légèrement le dégradé pour garder le contraste
 * (AA sur texte gras / gros texte). Un seul endroit à maintenir.
 * ==================================================================== */
:root { --gold-grad: linear-gradient(120deg, #C87D16, #A86A12 60%, #8F5A0E); }

.li-btn--gold,
.li-btn--gold:hover,
.li-btn--gold:focus,
.li-btn--brass,
.li-btn--brass:hover,
.li-btn--brass:focus,
.li-pricing .li-btn--brass,
.li-pricing .li-btn--brass:hover,
.li-plan__ico--gold,
.li-feature__ico--gold,
.li-flag--featured,
.li-lflag--featured {
	background: var(--gold-grad);
	color: #fff;
}
.li-plan__ico--gold i,
.li-feature__ico--gold i { color: #fff; }
.li-btn--gold:hover,
.li-btn--brass:hover,
.li-pricing .li-btn--brass:hover { filter: brightness(1.06); }


/* /tarifs/ — le chapeau était bien plus étroit que la grille des formules :
   on l'aligne sur la largeur des cartes (1040px, cf. .li-pricing) tout en
   gardant un interligne aéré. */
.page-id-29 .li-page__lead {
	max-width: 1040px;
	padding-inline: var(--li-space-4);
	line-height: 1.7;
}


/* Badges des formules : la pilule Premium dépassait la largeur de sa carte et
   se retrouvait coupée à droite. On la borne à la carte (avec une petite
   respiration) et on adapte la taille du libellé plutôt que de le laisser
   sortir. */
.li-pricing { padding-inline: var(--li-space-6); }
.li-pricing .li-plan__tag {
	max-width: calc(100% - 8px);
	width: max-content;
	box-sizing: border-box;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: clip;
	font-size: 0.64rem;
	padding: 0.34em 0.85em;
}
@media (min-width: 1000px) {
	.li-pricing .li-plan__tag { font-size: 0.68rem; }
}

/* ====================================================================
 * Formules /tarifs/ — étiquettes de rôle (2026-07-23)
 * L'abonnement est unique pour les deux rôles, mais chaque avantage ne
 * parle qu'à l'un des deux. Une pastille « Voyageur » / « Hôte » ouvre la
 * ligne ; une ligne sans pastille vaut dans les deux cas. Couleurs de
 * marque (rose / ambre), aucune connotation genrée.
 * ==================================================================== */
.li-pricing .li-role,
.li-pricing__legend .li-role {
	display: inline-block;
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	line-height: 1.5;
	padding: 0 .5em;
	margin-right: .45em;
	border-radius: 999px;
	border: 1px solid;
	white-space: nowrap;
	vertical-align: .09em;
}
.li-pricing .li-role--trav,
.li-pricing__legend .li-role--trav {
	color: #C0225B;
	background: rgba(238, 61, 111, .09);
	border-color: rgba(238, 61, 111, .30);
}
.li-pricing .li-role--hote,
.li-pricing__legend .li-role--hote {
	color: #8A5A12;
	background: rgba(208, 134, 30, .11);
	border-color: rgba(208, 134, 30, .34);
}
.li-pricing .li-role--tous,
.li-pricing__legend .li-role--tous {
	color: var(--li-text);
	background: rgba(36, 24, 38, .05);
	border-color: rgba(36, 24, 38, .18);
}

/* Intertitre dans la liste d'avantages (« Tout le Membre Abonné » /
   « En plus avec Premium ») : c'est un <li> de structure, pas un avantage —
   on lui retire la coche et le filet, et il ne prend pas d'étiquette de rôle. */
.li-pricing .li-plan li.li-plan__sub {
	padding: var(--li-space-5) 0 var(--li-space-2);
	text-align: center;
	border-top: 0;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--li-text-2);
}
.li-pricing .li-plan li.li-plan__sub:first-child { padding-top: 0; }
.li-pricing .li-plan li.li-plan__sub::before,
.li-pricing .li-plan li.li-plan__sub::after { content: none; }
/* La ligne qui suit un intertitre ouvre un groupe : pas de filet au-dessus. */
.li-pricing .li-plan li.li-plan__sub + li { border-top: 0; }

/* Légende sous le chapeau de page. */
.li-pricing__legend {
	/* Pas de mesure bornée : la légende doit tenir sur UNE ligne centrée dès
	   que la place existe (elle se replie d'elle-même en dessous de ~800px). */
	max-width: none;
	margin: var(--li-space-4) 0 var(--li-space-6);
	font-size: 0.86rem;
	line-height: 2;
	color: var(--li-text-2);
}

/* Rassurance sous le prix : un seul abonnement couvre les deux rôles. */
.li-pricing .li-plan__both {
	margin: var(--li-space-3) auto 0;
	max-width: 30ch;
	font-size: 0.82rem;
	line-height: 1.5;
	color: var(--li-text-2);
}

@media (max-width: 600px) {
	.li-pricing__legend { line-height: 2.2; }
}

/* Pastilles employées dans la phrase de rassurance (et non en tête de ligne) :
   pas de marge à droite, sinon l'esperluette décroche du mot. */
.li-pricing .li-plan__both .li-role { margin-right: 0; }

/* /tarifs/ desktop (2026-07-23) : légende centrée sous le chapeau, et cartes
   élargies — la grille était plafonnée à 1040px, ce qui donnait des colonnes
   de 300px où presque chaque avantage passait sur 2 ou 3 lignes. */
.li-pricing__legend { text-align: center; margin-inline: auto; }

@media (min-width: 1240px) {
	.page-id-29 .li-page--wide { max-width: 1440px; }
	.li-pricing { max-width: 1360px; }
	.li-pricing .li-plan ul { max-width: min(100%, 42ch); }
}

/* Reprise des avantages du Membre Gratuit dans la carte Abonné (2026-07-23) :
   affichée seulement quand les 3 colonnes tiennent côte à côte. En dessous,
   les cartes s'empilent et la carte Gratuit est juste au-dessus — la reprise
   n'apporte rien et allongerait le défilement. */
.li-pricing .li-plan .li-plan__deskonly { display: none; }
@media (min-width: 1000px) {
	.li-pricing .li-plan li.li-plan__deskonly { display: list-item; }
	.li-pricing .li-plan li.li-plan__sub.li-plan__deskonly { display: list-item; }
}

/* Grille de features à 4 cartes (ex. /soutenir/) : en 3 colonnes dans la
   colonne de texte (860px), chaque carte tombait à ~250px — texte haché sur
   6 lignes — et la 4e restait orpheline sur une 2e rangée. On passe en 2×2 :
   cartes deux fois plus larges, rangées pleines. */
@media (min-width: 768px) {
	.li-feature-grid:has(> .li-feature:nth-child(4):last-child) { grid-template-columns: repeat(2, 1fr); }
	/* La réserve de hauteur des titres (min-height: 2.6em) sert aux grilles
	   3 colonnes où les titres passent sur 2 lignes. En 2×2 les titres tiennent
	   sur une ligne : la réserve ne crée plus qu'un blanc sous le titre. */
	.li-feature-grid:has(> .li-feature:nth-child(4):last-child) .li-feature h3 { min-height: 0; }
}

/* Message de demande (cartes /demandes/) : replié à 5 lignes quand il est long,
   déplié via le bouton « Lire la suite » (JS inline du shortcode). ⚠ NE PAS SUPPRIMER. */
.li-dcard__msg--clamp { display: -webkit-box; -webkit-line-clamp: 5; line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.li-dcard__more { background: none; border: 0; padding: 0; margin: -6px 0 0; align-self: flex-end; color: var(--li-velvet); font-family: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.li-dcard__more:hover { color: var(--li-velvet-dark); }

/* Sections de /demandes/ : en-tetes "Nouvelles demandes" / "Demandes precedentes"
   (remplacent le badge Nouveau). Pleine largeur dans la flex-wrap .li-demandes. NE PAS SUPPRIMER. */
.li-demandes__sec { flex-basis: 100%; width: 100%; display: flex; align-items: center; gap: 14px; margin: 10px 0 -4px; font-family: var(--li-font-title); font-weight: 600; font-size: 1.15rem; color: var(--li-text); }
.li-demandes__sec::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--li-border); }
.li-demandes__sec--new { color: var(--li-velvet); }
.li-demandes__sec--new::after { background: rgba(238,61,111,.3); }
.li-demandes__sec:first-child { margin-top: 0; }

/* ============ RÉPONDRE À UNE DEMANDE — refonte (30/08/2026) ============ */
/* La demande est présentée avec la MÊME carte que /demandes/ (.li-dcard) ;
   seule sur sa page, elle occupe une colonne centrée et perd l'effet de
   survol (elle n'est pas cliquable ici). Le formulaire devient une carte
   sœur : légende Fraunces, aide « conversation privée » sous le champ,
   bouton pilule centré (plus de pleine largeur). */
.li-dreply { max-width: 760px; margin-inline: auto; display: grid; gap: 26px; }
.li-dreply .li-dcard { flex: none; max-width: none; }
.li-dreply .li-dcard:hover { transform: none; box-shadow: var(--li-shadow-sm); }
.li-dreply__card .li-dcard__msg { font-size: 1rem; line-height: 1.65; }
.li-dreply__form { margin: 0; background: var(--li-card); border: 1px solid var(--li-border); border-radius: var(--li-radius); box-shadow: var(--li-shadow-sm); padding: 26px 28px 28px; }
.li-dreply__form .li-qp__legend { margin-bottom: var(--li-space-3); }
.li-dreply__hint { display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; }
.li-dreply__actions { margin-top: var(--li-space-4); }
.li-dreply + .li-note, .li-page .li-dreply { margin-top: 8px; }
@media (max-width: 560px) {
	.li-dreply__form { padding: 20px 16px 22px; }
	.li-dreply__actions .li-qp__submit { width: 100%; }
}
/* Bouton « Envoyer ma réponse » : neutralise le style bouton du thème parent
   (dégradé blanc, coins 3px) qui fuite sur les <button> — même harmonisation
   que .li-dcard__foot .li-btn sur /demandes/. */
.li-dreply__form .li-btn {
	font-size: 1rem !important;
	font-weight: 600 !important;
	padding: .9em 2.4em !important;
	border-radius: var(--pill) !important;
	line-height: 1 !important;
	text-decoration: none !important;
	background: linear-gradient(120deg, var(--rasp-br), var(--rasp) 60%, var(--rasp-deep)) !important;
	color: #fff !important;
	box-shadow: 0 6px 18px rgba(238,61,111,.30) !important;
	transition: transform .2s var(--li-ease), box-shadow .2s var(--li-ease);
}
.li-dreply__form .li-btn:hover { color: #fff !important; transform: translateY(-1px); box-shadow: 0 9px 24px rgba(238,61,111,.38) !important; }

/* ============ Formulaires li-qp — cohérence globale (30/08/2026) ============ */
/* Soumission : pastille auto centrée (pleine largeur en mobile). Généralise le
   comportement introduit sur « Répondre à une demande » — sans quoi la grille
   .li-qp étire le bouton sur toute la largeur du formulaire. */
.li-qp .li-qp__submit { width: auto; justify-self: center; }
@media (max-width: 560px) { .li-qp .li-qp__submit { width: 100%; } }
/* Note d'intro des petits formulaires : centrée sous le titre de page. */
.li-qp__note { margin: 0 auto var(--li-space-4); text-align: center; }
/* Rangée à 2 colonnes : la marge basse des champs (absente sur :last-child)
   déséquilibrait les colonnes étirées par la grille — le champ Départ était
   décalé de 8px. Dans une rangée, l'espacement vient du gap, pas des marges. */
.li-qp__row > .li-qp__field { margin-bottom: 0; align-content: start; }
/* Équipements « déjà sur cette annonce » (page Proposer un équipement). */
.li-equip-have { margin-top: 10px; padding: 14px 16px; background: rgba(176,138,79,0.06); border: 1px solid var(--li-border); border-radius: var(--li-radius-sm); }
.li-equip-have__t { margin: 0 0 8px; font-size: 0.88rem; font-weight: 600; color: var(--li-text-2); }
.li-equip-have__chips { display: flex; flex-wrap: wrap; gap: 7px; }
.li-equip-chip { display: inline-flex; align-items: center; gap: 5px; padding: 5px 11px; background: #fff; border: 1px solid var(--li-border); border-radius: var(--li-radius-pill); font-size: 0.86rem; color: var(--li-text); }
.li-equip-chip--wait { border-style: dashed; color: var(--li-text-2); }
.li-equip-chip--wait em { font-style: normal; font-size: 0.76rem; color: var(--li-brass); font-weight: 600; }
.li-equip-have__none { font-size: 0.86rem; color: var(--li-text-2); }
