/* ============================================================
   Cabinet Louis - Correctifs responsive globaux
   Chargé sur toutes les pages après le CSS spécifique
   ============================================================ */

/* Empêche le défilement horizontal sur tous les appareils.
   « clip » et non « hidden » : hidden transforme body en zone de défilement et casse tous les
   position: sticky du site (en-tête, barre de filtres des annonces, colonnes de bien.html et du calculateur).
   « hidden » reste en repli pour les navigateurs qui ne connaissent pas « clip » (Safari < 16). */
html, body {
  overflow-x: hidden;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
}

/* Toutes les images s'adaptent à leur conteneur */
img, video, iframe, embed, object {
  max-width: 100%;
  height: auto;
}

/* Tableaux scrollables sur mobile */
table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
/* Tableaux de tarifs prévus pour remplir leur encadré (width:100% en ligne) : en display:block le tableau interne
   se contractait à gauche, laissant le reste de l'encadré vide */
table[style*="width:100%"] {
  display: table;
  overflow-x: visible;
}

/* ── Topbar : masquer l'adresse sur très petit écran ── */
@media (max-width: 480px) {
  .topbar-inner > span:first-child {
    display: none;
  }
  .topbar-inner {
    justify-content: flex-end;
    padding: 0 16px;
  }
}

/* ── Header : padding réduit ── */
@media (max-width: 600px) {
  .topbar-inner,
  .header-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .header-tel {
    display: none;
  }
}

/* ── Sections & conteneurs : padding latéral mobile ── */
@media (max-width: 600px) {
  .page-hero-inner,
  .breadcrumb-inner,
  .content-wrap,
  .hero-inner,
  .section-inner,
  .intro-inner,
  .props-inner,
  .estim-inner,
  .contact-inner,
  .blog-inner,
  .blog-hero-inner,
  .method-inner,
  .pro-form-inner,
  .footer-top {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ── Grilles : 1 colonne sur mobile ── */
@media (max-width: 600px) {
  .props-grid,
  .services-grid,
  .formula-cards,
  .blog-grid,
  .err-suggestions,
  .stats-inner {
    grid-template-columns: 1fr !important;
  }

  .footer-top {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
}

/* ── Grilles : 2 colonnes sur tablette ── */
@media (max-width: 900px) and (min-width: 601px) {
  .props-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ── Sections en colonne sur mobile ── */
@media (max-width: 900px) {
  .intro-inner,
  .estim-inner,
  .contact-inner,
  .hero-inner,
  .method-inner,
  .pro-form-inner {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  .intro-visual,
  .hero-visual {
    display: none;
  }
}

/* ── Typographie adaptative ── */
@media (max-width: 600px) {
  .page-hero h1,
  .hero-title,
  .section-title {
    font-size: clamp(28px, 8vw, 42px) !important;
  }

  .page-hero-desc,
  .hero-desc {
    font-size: 14px !important;
  }
}

/* ── Filtres de recherche : colonne sur mobile ── */
@media (max-width: 700px) {
  .filters-bar,
  .filters-row,
  .filter-group {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  .filter-group select,
  .filter-group input:not([type="checkbox"]):not([type="radio"]) {
    width: 100% !important;
  }
}

/* ── Cartes de biens : 1 colonne sur mobile ── */
@media (max-width: 640px) {
  .prop-card,
  .prop-card-grid {
    width: 100% !important;
  }
}

/* ── Boutons côte à côte → colonne sur très petit ── */
@media (max-width: 420px) {
  .btn-group,
  .cta-actions,
  .err-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }
}

@media (max-width: 700px) {
  .immeuble-block {
    grid-template-columns: 1fr !important;
  }
  .immeuble-photo {
    min-height: 200px;
  }

  .btn-dark,
  .btn-outline,
  .btn-primary,
  .btn-secondary {
    text-align: center !important;
    justify-content: center !important;
  }
}

/* ── Footer ── */
@media (max-width: 600px) {
  footer {
    padding: 24px 16px !important;
  }

  .footer-bot-inner {
    flex-direction: column !important;
    gap: 12px !important;
    text-align: center !important;
  }

  .footer-links {
    flex-wrap: wrap !important;
    justify-content: center !important;
  }
}

/* ── Modale & formulaires : plein écran sur mobile ── */
@media (max-width: 600px) {
  .modal-box,
  .offre-modal-box,
  .ec-modal-box {
    margin: 0 !important;
    border-radius: 0 !important;
    max-height: 100vh !important;
    width: 100% !important;
  }

  .modal-head,
  .ec-modal-head {
    padding: 20px 16px !important;
  }

  .modal-body,
  .ec-modal-body {
    padding: 20px 16px !important;
  }
}

/* ── Bien.html : sidebar en dessous sur mobile ── */
@media (max-width: 900px) {
  .bien-layout {
    flex-direction: column !important;
  }

  .bien-sidebar {
    width: 100% !important;
    position: static !important;
  }
}

/* ── Espace client : 1 colonne sur mobile ── */
@media (max-width: 640px) {
  .ec-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── Touch : zones cliquables min 44px ── */
@media (max-width: 900px) {
  nav a,
  .btn-client,
  .btn-dark,
  .btn-outline,
  .btn-primary {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  input, select, textarea, button {
    min-height: 44px;
  }
}

/* ── Hero accueil : recadrage mobile/tablette pour éviter la silhouette de la fontaine sur le texte ── */
@media (max-width: 900px) {
  .hero-photo {
    transform: scale(1.45);
    transform-origin: 50% 74%;
  }
}

/* Justification globale de tous les textes courants */
p, .section-text, .svc-card p, .page-hero-desc, .hero-desc,
.prop-desc, .blog-excerpt, .content-wrap p, .modal-body p,
.bien-desc, .article-body p, .faq-answer p, .method-text p {
  text-align: justify;
}

/* Avis Google (accueil) : 3 colonnes → 2 sur tablette → 1 sur mobile.
   Sans ça la grille débordait de l'écran en dessous de ~900px. */
@media (max-width: 900px) {
  .reviews-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .reviews-inner { padding: 0 20px; }
}
@media (max-width: 600px) {
  .reviews-grid { grid-template-columns: 1fr !important; }
}

/* Case de consentement au rappel téléphonique (décret n° 2026-662, champ Whise AgreePhoneCall) -
   facultative, jamais cochée par défaut. Variante --dark pour les cartes à fond sombre. */
.whise-consent { display: flex; align-items: flex-start; gap: 9px; margin: 12px 0; font-family: 'Raleway', sans-serif; font-size: 11.5px; font-weight: 400; line-height: 1.55; letter-spacing: 0; text-transform: none; color: #6b6560; cursor: pointer; text-align: left; }
.whise-consent input[type="checkbox"] { width: 16px; height: 16px; flex-shrink: 0; margin: 2px 0 0; accent-color: #aaa39d; cursor: pointer; }
.whise-consent--dark { color: rgba(255,255,255,.65); }
.whise-consent-note { margin: 10px 0 4px; font-size: 11.5px; line-height: 1.5; color: #6b6560; }

/* Icônes SVG (remplacent les caractères texte ♡ ♥ ✓) - héritent de la couleur et de la taille du texte */
.ico-heart, .ico-check { display: inline-block; flex-shrink: 0; }
.fav-btn .ico-heart { width: 19px; height: 19px; }

/* Réseaux sociaux (Instagram, LinkedIn) dans la barre du haut */
.topbar-social { display: flex; align-items: center; gap: 12px; }
.topbar-social a { display: flex; align-items: center; justify-content: center; line-height: 0; }
.topbar-social svg { display: block; }
@media (max-width: 480px) {
  .topbar-right { gap: 12px !important; }
  .topbar-social { gap: 9px; }
  .topbar-certs { gap: 5px !important; }
}

/* Page syndic : tarifs en une colonne sur tablette et mobile */
@media (max-width: 800px) {
  .tarifs-syndic-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }
}

/* Logo Cabinet Louis (en-tete et pied de page) */
.logo-img { display: block; height: 66px; width: auto; max-width: none; }
.footer-logo-img { display: block; height: 96px; width: auto; max-width: none; margin-bottom: 20px; }
@media (max-width: 600px) {
  .logo-img { height: 54px; }
  .footer-logo-img { height: 84px; }
}

/* Honoraires : precisions en italique sous le libelle sur petit ecran (au lieu d une colonne etroite a droite du titre) */
@media (max-width: 600px) {
  .tarif-cell:has(em) { display: block; align-self: center; }
  .tarif-cell em { display: block; margin: 4px 0 0 !important; line-height: 1.45; }
}

/* Honoraires : baremes a 4 colonnes lisibles sur telephone (marges reduites, tableau pleine largeur, sans colonne coupee) */
@media (max-width: 600px) {
  .h-table-wrap > table { display: table; width: 100%; overflow-x: visible; }
  .h-table-wrap thead th { padding: 11px 5px; font-size: 8.5px; letter-spacing: 0.06em; line-height: 1.35; }
  .h-table-wrap tbody td { padding: 11px 5px; font-size: 12px; line-height: 1.4; }
  .h-table-wrap thead th:first-child,
  .h-table-wrap tbody td:first-child { padding-left: 10px; width: 31%; }
}

/* Honoraires : comparatif Serenite / Excellence - libelles moins etroits sur telephone */
@media (max-width: 600px) {
  .feat-table-wrap .feat-table thead th:not(:first-child) { min-width: 74px; }
  .feat-table-wrap .feat-table thead th { padding: 11px 8px; }
  .feat-table-wrap .feat-table tbody td,
  .feat-table-wrap .feat-table tbody tr.row-total td { padding: 10px 8px; }
}

/* Gestion : les deux cartes d'offres (UNI-Syndic / Multipropriétaire) passent l'une sous l'autre sur mobile, au lieu de déborder à droite */
@media (max-width: 700px) {
  .offres-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .offres-grid > div { padding: 28px 20px !important; }
}

/* Bandeaux d'appel à l'action (Syndic, Gestion) : texte puis boutons en colonne, boutons qui se replient au lieu de sortir de l'écran */
@media (max-width: 900px) {
  .cta-band-inner { flex-direction: column; align-items: flex-start; gap: 24px; }
  .cta-band .cta-btns { flex-shrink: 1; flex-wrap: wrap; width: 100%; }
}
@media (max-width: 480px) {
  .cta-band .cta-btns > a { flex: 1 1 100%; text-align: center; justify-content: center; }
}

/* Pied de page : bloc commun "Tous nos secteurs" (maillage interne vers les 13 quartiers, 13 communes et le calculateur) */
.footer-secteurs { max-width: 1280px; margin: 0 auto; padding: 22px 40px 10px; border-top: 1px solid rgba(255,255,255,.08); display: grid; gap: 8px; font-size: 12px; line-height: 1.9; }
.footer-secteurs-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 16px; }
.footer-secteurs-title { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-right: 6px; flex-basis: 100%; }
.footer-secteurs a { color: rgba(255,255,255,.75); text-decoration: none; }
.footer-secteurs a:hover, .footer-secteurs a:focus-visible { color: var(--taupe-light, #c4beb9); text-decoration: underline; }
@media (min-width: 900px) { .footer-secteurs-title { flex-basis: auto; min-width: 180px; } }
@media (max-width: 600px) { .footer-secteurs { padding: 20px 16px 8px; } }
@media (max-width: 600px) { .footer-secteurs a { padding: 4px 0; } }

/* ============================================================================
   ACCESSIBILITE - CONTRASTES (norme WCAG AA : 4,5:1 pour le texte courant)
   Les anciennes teintes (taupe #aaa39d et gris #8a847f sur fond clair, blanc sur taupe ou or,
   blanc tres transparent sur fond sombre) donnaient 2,5:1 a 3,7:1. Teintes retenues, meme famille :
   texte taupe fonce #6f6862, gris #6b6560, or fonce #7f6030, fond de bouton taupe #756e68.
   ============================================================================ */
:root { --muted: #6b6560; --text-muted: #6b6560; }

/* Texte taupe sur fond clair */
div.svc-tagline, .team-photo-wrap span, div.team-role, span.nbhd-item-btn, div.reviews-count, div.review-date,
p.reviews-note, div.prop-type, .listing-intro-inner em, span.prop-type-tag, div.pack-label-light, div.pk-extra-label,
div.comp-cta-label, .comp-cta-title em, div.fisc-card-label, p.fisc-help-title, div.sy-pack-label, .sy-list strong,
.sy-divider span, .sy-list span, .form-check a, .info-value-small span, div.tl-year, span.section-number,
.section-title-h2 em, .section-header em, .range-labels span, a.q-voir-tout, div.q-prop-type, a.q-prop-link,
span.q-quartier-type, .pack-features-light li, .pack-features-light strong, .pack-features-light em,
.pack-card-light [style*="var(--taupe)"], .offres-grid [style*="var(--taupe)"], .method-inner [style*="var(--taupe)"],
.method-highlight [style*="var(--taupe)"], td[style*="color:var(--taupe)"] { color: #6f6862 !important; }

/* Sur-titres de section (« NOS SERVICES »...), sommaire des mentions légales, lien actif ou survolé du menu (fond blanc).
   Sans !important : les sections sombres gardent leur teinte claire grâce aux règles plus précises des pages
   (.q-focus .section-label, .histoire-hero .section-label...). Le menu mobile, sombre, a ses propres couleurs. */
div.section-label, .q-hero div.section-label, .toc-title,
.header-inner nav a.active, .header-inner nav a:hover { color: #6f6862; }

/* Texte or sur fond clair */
div.comp-cta-sep, .row-highlight td, div.offre-rate, .q-hero-inner em { color: #7f6030 !important; }

/* Boutons et pastilles : fond taupe plus profond pour le texte blanc */
a.hero-cta, span.prop-badge, .btn-gold, button.btn-filter, .btn-filter, .btn-alerte, .steps-cta a, button.btn-next,
a.btn-gold, a.pack-cta-dark, a.btn-cta-gold { background-color: #756e68 !important; }
a.hero-cta:hover, .btn-gold:hover, a.btn-gold:hover, button.btn-filter:hover, .btn-alerte:hover, .steps-cta a:hover,
button.btn-next:hover, a.pack-cta-dark:hover, a.btn-cta-gold:hover { background-color: #5f5953 !important; }

/* Pastilles et boutons or : texte fonce */
button.frdv-btn, span.pack-badge, div.formula-tag, th.col-exc, div.gli-badge { color: #1c1c1c !important; }

/* Boutons WhatsApp verts : texte fonce */
[style*="25d366" i], [style*="rgb(37, 211, 102)"], [style*="25d366" i] *, [style*="rgb(37, 211, 102)"] * { color: #1c1c1c !important; }

/* Textes blancs tres transparents sur fond sombre (pied de page, formulaires sombres) */
.footer-legal a, div.footer-copy, .footer-col h3, .footer-links a, span.fcert, p.footer-desc, .quote-author p,
.alerte-field label, div.step-tab, .formula-card.excellence .formula-rate-sub, p.page-hero-date, div.result-label, div.result-sub,
.estim-form .whise-consent, .frdv-panel .whise-consent { color: rgba(255, 255, 255, .64) !important; }
[style*="color:rgba(255,255,255,.2"], [style*="color:rgba(255,255,255,.3"], [style*="color:rgba(255,255,255,.4"],
[style*="color: rgba(255, 255, 255, 0.4"], [style*="color: rgba(255, 255, 255, 0.3"] { color: rgba(255, 255, 255, .66) !important; }

/* Numeros d etapes sur fond sombre */
span.step-num { color: #b89660 !important; }

/* Pages utilitaires : espace client et page introuvable */
.ec-audience-label, .ec-label, .ec-title em, .err-label, .err-title em, .err-divider-txt { color: #6f6862 !important; }
.ec-option.is-primary { background: #756e68 !important; border-color: #756e68 !important; }
.ec-option.is-primary:hover { background: #1c1c1c !important; border-color: #1c1c1c !important; }
body > footer:not([class]), body > footer:not([class]) a { color: rgba(255, 255, 255, .66) !important; }

/* ============================================================================
   ACCESSIBILITE - navigation au clavier et mouvement reduit
   ============================================================================ */
/* Texte lu par les lecteurs d'écran, invisible à l'écran */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
/* Lien « Aller au contenu » : invisible, il apparait quand on appuie sur la touche Tab */
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100001; padding: 12px 18px; background: #1c1c1c; color: #fff; font: 600 13px/1 'Raleway', system-ui, sans-serif; text-decoration: none; border-radius: 0 0 3px 3px; }
.skip-link:focus { left: 16px; outline: 2px solid #fff; outline-offset: 2px; }
#contenu:focus { outline: none; }

/* Cadre de focus visible au clavier : trait sombre + liseré blanc, lisible sur fond clair comme sur fond sombre */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
summary:focus-visible, [role="button"]:focus-visible, [tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 2px solid #1c1c1c !important; outline-offset: 2px !important; box-shadow: 0 0 0 4px #fff !important;
}

/* Mouvement reduit : les animations deviennent quasi instantanees pour les personnes qui l'ont demande a leur appareil */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
#contenu, #quartiers { scroll-margin-top: 90px; }

/* FAQ (Gestion, Syndic, Vente) : blocs <details> utilisables au clavier, sans JavaScript */
.faq-pro { padding: 90px 0; background: #fff; border-top: 1px solid #deded8; }
.faq-pro-inner { max-width: 900px; margin: 0 auto; padding: 0 40px; }
.faq-pro-head { text-align: center; margin-bottom: 40px; }
.faq-pro-label { font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #6f6862; margin-bottom: 12px; }
.faq-pro-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(28px, 3.4vw, 40px); font-weight: 400; line-height: 1.2; color: #1c1c1c; margin: 0 0 12px; text-wrap: balance; }
.faq-pro-title em { font-style: italic; color: #6f6862; }
.faq-pro-intro { font-size: 14px; color: #4a4542; margin: 0 auto; max-width: 560px; text-align: center; }
.faq-pro-item { border-bottom: 1px solid #deded8; }
.faq-pro-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; }
.faq-pro-item summary::-webkit-details-marker { display: none; }
.faq-pro-item summary h3 { font-family: 'Cormorant Garamond', serif; font-size: 20px; font-weight: 600; line-height: 1.3; color: #1c1c1c; margin: 0; }
.faq-pro-arrow { flex-shrink: 0; width: 12px; height: 12px; border-right: 2px solid #6f6862; border-bottom: 2px solid #6f6862; transform: rotate(45deg); transition: transform .25s; margin-top: -4px; }
.faq-pro-item[open] .faq-pro-arrow { transform: rotate(-135deg); margin-top: 4px; }
.faq-pro-item p { font-size: 14.5px; line-height: 1.8; color: #4a4542; margin: 0 0 22px; text-align: justify; max-width: 760px; }
@media (max-width: 600px) { .faq-pro { padding: 60px 0; } .faq-pro-inner { padding: 0 16px; } .faq-pro-item summary h3 { font-size: 18px; } }

/* Repères locaux des pages de communes (section ajoutée par tools/add-reperes-communes.js) */
.q-local { padding: 80px 0; background: #fff; border-top: 1px solid #deded8; }
.q-local-inner { max-width: 1100px; margin: 0 auto; padding: 0 40px; }
.q-local-head { text-align: center; margin-bottom: 44px; }
.q-local-head .section-label { justify-content: center; }
.q-local-head .section-label::before { display: none; }
.q-local-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 56px; }
.q-local-item { padding: 26px 0; border-top: 1px solid #deded8; }
.q-local-item h3 { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 600; color: #1c1c1c; margin: 0 0 8px; }
.q-local-item p { font-size: 14px; line-height: 1.8; color: #4a4542; margin: 0; text-align: justify; }
.q-local-head .section-label { color: #6f6862; }
.q-local-src { font-size: 12px; color: #6f6862; margin: 24px 0 0; text-align: center; }
@media (max-width: 768px) { .q-local { padding: 56px 0; } .q-local-inner { padding: 0 20px; } .q-local-grid { grid-template-columns: 1fr; } }

/* Équipe (accueil) : une carte par ligne sur téléphone, pour que la photo et le nom restent lisibles */
@media (max-width: 600px) {
  .team-grid { grid-template-columns: 1fr; max-width: 380px; padding: 0 20px; gap: 36px; }
  .team-grid .team-card:last-child:nth-child(odd) { max-width: none; }
}

/* FAQ détaillées (Gestion, Syndic) : sous-titres, listes, bloc « Chez Cabinet Louis », liens d'action */
.faq-pro-ans { max-width: 760px; padding-bottom: 14px; }
.faq-pro-ans p { margin: 0 0 14px; }
.faq-pro-ans h4 { font-family: 'Raleway', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #1c1c1c; margin: 22px 0 6px; }
.faq-pro-ans ul, .faq-pro-ans ol { margin: 0 0 16px; padding-left: 22px; font-size: 14.5px; line-height: 1.75; color: #4a4542; text-align: justify; }
.faq-pro-ans ul { list-style: disc; }
.faq-pro-ans ol { list-style: decimal; }
.faq-pro-ans li { margin: 0 0 6px; padding-left: 4px; }
.faq-pro-ans li strong { color: #1c1c1c; font-weight: 600; }
.faq-pro-cl { background: #f4f1ec; border-top: 2px solid #1c1c1c; padding: 20px 22px 8px; margin: 24px 0 18px; }
.faq-pro-cl-label { font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #1c1c1c; margin-bottom: 12px; }
.faq-pro-cl p { margin: 0 0 14px; }
.faq-pro-cta { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0 0 8px !important; }
.faq-pro-cta a { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1c1c1c; text-decoration: none; border-bottom: 1.5px solid #1c1c1c; padding-bottom: 2px; }
.faq-pro-cta a:hover { color: #6f6862; border-color: #6f6862; }
@media (max-width: 600px) { .faq-pro-cl { padding: 16px 16px 6px; } .faq-pro-ans ul, .faq-pro-ans ol { padding-left: 18px; } }

.faq-pro-q { font-size: 13.5px !important; color: #4a4542; }
.faq-pro-q a { color: #1c1c1c; text-decoration: underline; text-underline-offset: 3px; }
.faq-pro-q a:hover { color: #6f6862; }

/* FAQ : texte justifié comme sur la FAQ Estimation ; les lignes de liens restent alignées à gauche */
.faq-pro-ans p.faq-pro-q, .faq-pro-ans p.faq-pro-cta { text-align: left; }

/* Fiche bien (vente) : prix au m², puis honoraires inclus et à la charge de qui, chacun sur sa ligne */
.ps-line { display: block; margin-top: 3px; }

/* Listes de biens (vente, location) : la photo remplit toute la hauteur de la carte, sans vide dessous.
   Sur téléphone (carte sur une colonne), la hauteur fixe d'origine est conservée. */
@media (min-width: 641px) {
  .prop-item-img { height: auto !important; min-height: 210px; }
  .prop-item-img > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
}

/* Blocs de liens dans le texte (Gestion, Syndic) et date de mise à jour visible */
.ctx-links { padding: 70px 0 10px; background: #fff; }
.ctx-links-inner { max-width: 900px; margin: 0 auto; padding: 0 40px; }
.ctx-links-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(26px, 3vw, 34px); font-weight: 400; line-height: 1.2; color: #1c1c1c; margin: 0 0 18px; text-align: center; text-wrap: balance; }
.ctx-links-title em { font-style: italic; color: #6f6862; }
.ctx-links p { font-size: 14.5px; line-height: 1.85; color: #4a4542; margin: 0 0 14px; text-align: justify; }
.ctx-links a { color: #1c1c1c; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #aaa39d; }
.ctx-links a:hover { color: #6f6862; }
.page-maj { max-width: 900px; margin: 0 auto; padding: 18px 40px 40px; font-size: 12px; color: #6f6862; text-align: center !important; }
@media (max-width: 600px) { .ctx-links { padding: 48px 0 6px; } .ctx-links-inner, .page-maj { padding-left: 16px; padding-right: 16px; } }

/* Fil d'Ariane (pages qui n'ont pas leur propre feuille de style) */
.bc-solo.breadcrumb-bar { background: #fff; border-bottom: 1px solid #deded8; }
.bc-solo .breadcrumb-inner { max-width: 1280px; margin: 0 auto; padding: 12px 40px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bc-solo .breadcrumb-inner a { font-size: 12px; color: #6f6862; text-decoration: none; }
.bc-solo .breadcrumb-inner a:hover { color: #1c1c1c; }
.bc-solo .breadcrumb-sep { color: #aaa39d; font-size: 12px; }
.bc-solo .breadcrumb-current { font-size: 12px; font-weight: 600; color: #1c1c1c; }
@media (max-width: 600px) { .bc-solo .breadcrumb-inner { padding: 12px 20px; } }
