/* ==========================================================================
   La Signature - Fiche d'un bien (bien.php)
   Mise en page inspirée de la fiche Accord Immo : deux colonnes de 50 %,
   une seule colonne sous 750 px. Coins droits, vert de marque.
   S'appuie sur les variables de theme-blanc.css.
   ========================================================================== */

.fiche-bien,
.fb-carte,
.fb-estimation {
    /* Largeur du contenu : 90 % sur mobile et tablette */
    --fb-largeur: 90%;
    --fb-largeur-max: 1140px;
    --fb-accent: var(--ls-vert-texte, #4f7a00);
    --fb-vert: var(--ls-vert, #a3db2c);
    --fb-texte: var(--ls-texte, #1d1d1f);
    --fb-texte-2: #333;
    --fb-gris: var(--ls-fond-2, #f5f5f7);
    --fb-ligne: #dddddd;
}

/* isolation : les z-index internes ne passent jamais devant le menu ni la barre mobile */
.fiche-bien,
.fb-carte {
    isolation: isolate;
}

.fiche-bien {
    position: relative;
    overflow: hidden;
    padding-bottom: 30px;
    color: var(--fb-texte);
    font-family: 'Work Sans', sans-serif;
}

/* Bandeau gris clair derrière le haut de la fiche */
.fiche-bien .fb-bandeau {
    max-width: var(--fb-largeur-max);
    width: var(--fb-largeur);
    margin: 0 auto;
    position: relative;
    z-index: 5;
}
.fiche-bien .fb-bandeau::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 200%;
    height: 660px;
    background-color: var(--fb-gris);
}

/* Ordinateur : même largeur que la page Contact (alignée sur la barre de menu, 1140 px)
   et la barre de menu déborde de 40 px sous l'en-tête */
@media screen and (min-width: 992px) {
    .fiche-bien,
    .fb-carte,
    .fb-estimation {
        --fb-largeur: calc(100% - 30px);
    }
    .fiche-bien { padding-top: 50px; }
    body .fb-carte { padding-left: 15px; padding-right: 15px; }
    body .fb-carte .fb-carte__conteneur { height: 500px; } /* carte et Street View */
}

/* Fil d'Ariane */
.fiche-bien .fb-ariane {
    max-width: var(--fb-largeur-max);
    width: var(--fb-largeur);
    margin: 0 auto;
    padding-top: 30px;
    position: relative;
    z-index: 15;
    font-size: 13px;
    line-height: 1.4;
    color: var(--fb-texte-2);
}
.fiche-bien .fb-ariane a {
    color: var(--fb-texte-2);
}
.fiche-bien .fb-ariane a:hover,
.fiche-bien .fb-ariane span {
    color: var(--fb-accent);
}

/* --------------------------------------------------------------------------
   Colonnes
   -------------------------------------------------------------------------- */
.fiche-bien .fb-colonnes {
    max-width: var(--fb-largeur-max);
    width: var(--fb-largeur);
    margin: 30px auto 0;
    position: relative;
    z-index: 15;
    display: flex;
}
.fiche-bien .fb-gauche {
    flex-basis: 50%;
    min-width: 0;
}
.fiche-bien .fb-droite {
    flex-basis: 50%;
    min-width: 0;
    padding: 0 7%;
}

/* --------------------------------------------------------------------------
   Titre, prix, adresse, boutons
   -------------------------------------------------------------------------- */
.fiche-bien .fb-infos {
    position: relative;
    margin-bottom: 45px;
}
.fiche-bien .fb-infos--mobile {
    display: none;
}
.fiche-bien .fb-infos__titre {
    font-size: 30px;
    line-height: 1.15;
    font-weight: 300;
    color: var(--fb-texte-2);
    margin: 0 0 15px;
    letter-spacing: -0.01em;
}
.fiche-bien .fb-infos__prix {
    font-size: 30px;
    line-height: 1.15;
    font-weight: 700;
    color: var(--fb-accent);
}
.fiche-bien .fb-infos__prix span {
    display: block;
    font-size: 16px;
    font-weight: 400;
}
.fiche-bien .fb-infos__adresse {
    position: relative;
    margin: 20px 0;
    padding: 1px 0 0 25px;
    font-size: 16px;
    line-height: 1.35;
    font-weight: 300;
    color: var(--fb-texte-2);
}
.fiche-bien .fb-infos__adresse svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 18px;
    height: 18px;
    fill: var(--fb-accent);
}
.fiche-bien .fb-infos__video {
    position: relative;
    display: flex;
    align-items: center;
    height: 80px;
    margin: 15px 0;
    padding: 0 15px 0 90px;
    background-color: var(--fb-vert);
    color: var(--fb-texte);
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    transition: background-color .3s;
}
.fiche-bien .fb-infos__video svg {
    position: absolute;
    top: 15px;
    left: 20px;
    width: 50px;
    height: 50px;
    fill: var(--fb-texte);
}
.fiche-bien .fb-infos__video:hover {
    background-color: var(--ls-vert-hover, #93c824);
    color: var(--fb-texte);
}
.fiche-bien .fb-infos__boutons {
    display: flex;
    justify-content: space-between;
    margin: 15px 0 5px;
}
.fiche-bien .fb-infos__boutons button {
    flex-basis: 49%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 15px;
    background: #fff;
    border: 1px solid var(--fb-accent);
    color: var(--fb-accent);
    font-family: inherit;
    font-size: 16px;
    font-weight: 300;
    cursor: pointer;
    transition: color .3s, border-color .3s, background-color .3s;
}
.fiche-bien .fb-infos__boutons button svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}
.fiche-bien .fb-infos__boutons button:hover {
    background-color: var(--fb-accent);
    color: #fff;
}

/* --------------------------------------------------------------------------
   Galerie : grande photo + 3 vignettes (3fr / 1fr)
   -------------------------------------------------------------------------- */
.fiche-bien .fb-galerie {
    position: relative;
    margin-bottom: 90px;
}
.fiche-bien .fb-galerie__liste {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 5px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.fiche-bien .fb-galerie__item {
    display: none;
    overflow: hidden;
    aspect-ratio: 3 / 2;
    background-color: var(--fb-gris);
}
.fiche-bien .fb-galerie__item--1,
.fiche-bien .fb-galerie__item--2,
.fiche-bien .fb-galerie__item--3,
.fiche-bien .fb-galerie__item--4 {
    display: block;
}
.fiche-bien .fb-galerie__item--1 {
    grid-column: 1 / span 3;
}
/* Moins de 4 photos : les vignettes se partagent la ligne */
.fiche-bien .fb-galerie--2 .fb-galerie__item--2 { grid-column: 1 / span 3; }
.fiche-bien .fb-galerie--3 .fb-galerie__liste { grid-template-columns: 1fr 1fr; }
.fiche-bien .fb-galerie--3 .fb-galerie__item--1 { grid-column: 1 / span 2; }

.fiche-bien .fb-galerie__item a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}
.fiche-bien .fb-galerie__item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}
.fiche-bien .fb-galerie__item a:hover img {
    transform: scale(1.03);
}
.fiche-bien .fb-galerie__item--4 a[data-plus]::before {
    content: "Voir toutes les photos";
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    background-color: rgba(163, 219, 44, .78);
    color: var(--fb-texte);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
}

/* --------------------------------------------------------------------------
   Titres de section, informations principales, description
   -------------------------------------------------------------------------- */
.fiche-bien .fb-titre,
.fb-carte .fb-carte__titre {
    font-size: 30px;
    line-height: 1.15;
    font-weight: 300;
    color: var(--fb-texte-2);
    margin: 30px 0;
    letter-spacing: -0.01em;
}
.fiche-bien .fb-titre strong,
.fb-carte .fb-carte__titre strong {
    font-weight: 700;
    color: var(--fb-accent);
}
.fiche-bien .fb-principales {
    position: relative;
}
.fiche-bien .fb-principales > .fb-titre:first-child {
    margin-top: 0;
}
.fiche-bien .fb-principales__liste {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    margin: 30px 0;
    padding: 0;
    font-size: 14px;
    color: var(--fb-texte-2);
}
.fiche-bien .fb-principales__liste li {
    margin: 8px 20px 8px 0;
    color: var(--fb-texte-2);
    white-space: nowrap;
}
.fiche-bien .fb-principales__liste img {
    display: inline-block;
    height: 22px;
    width: auto;
    margin-right: 3px;
    vertical-align: middle;
}
.fiche-bien .fb-principales__liste .fb-principales__peb {
    height: 40px;
}
.fiche-bien .fb-separation {
    display: block;
    width: 80%;
    height: 1px;
    margin: 45px 0;
    border: 0;
    background-color: var(--fb-ligne);
}
.fiche-bien .fb-description {
    margin: 30px 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--fb-texte-2);
}
.fiche-bien .fb-description h3 {
    margin: 0 0 15px;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 700;
    color: var(--fb-texte);
}
.fiche-bien .fb-description__texte {
    color: var(--fb-texte-2);
}

/* Vidéos */
.fiche-bien .fb-videos {
    margin-top: 60px;
    scroll-margin-top: 110px;
}
.fiche-bien .fb-videos .video-bien-player {
    --ratio: 1.7778;
    position: relative;
    width: 100%;
    aspect-ratio: var(--ratio);
    max-height: 85vh;
    max-width: calc(85vh * var(--ratio));
    margin: 0 0 20px;
    background-color: #000;
}
.fiche-bien .fb-videos .video-bien-player iframe,
.fiche-bien .fb-videos .video-bien-player video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* --------------------------------------------------------------------------
   Onglets
   -------------------------------------------------------------------------- */
.fiche-bien .fb-onglets {
    margin-top: 60px;
}
.fiche-bien .fb-onglets__nav {
    display: flex;
    margin: 30px 0;
}
.fiche-bien .fb-onglets__nav button {
    flex: 1 1 25%;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    border: 0;
    background-color: var(--fb-vert);
    color: var(--fb-texte);
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    box-shadow: inset 0 -10px 20px rgba(0, 0, 0, .08);
    cursor: pointer;
    position: relative;
    transition: background-color .3s, color .3s;
}
.fiche-bien .fb-onglets__nav button:hover {
    background-color: var(--ls-vert-hover, #93c824);
}
.fiche-bien .fb-onglets__nav button.selected {
    z-index: 2;
    background-color: #fff;
    color: var(--fb-accent);
    box-shadow: 0 0 15px rgba(0, 0, 0, .15);
}
.fiche-bien .fb-onglets__section {
    position: relative;
    margin: 30px 0;
    padding-bottom: 45px;
    overflow: hidden;
}
.fiche-bien .fb-onglets__section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 80%;
    height: 1px;
    background-color: var(--fb-ligne);
}
.fiche-bien .fb-onglets__section--cachee {
    display: none;
}
.fiche-bien .fb-onglets__section p {
    font-size: 14px;
    color: var(--fb-texte-2);
}
.fiche-bien .fb-mention {
    margin: 0;
    font-size: 12px !important;
    font-style: italic;
}

/* Listes libellé / valeur (Détails, Énergie, Composition) */
.fiche-bien .fb-donnees > section,
.fiche-bien .fb-composition .floor {
    max-width: 320px;
    margin-bottom: 45px;
}
.fiche-bien .fb-donnees h3 {
    margin: 15px 0;
    font-size: 16px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--fb-accent);
}
.fiche-bien .fb-donnees ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.fiche-bien .fb-donnees li {
    display: flex;
    justify-content: space-between;
    margin: 5px 0;
    font-size: 14px;
    line-height: 1.35;
    color: var(--fb-texte-2);
}
.fiche-bien .fb-donnees li span {
    color: var(--fb-accent);
    text-align: right;
}
.fiche-bien .fb-donnees li span:first-child {
    margin-right: 15px;
    color: var(--fb-texte-2);
    text-align: left;
}
/* Composition Omnicasa : nom de la pièce / « : » / surface / commentaire */
.fiche-bien .fb-composition .col-4-2,
.fiche-bien .fb-composition .col-8-2 {
    display: none;
}
.fiche-bien .fb-composition li span:first-child::first-letter {
    text-transform: uppercase;
}
.fiche-bien .fb-composition li span:empty {
    display: none;
}
.fiche-bien .fb-composition sup {
    font-size: 9px;
}

.fiche-bien .fb-peb img {
    display: block;
    height: auto;
    max-width: 100%;
    margin-bottom: 20px;
}

/* Documents */
.fiche-bien .fb-documents {
    list-style: none;
    margin: 0;
    padding: 0;
}
.fiche-bien .fb-documents li {
    margin: 15px 0;
}
.fiche-bien .fb-documents a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    color: var(--fb-texte-2);
    text-decoration: none;
}
.fiche-bien .fb-documents a svg {
    flex: 0 0 25px;
    width: 25px;
    height: 25px;
    fill: var(--fb-accent);
}
.fiche-bien .fb-documents a em {
    font-style: normal;
    font-size: 11px;
    font-weight: 600;
    color: var(--fb-accent);
    border: 1px solid currentColor;
    padding: 1px 5px;
}
.fiche-bien .fb-documents a:hover span {
    color: var(--fb-accent);
    text-decoration: underline;
}

/* --------------------------------------------------------------------------
   Blocs de contact (colonne droite)
   -------------------------------------------------------------------------- */
.fiche-bien .fb-contact {
    position: relative;
    max-width: 500px;
    margin: 15px 0;
    padding: 45px;
    background-color: var(--fb-vert);
    color: var(--fb-texte);
}
.fiche-bien .fb-contact__titre,
.fb-estimation h2 {
    margin: 0 0 25px;
    font-size: 30px;
    line-height: 1.15;
    font-weight: 300;
    color: var(--fb-texte);
    letter-spacing: -0.01em;
}
.fiche-bien .fb-contact__titre strong {
    display: block;
    font-weight: 700;
    color: var(--fb-texte);
}
.fiche-bien .fb-contact p {
    margin: -10px 0 25px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--fb-texte);
}
.fb-contact__bouton,
.fiche-bien .fb-contact__bouton {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 18px 25px;
    background-color: #fff;
    color: var(--ls-texte, #1d1d1f);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .3s, color .3s;
}
.fb-contact__bouton svg {
    width: 20px;
    height: 20px;
    fill: var(--ls-vert-texte, #4f7a00);
}
.fb-contact__bouton:hover,
.fiche-bien .fb-contact__bouton:hover {
    background-color: var(--ls-texte, #1d1d1f);
    color: #fff;
}
.fb-contact__bouton:hover svg {
    fill: var(--ls-vert, #a3db2c);
}

/* --------------------------------------------------------------------------
   Carte
   -------------------------------------------------------------------------- */
.fb-carte {
    position: relative;
    padding: 10px 5% 90px;
}
.fb-carte .fb-carte__deco {
    position: absolute;
    top: 0;
    left: 0;
    width: 30%;
    height: 100%;
    background-color: var(--ls-fond-2, #f5f5f7);
    z-index: 5;
}
.fb-carte .fb-carte__titre {
    position: relative;
    z-index: 15;
    margin: 0 0 20px;
    text-align: center;
    color: #333;
}
.fb-carte .fb-carte__choix {
    position: relative;
    z-index: 15;
    display: flex;
    justify-content: center;
    gap: 0;
    margin-bottom: 20px;
}
.fb-carte .fb-carte__choix button {
    padding: 8px 22px;
    border: 1px solid var(--ls-vert-texte, #4f7a00);
    background: #fff;
    color: var(--ls-vert-texte, #4f7a00);
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    cursor: pointer;
}
.fb-carte .fb-carte__choix button + button {
    border-left: 0;
}
.fb-carte .fb-carte__choix button.selected {
    background: var(--ls-vert-texte, #4f7a00);
    color: #fff;
}
.fb-carte .fb-carte__conteneur {
    position: relative;
    z-index: 15;
    max-width: var(--fb-largeur-max);
    height: 300px;
    margin: 0 auto;
    overflow: hidden;
    background: var(--ls-fond-2, #f5f5f7);
}
.fb-carte .fb-carte__conteneur iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

/* --------------------------------------------------------------------------
   Estimation gratuite
   -------------------------------------------------------------------------- */
.fb-estimation {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    max-width: var(--fb-largeur-max);
    width: var(--fb-largeur);
    margin: 0 auto;
    padding: 40px 0 90px;
}
.fb-estimation__image img {
    display: block;
    width: 170px;
    height: 170px;
}
.fb-estimation h2 {
    margin-bottom: 8px;
    color: #333;
}
.fb-estimation h2 strong {
    display: block;
    font-weight: 700;
    color: var(--ls-vert-texte, #4f7a00);
}
.fb-estimation p {
    margin: 0 0 20px;
    font-size: 14px;
    color: #333;
}
.fb-estimation .fb-contact__bouton {
    background-color: var(--ls-vert, #a3db2c);
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media screen and (max-width: 1200px) {
    .fiche-bien .fb-contact__titre { font-size: 2.5vw; }
}
@media screen and (max-width: 1180px) {
    .fiche-bien .fb-onglets__nav button { font-size: 1.4vw; }
}

@media screen and (max-width: 750px) {
    .fiche-bien .fb-colonnes { display: block; }
    .fiche-bien .fb-droite { padding: 0; }
    .fiche-bien .fb-droite .fb-infos { display: none; }
    .fiche-bien .fb-infos--mobile { display: block; }
    .fiche-bien .fb-contact__titre { font-size: 40px; }
    .fiche-bien .fb-onglets__nav button { font-size: 16px; }
    .fb-estimation { flex-direction: column; text-align: center; gap: 20px; }
}

@media screen and (max-width: 580px) {
    .fiche-bien .fb-onglets__nav button { font-size: 3.4vw; }
}

@media screen and (max-width: 550px) {
    .fiche-bien .fb-contact__titre { font-size: 7vw; }
    .fiche-bien .fb-contact { padding: 35px 30px; }
}

/* ==========================================================================
   Finitions « premium » (principes Apple / Emil Kowalski)
   - retour immédiat à l'appui, survols réservés à la souris
   - transitions courtes sur des propriétés précises, courbe ease-out marquée
   - typographie à interlettrage adapté à la taille
   ========================================================================== */
.fiche-bien,
.fb-carte,
.fb-estimation {
    --fb-ease: cubic-bezier(0.23, 1, 0.32, 1);
    --fb-filet: #ececf0;
    --fb-gris-texte: #6e6e73;
}

/* Typographie */
.fiche-bien .fb-titre,
.fb-carte .fb-carte__titre,
.fiche-bien .fb-infos__titre,
.fiche-bien .fb-contact__titre,
.fb-estimation h2 {
    letter-spacing: -0.02em;
}
.fiche-bien .fb-infos__prix {
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.fiche-bien .fb-description__texte {
    font-size: 15px;
    line-height: 1.7;
    color: #424245;
}

/* Fiche technique : icône, valeur, libellé */
.fiche-bien .fb-principales__liste {
    gap: 18px 30px;
    margin: 30px 0 0;
}
.fiche-bien .fb-principales__liste li {
    margin: 0;
}
.fiche-bien .fb-principales__liste .fb-chiffre {
    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    column-gap: 8px;
    align-items: center;
    white-space: nowrap;
}
.fiche-bien .fb-chiffre img {
    grid-row: 1 / span 2;
    height: 26px;
    margin: 0;
}
.fiche-bien .fb-chiffre strong {
    font-size: 17px;
    line-height: 1.1;
    font-weight: 600;
    color: var(--fb-texte);
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
}
.fiche-bien .fb-chiffre span {
    font-size: 12px;
    line-height: 1.2;
    color: var(--fb-gris-texte);
}

/* Listes libellé / valeur : pleine largeur, filets fins */
.fiche-bien .fb-donnees > section,
.fiche-bien .fb-composition .floor {
    max-width: none;
    margin-bottom: 36px;
}
.fiche-bien .fb-donnees h3 {
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.fiche-bien .fb-donnees li {
    margin: 0;
    padding: 10px 0;
    border-bottom: 1px solid var(--fb-filet);
    font-size: 14px;
}
.fiche-bien .fb-donnees li span {
    color: var(--fb-texte);
    font-weight: 500;
}
.fiche-bien .fb-donnees li span:first-child {
    color: var(--fb-gris-texte);
    font-weight: 400;
}

/* Onglets : contrôle segmenté, curseur vert */
.fiche-bien .fb-onglets__nav {
    padding: 4px;
    gap: 4px;
    background-color: var(--fb-gris);
}
.fiche-bien .fb-onglets__nav button {
    height: 44px;
    background-color: transparent;
    box-shadow: none;
    font-weight: 600;
    color: #424245;
    transition: background-color 200ms var(--fb-ease), color 200ms var(--fb-ease), box-shadow 200ms var(--fb-ease), transform 160ms var(--fb-ease);
}
.fiche-bien .fb-onglets__nav button.selected {
    background-color: var(--fb-vert);
    color: var(--fb-texte);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .10), 0 4px 12px rgba(163, 219, 44, .25);
}
.fiche-bien .fb-onglets__section:not(.fb-onglets__section--cachee) {
    animation: fb-apparition 220ms var(--fb-ease);
}
@keyframes fb-apparition {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: none; }
}

/* Documents : une ligne par fichier */
.fiche-bien .fb-documents li {
    margin: 0;
    border-bottom: 1px solid var(--fb-filet);
}
.fiche-bien .fb-documents a {
    display: flex;
    width: 100%;
    padding: 14px 4px;
    font-size: 15px;
    transition: background-color 160ms var(--fb-ease), transform 160ms var(--fb-ease);
}
.fiche-bien .fb-documents a em {
    margin-left: auto;
}

/* Carte : contrôle segmenté Plan / Street View */
.fb-carte .fb-carte__choix {
    width: max-content;
    margin: 0 auto 20px;
    padding: 3px;
    gap: 2px;
    background-color: #e8e8ed;
}
.fb-carte .fb-carte__choix button,
.fb-carte .fb-carte__choix button + button {
    border: 0;
    background: transparent;
    color: #424245;
    font-weight: 500;
    transition: background-color 200ms cubic-bezier(0.23, 1, 0.32, 1), color 200ms cubic-bezier(0.23, 1, 0.32, 1), transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.fb-carte .fb-carte__choix button.selected {
    background: #fff;
    color: var(--ls-texte, #1d1d1f);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
}

/* Le bouton de visite peut passer à la ligne (colonne étroite sur tablette) */
.fiche-bien .fb-contact--visite .fb-contact__bouton {
    white-space: normal;
    max-width: 100%;
}
@media screen and (min-width: 751px) and (max-width: 1199px) {
    .fiche-bien .fb-contact { padding: 30px; }
}

/* Contacts : restent visibles pendant la lecture (ordinateur) */
@media screen and (min-width: 992px) and (min-height: 760px) {
    body.page-fiche-bien .page-wrapper,
    .fiche-bien {
        overflow: clip; /* comme hidden, mais sans bloquer position: sticky */
    }
    .fiche-bien .fb-contacts {
        position: sticky;
        top: 120px; /* sous le menu collant */
    }
}

/* Transitions précises (remplacent les .3s génériques) */
.fiche-bien .fb-infos__boutons button,
.fiche-bien .fb-infos__video,
.fb-contact__bouton {
    transition: background-color 200ms var(--fb-ease, ease-out), color 200ms var(--fb-ease, ease-out), border-color 200ms var(--fb-ease, ease-out), transform 160ms var(--fb-ease, ease-out);
}
.fiche-bien .fb-galerie__item img {
    transition: transform 500ms var(--fb-ease);
}

/* Retour immédiat à l'appui */
.fiche-bien .fb-infos__boutons button:active,
.fiche-bien .fb-infos__video:active,
.fiche-bien .fb-onglets__nav button:active,
.fiche-bien .fb-documents a:active,
.fb-carte .fb-carte__choix button:active,
.fb-contact__bouton:active {
    transform: scale(0.97);
}
.fiche-bien .fb-galerie__item a:active img {
    transform: scale(0.99);
    transition-duration: 120ms;
}

/* Survols : uniquement avec une souris (pas d'état « collé » au toucher) */
@media (hover: none) {
    .fiche-bien .fb-infos__boutons button:hover {
        background-color: #fff;
        color: var(--fb-accent);
    }
    .fiche-bien .fb-galerie__item a:hover img {
        transform: none;
    }
    .fiche-bien .fb-onglets__nav button:hover {
        background-color: transparent;
    }
    .fiche-bien .fb-onglets__nav button.selected:hover {
        background-color: var(--fb-vert);
    }
    .fb-contact__bouton:hover,
    .fiche-bien .fb-contact__bouton:hover {
        background-color: #fff;
        color: var(--ls-texte, #1d1d1f);
    }
    .fb-estimation .fb-contact__bouton:hover {
        background-color: var(--ls-vert, #a3db2c);
    }
}
@media (hover: hover) and (pointer: fine) {
    .fiche-bien .fb-onglets__nav button:not(.selected):hover {
        background-color: rgba(0, 0, 0, .04);
        color: var(--fb-texte);
    }
    .fiche-bien .fb-documents a:hover {
        background-color: var(--fb-gris);
    }
    .fb-carte .fb-carte__choix button:not(.selected):hover {
        color: var(--ls-texte, #1d1d1f);
    }
}

/* Focus clavier visible */
.fiche-bien a:focus-visible,
.fiche-bien button:focus-visible,
.fb-carte button:focus-visible,
.fb-estimation a:focus-visible {
    outline: 2px solid var(--ls-vert-texte, #4f7a00);
    outline-offset: 2px;
}

/* Réduire les animations : fondus seulement, aucun mouvement */
@media (prefers-reduced-motion: reduce) {
    .fiche-bien *,
    .fb-carte *,
    .fb-estimation * {
        transition-duration: 1ms !important;
    }
    .fiche-bien .fb-onglets__section:not(.fb-onglets__section--cachee) {
        animation: fb-fondu 150ms ease;
    }
    .fiche-bien .fb-galerie__item a:hover img,
    .fiche-bien *:active,
    .fb-carte *:active,
    .fb-estimation *:active {
        transform: none !important;
    }
}
@keyframes fb-fondu {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* --------------------------------------------------------------------------
   Impression : la fiche seule, sans menu ni pied de page
   -------------------------------------------------------------------------- */
@media print {
    .main-header, .sticky-header, .mobile-menu, .main-footer, .scroll-to-top,
    .fb-bandeau, .fb-infos__boutons, .fb-infos__video, .fb-onglets__nav,
    .fb-contact--visite, .fb-carte, .fb-estimation, .fb-videos, .fb-infos--mobile,
    [class^="webshopcontrol"] {
        display: none !important;
    }
    .fiche-bien .fb-onglets__section--cachee { display: block; }
    .fiche-bien .fb-colonnes { display: block; width: 100%; }
    .fiche-bien .fb-droite { padding: 0; }
    .fiche-bien .fb-galerie { margin-bottom: 30px; }
    .fiche-bien .fb-galerie__item--4 a[data-plus]::before { display: none; }
}
