/* ============================================
   TEMPLATE 2 - MINI-SITE AGENT
   Charte graphique 3G Immo
   ============================================ */

/* modif global */
#fisrtContaierFooter {
    margin-top: 0;
}

/* Variables statiques uniquement - les variables thème sont injectées par le Blade inline */
/* NOTE: --t2-accent, --t2-accent-dark, --t2-accent-shadow, --t2-accent-bg
   sont définis dans chaque Blade inline (couleur d'accent par site) */
:root {
    --t2-bg: #f5f7fa;
    --t2-white: #ffffff;
    --t2-text: #1a2b3c;
    --t2-text-light: #5a6b7c;
    --t2-border: #e2e8f0;
    --t2-radius: 12px;
    --t2-shadow: 0 4px 24px rgba(6, 70, 80, 0.08);
    --t2-shadow-hover: 0 8px 32px rgba(6, 70, 80, 0.14);
    --t2-transition: 0.25s ease;
    /* NOTE: Les variables suivantes sont définies dans le Blade inline (theme-aware) :
       --t2-hero-text, --t2-hero-text-muted, --t2-hero-text-shadow,
       --t2-location-bg, --t2-location-icon,
       --t2-card-bg, --t2-card-border, --t2-card-hover-border,
       --t2-cta-icon-opacity, --t2-estimation-bg, --t2-estimation-border,
       --t2-badge-bg, --t2-badge-bg-hover, --t2-badge-border */
}

.t2-page {
    background: var(--t2-bg);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--t2-text);
    line-height: 1.6;
}

/* Mode One-Page : toutes les sections visibles */
.t2-page--onepage .t2-section {
    display: block !important;
}

.t2-page--onepage .t2-section + .t2-section {
    padding-top: 60px;
    border-top: 1px solid var(--t2-border);
    margin-top: 40px;
}

.t2-page--onepage .t2-nav__tab {
    cursor: pointer;
}

.t2-page--onepage .t2-nav__tab.active {
    border-bottom-color: transparent;
}

/* --- HERO --- */
.t2-hero {
    padding: 120px 20px 44px;
    padding-left: max(20px, env(safe-area-inset-left));
    padding-right: max(20px, env(safe-area-inset-right));
    position: relative;
    overflow: hidden;
}

/* contenu */
.t2-hero__inner {
    position: relative;
    z-index: 2;
}

/* ============================================
   FORMES DECORATIVES DU HERO BANNER
   ============================================ */

/* --- Bulles subtiles (multiples petites bulles) --- */
.t2-hero__bubbles {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.t2-hero__bubble {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    animation: t2-bubble-float 8s ease-in-out infinite;
}

@keyframes t2-bubble-float {
    0%, 100% {
        transform: translateY(0) scale(1);
        opacity: 0.12;
    }
    50% {
        transform: translateY(-15px) scale(1.05);
        opacity: 0.2;
    }
}

/* Decorative floating shapes */
.t2-hero__shape {
    position: absolute;
    border-radius: 50%;
    opacity: 0.06;
    pointer-events: none;
}

.t2-hero__shape--1 {
    width: 400px;
    height: 400px;
    background: var(--t2-accent);
    top: -120px;
    right: -80px;
    animation: t2-float 8s ease-in-out infinite;
}

.t2-hero__shape--2 {
    width: 250px;
    height: 250px;
    background: var(--t2-white);
    bottom: -60px;
    left: -40px;
    animation: t2-float 10s ease-in-out infinite reverse;
}

@keyframes t2-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-18px); }
}

.t2-hero__waves,
.t2-hero__lines,
.t2-hero__dots,
.t2-hero__bubbles {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    pointer-events: none;
}

.t2-hero__waves,
.t2-hero__lines,
.t2-hero__dots,
.t2-hero__bubbles,
.t2-hero__gradient,
.t2-hero__noise {
    width: 100%;
    height: 100%;
}

/* Decorative floating shapes Waves - Ondes douces */
.t2-hero__waves span {
    position: absolute;
    border: 2px solid rgba(255,255,255,0.15);
    border-radius: 50%;
    width: 300px;
    height: 300px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0.1;
    animation: wavePulse 10s infinite ease-in-out;
    will-change: transform, opacity;
}

.t2-hero__waves span:nth-child(2) {
    width: 480px;
    height: 480px;
    animation-delay: 2s;
    opacity: 0.1;
}

.t2-hero__waves span:nth-child(3) {
    width: 650px;
    height: 650px;
    animation-delay: 4s;
    opacity: 0.1;
}

@keyframes wavePulse {
    0%, 100% {
        opacity: 0.1;
        transform: translate(-50%,-50%) scale(1);
    }
    50% {
        opacity: 0.15;
        transform: translate(-50%,-50%) scale(1.08);
    }
}

/* Decorative floating shapes noise - Grain subtil */
.t2-hero__noise {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
    opacity: 0.6;
    mix-blend-mode: overlay;
    pointer-events: none;
    animation: t2NoiseShift 0.4s steps(0) infinite;
}

@keyframes t2NoiseShift {
    0% { transform: translate(0, 0); }
    33% { transform: translate(1%, -1%); }
    66% { transform: translate(-1%, 1%); }
    100% { transform: translate(0, 0); }
}

/* Decorative floating shapes line - Lignes Flottantes */
.t2-hero__lines span {
    position: absolute;
    width: 200px;
    height: 2px;
    background: rgba(255,255,255,0.4);
    left: -25%;
    animation: t2LineFloat 18s linear infinite;
    pointer-events: none;
    will-change: transform;
}

/* Positions et timings varies pour chaque ligne */
.t2-hero__lines span:nth-child(1) { top: 18%; width: 180px; animation-duration: 22s; opacity: 0.5; }
.t2-hero__lines span:nth-child(2) { top: 38%; width: 240px; animation-duration: 16s; opacity: 0.7; }
.t2-hero__lines span:nth-child(3) { top: 55%; width: 160px; animation-duration: 25s; opacity: 0.45; }
.t2-hero__lines span:nth-child(4) { top: 72%; width: 200px; animation-duration: 19s; opacity: 0.6; }
.t2-hero__lines span:nth-child(5) { top: 28%; width: 220px; animation-duration: 28s; opacity: 0.4; }
.t2-hero__lines span:nth-child(6) { top: 85%; width: 150px; animation-duration: 21s; opacity: 0.55; }

@keyframes t2LineFloat {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(150vw);
    }
}

/* Decorative floating shapes dots - Point Lumineux */
.t2-hero__dots span {
    position: absolute;
    width: 8px;
    height: 8px;
    background: rgba(255,255,255,0.6);
    border-radius: 50%;
    animation: t2DotFloat 8s ease-in-out infinite;
    pointer-events: none;
    will-change: transform, opacity;
}

/* Positions pseudo-aleatoires pour chaque dot */
.t2-hero__dots span:nth-child(1) { top: 15%; left: 12%; width: 6px; height: 6px; animation-duration: 9s; opacity: 0.5; }
.t2-hero__dots span:nth-child(2) { top: 28%; left: 78%; width: 10px; height: 10px; animation-duration: 11s; opacity: 0.7; }
.t2-hero__dots span:nth-child(3) { top: 45%; left: 25%; width: 7px; height: 7px; animation-duration: 8s; opacity: 0.55; }
.t2-hero__dots span:nth-child(4) { top: 62%; left: 55%; width: 5px; height: 5px; animation-duration: 10s; opacity: 0.45; }
.t2-hero__dots span:nth-child(5) { top: 20%; left: 45%; width: 9px; height: 9px; animation-duration: 12s; opacity: 0.65; }
.t2-hero__dots span:nth-child(6) { top: 72%; left: 18%; width: 6px; height: 6px; animation-duration: 9s; opacity: 0.5; }
.t2-hero__dots span:nth-child(7) { top: 35%; left: 88%; width: 8px; height: 8px; animation-duration: 7s; opacity: 0.6; }
.t2-hero__dots span:nth-child(8) { top: 55%; left: 8%; width: 11px; height: 11px; animation-duration: 13s; opacity: 0.7; }
.t2-hero__dots span:nth-child(9) { top: 82%; left: 65%; width: 5px; height: 5px; animation-duration: 8s; opacity: 0.4; }
.t2-hero__dots span:nth-child(10) { top: 12%; left: 68%; width: 7px; height: 7px; animation-duration: 10s; opacity: 0.55; }
.t2-hero__dots span:nth-child(11) { top: 48%; left: 42%; width: 6px; height: 6px; animation-duration: 11s; opacity: 0.5; }
.t2-hero__dots span:nth-child(12) { top: 78%; left: 35%; width: 9px; height: 9px; animation-duration: 9s; opacity: 0.6; }

@keyframes t2DotFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-14px);
        opacity: 0.9;
    }
}

/* Decorative floating shapes gradient - Dégrader vivant */
.t2-hero__gradient {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(
        120deg,
        rgba(255,255,255,0.25),
        rgba(255,255,255,0.05) 50%,
        rgba(255,255,255,0.20)
    );
    background-size: 200% 200%;
    background-position: 50% 50%;
    animation: t2GradientMove 16s ease-in-out infinite;
    pointer-events: none;
    will-change: background-position;
}

@keyframes t2GradientMove {
    0%, 100% {
        background-position: 50% 50%;
    }
    25% {
        background-position: 0% 25%;
    }
    50% {
        background-position: 100% 75%;
    }
    75% {
        background-position: 25% 100%;
    }
}

/* Positions definies individuellement ci-dessus pour plus de variation */

/* ============================================
   BENTO GRID - HERO BANNER MODERNE
   Style: Luxury Tech / Apple-inspired
   ============================================ */

.t2-hero__container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
    z-index: 2;
}

/* --- BENTO GRID LAYOUT --- */
.t2-bento {
    display: grid;
    grid-template-columns: 325px 1fr 1fr;
    grid-template-rows: auto auto auto;
    gap: 16px;
    animation: t2-bento-reveal 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
    align-items: stretch;
}

@keyframes t2-bento-reveal {
    from {
        opacity: 0;
        transform: translateY(30px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* --- CARTE DE BASE --- */
/*
 * GLASSMORPHISM APPLE-STYLE - Paramètres ajustables:
 * ─────────────────────────────────────────────────
 * blur(Xpx)       → Intensité du flou (30-50px pour effet Apple)
 * saturate(X%)    → Boost des couleurs à travers le verre (150-200%)
 * brightness(X)   → Luminosité du verre (1.0-1.1)
 * card_bg         → Opacité fond blanc dans la palette (0.12-0.20)
 * card_border     → Bordure lumineuse (0.20-0.35)
 */
.t2-bento__card {
    /* Fond avec gradient subtil (plus clair en haut) */
    background: linear-gradient(
        165deg,
        rgba(255, 255, 255, 0.18) 0%,
        var(--t2-card-bg) 50%,
        rgba(255, 255, 255, 0.05) 100%
    );
    /* Effet glassmorphism Apple : blur + saturation + brightness */
    backdrop-filter: blur(40px) saturate(100%);
    -webkit-backdrop-filter: blur(40px) saturate(100%);
    border-radius: 24px;
    /* Bordure lumineuse */
    border: 1px solid var(--t2-card-border);
    /* Ombre externe + reflet interne (effet Apple) */
    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.12),
        0 2px 8px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -1px 0 rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                border-color 0.3s ease;
}

.t2-bento__card::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(
        135deg,
        rgba(0, 0, 0, 0.05) 0%,
        rgba(0, 0, 0, 0) 50%,
        rgba(0, 0, 0, 0.03) 100%
    );
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.t2-bento__card:hover {
    transform: translateY(-4px);
    border-color: var(--t2-card-hover-border);
}

.t2-bento__card:hover::before {
    opacity: 1;
}

/* --- CARTE PHOTO (grande, spans 3 rows) --- */
.t2-bento__card--photo {
    grid-row: 1 / 4;
    grid-column: 1;
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    animation-delay: 0.1s;
}

.t2-bento__photo-frame {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 340px;
    border-radius: 16px;
    overflow: hidden;
}

.t2-bento__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 16px;
    display: block;
    transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.t2-bento__card--photo:hover .t2-bento__photo {
    transform: scale(1.03);
}

/* .t2-bento__photo-shine {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(
        115deg,
        transparent 20%,
        rgba(255, 255, 255, 0.15) 40%,
        rgba(255, 255, 255, 0.3) 50%,
        rgba(255, 255, 255, 0.15) 60%,
        transparent 80%
    );
    transform: translateX(-100%);
    transition: transform 0.8s ease;
    pointer-events: none;
}

.t2-bento__card--photo:hover .t2-bento__photo-shine {
    transform: translateX(100%);
} */

/* --- CARTE IDENTITÉ (grande, spans 2 colonnes) --- */
.t2-bento__card--identity {
    grid-column: 2 / 4;
    grid-row: 1;
    padding: 28px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    animation-delay: 0.15s;
}

.t2-bento__identity-content {
    flex: 1;
}

.t2-bento__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    background: linear-gradient(135deg, var(--t2-accent), var(--t2-accent-dark));
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 30px;
    margin-bottom: 16px;
    box-shadow: 0 4px 15px rgba(var(--t2-accent-rgb), 0.3);
}

.t2-bento__badge i {
    font-size: 0.65rem;
}

.t2-bento__name {
    font-family: 'Satoshi', 'DM Sans', -apple-system, sans-serif;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 800;
    color: var(--t2-hero-text);
    text-shadow: var(--t2-hero-text-shadow);
    margin: 0 0 8px;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

/* Conteneur des badges (Agent immobilier + EI) */
.t2-bento__badges {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.t2-bento__badges .t2-bento__badge {
    margin-bottom: 0;
}

/* Badge EI (Entrepreneur Individuel) - Obligation juridique */
.t2-bento__ei-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--t2-ei-badge-text);
    background: var(--t2-ei-badge-bg);
    border-radius: 30px;
    cursor: help;
    position: relative;
    transition: all 0.25s ease;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.t2-bento__ei-badge:hover {
    background: var(--t2-ei-badge-bg-hover);
}

/* Tooltip moderne pour EI - Positionné à droite */
.t2-bento__ei-tooltip {
    position: absolute;
    top: 50%;
    left: calc(100% + 12px);
    transform: translateY(-50%) translateX(-6px);
    padding: 10px 16px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.3px;
    text-transform: none;
    white-space: nowrap;
    color: #fff;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.92) 0%, rgba(30, 30, 30, 0.92) 100%);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    z-index: 100;
}

/* Flèche du tooltip - Pointant vers la gauche */
.t2-bento__ei-tooltip::after {
    content: '';
    position: absolute;
    top: 50%;
    left: -7px;
    transform: translateY(-50%);
    border: 7px solid transparent;
    border-right-color: rgba(0, 0, 0, 0.92);
    border-left: none;
}

.t2-bento__ei-badge:hover .t2-bento__ei-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%) translateX(0);
}

.t2-bento__role {
    font-size: 0.01rem;
    color: var(--t2-hero-text-muted);
    margin: 0 0 12px;
    font-weight: 500;
}

.t2-bento__location {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: var(--t2-location-bg);
    border-radius: 30px;
    color: var(--t2-hero-text);
    font-size: 0.85rem;
    font-weight: 500;
}

.t2-bento__location i {
    color: var(--t2-location-icon);
    font-size: 0.8rem;
}

.t2-bento__identity-decor {
    position: absolute;
    right: -40px;
    top: -40px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(var(--t2-accent-rgb), 0.15) 0%, transparent 70%);
    pointer-events: none;
}

/* ============================================
   WIDGET IMMODVISOR HERO - BANDEAU INFORMATIF
   Design élégant adapté à tous les thèmes (bleu, vert, prestige)
   ============================================ */

.t2-bento__rating-widget {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 18px 22px;
    /* Fond semi-opaque adaptatif - plus lisible sur thèmes clairs */
    background: var(--t2-rating-bg, rgba(0, 0, 0, 0.35));
    backdrop-filter: blur(20px) saturate(100%);
    -webkit-backdrop-filter: blur(20px) saturate(100%);
    border-radius: 18px;
    border: 1px solid var(--t2-rating-border, rgba(255, 255, 255, 0.15));
    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    z-index: 5;
    min-width: 150px;
    /* Styles pour le lien cliquable */
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

/* Effet hover pour le widget cliquable */
.t2-bento__rating-widget:hover {
    transform: translateY(-3%) scale(1.03);
    box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
    border-color: var(--t2-rating-text, rgba(255, 255, 255, 0.3));
}

/* En-tête avec logo Immodvisor */
.t2-bento__rating-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--t2-rating-separator, rgba(255, 255, 255, 0.12));
    width: 100%;
}

.t2-bento__rating-logo {
    width: auto;
    height: 20px;
    object-fit: contain;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.15));
}

.t2-bento__rating-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--t2-rating-text, #ffffff);
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.9;
}

/* Section score principal */
.t2-bento__rating-score {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
}

.t2-bento__rating-number {
    font-size: 2.6rem;
    font-weight: 800;
    color: var(--t2-rating-text, #ffffff);
    line-height: 1;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.t2-bento__rating-separator {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--t2-rating-text, #ffffff);
    opacity: 0.6;
    margin-right: 8px;
}

/* Étoiles */
.t2-bento__rating-stars {
    display: flex;
    gap: 3px;
    font-size: 0.9rem;
}

.t2-bento__rating-stars .fa-star,
.t2-bento__rating-stars .fa-star-half-alt {
    color: #ffc107;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.25));
}

.t2-bento__rating-stars .far.fa-star {
    color: rgba(255, 255, 255, 0.3);
}

/* Compteur d'avis */
.t2-bento__rating-count {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    color: var(--t2-rating-text, #ffffff);
    font-weight: 600;
    padding-top: 10px;
    border-top: 1px solid var(--t2-rating-separator, rgba(255, 255, 255, 0.12));
    width: 100%;
    justify-content: center;
    opacity: 0.85;
}

.t2-bento__rating-count .fa-users {
    font-size: 0.75rem;
    opacity: 0.8;
}

/* ============================================
   RESPONSIVE - Widget Rating Immodvisor
   ============================================ */

/* Tablette / Écran moyen : widget en ligne */
@media (max-width: 1100px) {
    .t2-bento__rating-widget {
        position: relative;
        right: auto;
        top: auto;
        transform: none;
        margin-left: auto;
        flex-direction: row;
        align-items: center;
        gap: 14px;
        padding: 12px 18px;
        min-width: auto;
        border-radius: 14px;
    }

    .t2-bento__rating-widget:hover {
        transform: scale(1.03);
    }

    .t2-bento__rating-header {
        display: none;
    }

    .t2-bento__rating-score {
        flex-direction: row;
        align-items: baseline;
        gap: 4px;
    }

    .t2-bento__rating-number {
        font-size: 1.8rem;
    }

    .t2-bento__rating-separator {
        font-size: 0.9rem;
        margin-right: 6px;
    }

    .t2-bento__rating-stars {
        font-size: 0.8rem;
    }

    .t2-bento__rating-count {
        border-top: none;
        border-left: 1px solid var(--t2-rating-separator, rgba(255, 255, 255, 0.15));
        padding-top: 0;
        padding-left: 14px;
        width: auto;
    }
}

/* Mobile : widget centré sous les infos agent */
@media (max-width: 640px) {
    .t2-bento__card--identity {
        flex-direction: column;
    }

    .t2-bento__rating-widget {
        margin: 20px auto 0;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
        padding: 12px 18px;
        gap: 12px;
    }

    .t2-bento__rating-number {
        font-size: 1.4rem;
    }

    .t2-bento__rating-stars {
        font-size: 0.75rem;
    }

    .t2-bento__rating-count {
        font-size: 0.72rem;
        padding-left: 12px;
    }
}

/* --- CARTE CTA CONTACT --- */
.t2-bento__card--cta {
    grid-column: 2;
    grid-row: 2;
    padding: 0;
    animation-delay: 0.2s;
}

.t2-bento__cta-main {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    text-decoration: none;
    color: var(--t2-hero-text);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.t2-bento__cta-main::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(135deg, var(--t2-accent) 0%, var(--t2-accent-dark) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: -1;
}

.t2-bento__card--cta:hover .t2-bento__cta-main::after {
    opacity: var(--t2-cta-hover-bg-opacity, 1);
}

.t2-bento__cta-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--t2-location-bg);
    color: var(--t2-hero-text);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
    transition: transform 0.3s ease, background 0.3s ease;
}

.t2-bento__card--cta:hover .t2-bento__cta-icon {
    background: var(--t2-cta-hover-icon-bg, rgba(255, 255, 255, 0.3));
    transform: var(--t2-cta-hover-icon-transform, scale(1.05));
}

.t2-bento__cta-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.t2-bento__cta-label {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    flex: 1;
}

.t2-bento__cta-sub {
    font-size: 0.75rem;
    color: var(--t2-hero-text-muted);
    font-weight: 500;
}

.t2-bento__card--cta:hover .t2-bento__cta-sub {
    color: var(--t2-hero-text);
}

.t2-bento__cta-arrow {
    font-size: 1rem;
    opacity: var(--t2-cta-icon-opacity);
    transform: translateX(0);
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.t2-bento__card--cta:hover .t2-bento__cta-arrow {
    transform: translateX(5px);
    opacity: 1;
    color: var(--t2-cta-hover-arrow-color, inherit);
}

/* --- CARTE TÉLÉPHONE --- */
.t2-bento__card--phone {
    grid-column: 3;
    grid-row: 2;
    padding: 0;
    animation-delay: 0.25s;
}

.t2-bento__phone-btn {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
    padding: 20px 24px;
    text-decoration: none;
    color: var(--t2-hero-text);
    cursor: pointer;
    transition: all 0.3s ease;
}

.t2-bento__phone-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--t2-location-bg);
    color: var(--t2-hero-text);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.t2-bento__card--phone:hover .t2-bento__phone-icon {
    background: var(--t2-phone-hover-icon-bg, var(--t2-accent));
    transform: rotate(-10deg) scale(1.05);
}

.t2-bento__phone-number {
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    transition: color 0.3s ease;
}

.t2-bento__phone-btn.revealed .t2-bento__phone-number {
    color: var(--t2-hero-text);
    font-size: 1.15rem;
    letter-spacing: 0.5px;
}

.t2-bento__phone-arrow {
    margin-left: auto;
    font-size: 1rem;
    opacity: var(--t2-cta-icon-opacity);
    transition: all 0.3s ease;
}

.t2-bento__card--phone:hover .t2-bento__phone-arrow {
    opacity: 1;
    transform: scale(1.1);
    color: var(--t2-accent);
}

.t2-bento__phone-btn.revealed .t2-bento__phone-arrow {
    opacity: 0;
    width: 0;
    margin-left: 0;
    overflow: hidden;
}

/* --- CARTE TÉLÉPHONE DUO (transformation en 2 numéros au clic) --- */
.t2-bento__phone-btn--duo {
    cursor: pointer;
}

.t2-bento__phone-text {
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    transition: color 0.3s ease;
}

/* Conteneur des 2 numéros révélés (remplace le bouton) */
.t2-bento__phone-duo-revealed {
    display: flex;
    flex-direction: row;
    gap: 0;
    height: 100%;
}

.t2-bento__phone-duo-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    text-decoration: none;
    color: var(--t2-hero-text);
    flex: 1;
    transition: all 0.25s ease;
    cursor: default;
}

.t2-bento__phone-duo-item:first-child {
    border-right: 1px solid var(--t2-card-border);
}

.t2-bento__phone-duo-item:hover {
    background: rgba(255, 255, 255, 0.1);
    text-decoration: none;
}

/* Sur mobile, curseur pointer pour indiquer le lien cliquable */
@media (hover: none) and (pointer: coarse) {
    .t2-bento__phone-duo-item,
    .t2-nav__phone-item,
    .t2-contact__phone-line {
        cursor: pointer;
    }
    .t2-bento__phone-duo-item:hover {
        background: rgba(var(--t2-accent-rgb), 0.15);
    }
}

.t2-bento__phone-duo-item:hover .t2-bento__phone-duo-name {
    color: var(--t2-accent);
}

.t2-bento__phone-duo-name {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--t2-hero-text-muted);
}

.t2-bento__phone-duo-number {
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--t2-hero-text);
    letter-spacing: 0.5px;
}

/* --- CARTE ESTIMATION (avec glassmorphism Apple-style) --- */
.t2-bento__card--estimation {
    grid-column: 2;
    grid-row: 3;
    padding: 0;
    /* Fond glassmorphism multicouches */
    background:
        /* Reflet lumineux en haut */
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.2) 0%,
            transparent 30%
        ),
        /* Gradient principal de la palette */
        var(--t2-estimation-bg);
    /* Glassmorphism Apple */
    backdrop-filter: blur(40px) saturate(100%);
    -webkit-backdrop-filter: blur(40px) saturate(100%);
    border: 1.5px solid var(--t2-estimation-border);
    /* Ombres Apple-style */
    box-shadow:
        0 20px 40px -12px rgba(0, 0, 0, 0.15),
        0 8px 20px -8px rgba(0, 0, 0, 0.1),
        inset 0 1px 1px rgba(255, 255, 255, 0.25),
        inset 0 -1px 1px rgba(0, 0, 0, 0.05);
    animation-delay: 0.3s;
    transition:
        transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.3s ease;
}

.t2-bento__card--estimation:hover {
    border-color: var(--t2-card-hover-border);
    box-shadow:
        0 25px 50px -12px rgba(0, 0, 0, 0.2),
        0 12px 30px -8px rgba(0, 0, 0, 0.12),
        inset 0 1px 2px rgba(255, 255, 255, 0.3),
        inset 0 -1px 1px rgba(0, 0, 0, 0.05);
}

.t2-bento__estimation-btn {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 24px 28px;
    text-decoration: none;
    color: var(--t2-hero-text);
}

.t2-bento__estimation-visual {
    position: relative;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: var(--t2-estimation-button-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    color: #fff;
    flex-shrink: 0;
    box-shadow: 0 8px 25px var(--t2-estimation-button-box-shadow);
}
        
.t2-bento__estimation-pulse {
    position: absolute;
    inset: -4px;
    border-radius: 20px;
    border: 2px solid var(--t2-estimation-effet-color);
    opacity: 0.4;
    animation: t2-estimation-pulse 2s ease-in-out infinite;
}

@keyframes t2-estimation-pulse {
    0%, 100% { transform: scale(1); opacity: 0.4; }
    50% { transform: scale(1.15); opacity: 0; }
}

.t2-bento__estimation-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.t2-bento__estimation-title {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.t2-bento__estimation-sub {
    font-size: 0.82rem;
    color: var(--t2-hero-text-muted);
    font-weight: 500;
}

/* --- CARTE RÉSEAUX SOCIAUX --- */
.t2-bento__card--social {
    grid-column: 3;
    grid-row: 3;
    padding: 0;
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    animation-delay: 0.35s;
    overflow: hidden;
}

.t2-bento__social-links {
    display: flex;
    flex: 1;
    gap: 0;
    flex-wrap: nowrap;
}

.t2-bento__social-link {
    flex: 1;
    min-height: 80px;
    border-radius: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    color: var(--t2-hero-text);
    font-size: 1.4rem;
    text-decoration: none;
    transition: all 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    border: none;
    border-right: 1px solid rgba(255, 255, 255, 0.25);
}

.t2-bento__social-link:last-child {
    border-right: none;
}

/* Séparateur vertical subtil */
.t2-bento__social-link::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(180deg,
        rgba(255, 255, 255, 0.08) 0%,
        transparent 30%,
        transparent 70%,
        rgba(255, 255, 255, 0.05) 100%
    );
    opacity: 0;
    transition: opacity 0.3s ease;
}

.t2-bento__social-link:hover {
    transform: none;
    color: #fff;
}

.t2-bento__social-link:hover::before {
    opacity: 1;
}

.t2-bento__social-link:hover i,
.t2-bento__social-link:hover svg {
    transform: scale(1.2);
}

.t2-bento__social-link i,
.t2-bento__social-link svg {
    position: relative;
    z-index: 1;
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.t2-bento__social-link svg {
    width: 1em;
    height: 1em;
    fill: currentColor;
}

/* Couleurs au hover - remplissage complet */
.t2-bento__social-link--facebook:hover {
    background: linear-gradient(135deg, #1877f2 0%, #0d5fc7 100%);
}

.t2-bento__social-link--linkedin:hover {
    background: linear-gradient(135deg, #0a66c2 0%, #084d94 100%);
}

.t2-bento__social-link--instagram:hover {
    background: linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.t2-bento__social-link--twitter:hover {
    background: linear-gradient(135deg, #1a1a1a 0%, #000 100%);
}

.t2-bento__social-link--youtube:hover {
    background: linear-gradient(135deg, #ff0000 0%, #cc0000 100%);
}

.t2-bento__social-link--tiktok:hover {
    background: linear-gradient(135deg, #1a1a1a 0%, #000 100%);
}

/* --- ANIMATIONS D'ENTRÉE STAGGERÉES --- */
.t2-bento__card {
    animation: t2-card-appear 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes t2-card-appear {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.t2-bento__card--photo { animation-delay: 0.1s; }
.t2-bento__card--identity { animation-delay: 0.15s; }
.t2-bento__card--cta { animation-delay: 0.2s; }
.t2-bento__card--phone { animation-delay: 0.25s; }
.t2-bento__card--estimation { animation-delay: 0.3s; }
.t2-bento__card--social { animation-delay: 0.35s; }

/* --- BENTO GRID MODIFICATEURS (éléments optionnels masqués) --- */

/* Sans téléphone : CTA contact s'étend sur 2 colonnes */
.t2-bento--no-phone .t2-bento__card--cta {
    grid-column: 2 / 4;
}

/* Sans estimation : social s'étend sur 2 colonnes */
.t2-bento--no-estimation .t2-bento__card--social {
    grid-column: 2 / 4;
}

/* Sans social : estimation s'étend sur 2 colonnes */
.t2-bento--no-social .t2-bento__card--estimation {
    grid-column: 2 / 4;
}

/* Sans estimation ET sans social : grille compacte (2 rows) */
.t2-bento--no-estimation.t2-bento--no-social {
    grid-template-rows: auto auto;
}

.t2-bento--no-estimation.t2-bento--no-social .t2-bento__card--photo {
    grid-row: 1 / 3;
}

/* Sans téléphone ET sans estimation */
.t2-bento--no-phone.t2-bento--no-estimation .t2-bento__card--cta {
    grid-column: 2 / 4;
}

/* --- NAVBAR ONGLETS --- */
.t2-nav {
    background: var(--t2-white);
    border-top: 2px solid var(--t2-border);
    border-bottom: 1px solid var(--t2-border);
    position: -webkit-sticky;
    position: sticky;
    top: 90px;
    z-index: 99;
}

.t2-nav__inner {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    position: relative;
    gap: 0;
}

.t2-nav__tab {
    padding: 16px 28px;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--t2-text-light);
    cursor: pointer;
    border-bottom: 3px solid transparent;
    transition: all var(--t2-transition);
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    white-space: nowrap;
}

.t2-nav__tab:hover {
    color: var(--t2-primary);
}

.t2-nav__tab.active {
    color: var(--t2-primary);
    border-bottom-color: var(--t2-primary);
}

/* Photo agent dans la navbar (visible quand sticky) */
.t2-nav__agent-photo {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--t2-border);
    flex-shrink: 0;
}

/* Boutons d'action dans la navbar (visibles quand sticky) */
.t2-nav__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%) translateX(4px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.t2-nav--stuck .t2-nav__actions {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) translateX(0);
}

.t2-nav__action-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: all var(--t2-transition);
    white-space: nowrap;
    border: none;
    font-family: inherit;
}

.t2-nav__action-btn--contact {
    background: var(--t2-primary);
    color: var(--t2-white);
}

.t2-nav__action-btn--contact:hover {
    background: var(--t2-primary-dark);
    color: var(--t2-white);
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(6, 70, 80, 0.25);
}

.t2-nav__action-btn--tel {
    background: rgba(6, 70, 80, 0.08);
    color: var(--t2-btn-tel);
}

.t2-nav__action-btn--tel:hover {
    background: rgba(6, 70, 80, 0.14);
    color: var(--t2-primary);
    text-decoration: none;
    transform: translateY(-1px);
}

.t2-nav__action-btn--tel.revealed {
    pointer-events: auto;
    text-decoration: none;
}

.t2-nav__action-btn--tel.revealed span {
    letter-spacing: 0.3px;
}

/* Navbar téléphone DUO (dropdown) */
.t2-nav__phone-wrapper {
    height: 100%;
}

.t2-nav__phone-wrapper .t2-nav__action-btn--tel {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 100%;
}

.t2-nav__phone-arrow {
    font-size: 0.6rem;
    transition: transform 0.3s ease;
    margin-left: 2px;
}

.t2-nav__action-btn--tel[data-expanded="true"] .t2-nav__phone-arrow {
    transform: rotate(180deg);
}

.t2-nav__phone-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 220px;
    background: var(--t2-white);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1000;
}

.t2-nav__phone-dropdown.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.t2-nav__phone-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    text-decoration: none;
    color: var(--t2-text);
    border-bottom: 1px solid var(--t2-border);
    transition: all 0.2s ease;
}

.t2-nav__phone-item:last-child {
    border-bottom: none;
}

.t2-nav__phone-item:hover {
    background: linear-gradient(90deg, rgba(var(--t2-accent-rgb), 0.08) 0%, transparent 100%);
    text-decoration: none;
}

.t2-nav__phone-name {
    font-weight: 600;
    font-size: 0.8rem;
    color: var(--t2-primary);
}

.t2-nav__phone-number {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--t2-text);
    letter-spacing: 0.3px;
}

.t2-nav__action-btn--estimation {
    background: var(--t2-accent);
    color: var(--t2-primary-dark);
}

.t2-nav__action-btn--estimation:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(var(--t2-accent-rgb), 0.3);
    color: var(--t2-primary-dark);
    text-decoration: none;
}

.t2-nav__action-btn i {
    font-size: 0.7rem;
}

.t2-nav__tab .t2-badge {
    display: inline-block;
    background: var(--t2-primary);
    color: var(--t2-white);
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    margin-left: 6px;
    vertical-align: middle;
}

/* --- SECTIONS CONTENU --- */
.t2-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.t2-section {
    display: none;
    padding: 40px 0;
}

.t2-section.active {
    display: block;
}

.t2-section__title {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--t2-text);
    margin: 0 0 8px;
}

.t2-section__subtitle {
    font-size: 0.9rem;
    color: var(--t2-text-light);
    margin: 0 0 30px;
}

/* --- SOUS-SECTIONS --- */
.t2-subsection {
    margin-bottom: 50px;
}

.t2-subsection:last-child {
    margin-bottom: 0;
}

/* Header de sous-section (icône + titre) */
.t2-subsection__header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
    padding: 14px 20px;
    border-radius: var(--t2-radius);
    border-left: 4px solid;
}

.t2-subsection__header-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

.t2-subsection__title {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0;
    letter-spacing: -0.01em;
}

.t2-subsection__title .t2-subsection__title__badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    margin-left: 8px;
    vertical-align: middle;
}

/* --- Variante VENTE : couleur adaptée au thème --- */
.t2-subsection__header--vente {
    background: var(--t2-badge-bg);
    border-left-color: var(--t2-primary);
}

.t2-subsection__header--vente .t2-subsection__header-icon {
    background: var(--t2-bienenvente-icon-bg-color);
    color: var(--t2-primary);
}

.t2-subsection__header--vente .t2-subsection__title {
    color: var(--t2-text-light);
}

.t2-subsection__header--vente .t2-subsection__title__badge {
    background: var(--t2-primary);
    color: var(--t2-white);
}

/* --- Variante VENDU : accent rouge sobre --- */
.t2-subsection__header--vendu {
    background: linear-gradient(135deg, rgba(185, 28, 28, 0.06) 0%, rgba(185, 28, 28, 0.02) 100%);
    border-left-color: #b91c1c;
}

.t2-subsection__header--vendu .t2-subsection__header-icon {
    background: linear-gradient(135deg, rgba(185, 28, 28, 0.12), rgba(185, 28, 28, 0.06));
    color: #b91c1c;
}

.t2-subsection__header--vendu .t2-subsection__title {
    color: var(--t2-text-light);
}

.t2-subsection__header--vendu .t2-subsection__title__badge {
    background: #b91c1c;
    color: var(--t2-white);
}

/* --- GRILLE DE BIENS --- */
.t2-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 24px;
}

/* Mode 2 colonnes - cartes plus grandes */
.t2-grid--2-cols {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}

.t2-grid--2-cols .t2-card__carousel,
.t2-grid--2-cols .t2-card__carousel .swiper-slide img {
    height: 420px;
}

.t2-grid--2-cols .t2-card__body {
    padding: 20px 24px;
    gap: 6px;
}

.t2-grid--2-cols .t2-card__type {
    font-size: 1rem;
}

.t2-grid--2-cols .t2-card__price {
    font-size: 1.3rem;
}

.t2-grid--2-cols .t2-card__location {
    font-size: 0.95rem;
}

.t2-grid--2-cols .t2-card__features {
    gap: 16px;
}

.t2-grid--2-cols .t2-card__feature {
    font-size: 0.9rem;
    padding: 6px 12px;
}

/* Responsive mode 2 colonnes */
@media (max-width: 900px) {
    .t2-grid--2-cols {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    /* .t2-grid--2-cols .t2-card__carousel {
        height: 240px;
    } */
}

/* --- CARTE BIEN --- */
.t2-card {
    background: var(--t2-white);
    border-radius: var(--t2-radius);
    overflow: hidden;
    box-shadow: var(--t2-shadow);
    transition: box-shadow var(--t2-transition), transform var(--t2-transition);
    cursor: pointer;
}

.t2-card:hover {
    box-shadow: var(--t2-shadow-hover);
    transform: translateY(-3px);
}

/* Carousel dans la carte */
.t2-card__carousel {
    position: relative;
    height: 280px;
    overflow: hidden;
}

/* Images des cartes vendues - optimisation lazy loading */
.t2-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.t2-card__img--lazy {
    opacity: 0;
    transition: opacity 0.3s ease;
}

.t2-card__img--lazy.loaded {
    opacity: 1;
}

.t2-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
}

.t2-card__placeholder i {
    font-size: 3rem;
    color: #ccc;
}

.t2-card__carousel .swiper {
    width: 100%;
    height: 100%;
}

.t2-card__carousel .swiper-slide img {
    width: 100%;
    height: 280px;
    object-fit: cover;
}

.t2-card__carousel .swiper-pagination {
    bottom: 10px;
    z-index: 4;
    transition: bottom 0.3s ease;
}


.t2-card__carousel .swiper-pagination-bullet {
    background: var(--t2-white);
    opacity: 0.5;
    width: 7px;
    height: 7px;
    transition: opacity 0.2s, transform 0.2s;
    cursor: pointer;
}

.t2-card__carousel .swiper-pagination-bullet-active {
    background: var(--t2-white);
    opacity: 1;
    transform: scale(1.3);
}

/* Swiper lazy loading preloader */
.swiper-lazy-preloader {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 30px;
    height: 30px;
    margin-left: -15px;
    margin-top: -15px;
    border: 3px solid var(--t2-border);
    border-top-color: var(--t2-primary);
    border-radius: 50%;
    animation: t2-spin 0.8s linear infinite;
    z-index: 10;
}

.swiper-lazy {
    opacity: 0;
    transition: opacity 0.3s ease;
}

.swiper-lazy.swiper-lazy-loaded {
    opacity: 1;
}

.t2-card__carousel .swiper-button-next,
.t2-card__carousel .swiper-button-prev {
    color: var(--t2-white);
    width: 32px;
    height: 32px;
    background: rgba(0,0,0,0.35);
    border-radius: 50%;
    opacity: 0;
    transition: opacity 0.2s, background 0.2s;
}

.t2-card__carousel .swiper-button-next::after,
.t2-card__carousel .swiper-button-prev::after {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--t2-white);
    border-right: 2px solid var(--t2-white);
    position: absolute;
}

.t2-card__carousel .swiper-button-next::after {
    transform: rotate(45deg);
    margin-left: -2px;
}

.t2-card__carousel .swiper-button-prev::after {
    transform: rotate(-135deg);
    margin-right: -2px;
}

.t2-card:hover .swiper-button-next,
.t2-card:hover .swiper-button-prev {
    opacity: 1;
}

.t2-card__carousel .swiper-button-next:hover,
.t2-card__carousel .swiper-button-prev:hover {
    background: rgba(0,0,0,0.5);
}


.t2-card__accroche {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.t2-card__accroche .ban {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 6px;
    color: var(--t2-white);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 4px;
    text-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

.t2-card__accroche .ban .C_SVG { display: none; }

/* Couleurs par type de badge */
.t2-card__accroche .ban.nouveaute {
    background: linear-gradient(135deg, #10b981, #059669);
}
.t2-card__accroche .ban.coup_de_coeur {
    background: linear-gradient(135deg, #ef4444, #dc2626);
}
.t2-card__accroche .ban.exclu {
    background: linear-gradient(135deg, #f59e0b, #d97706);
}
.t2-card__accroche .ban.sousCompromis {
    background: linear-gradient(135deg, #f97316, #ea580c);
}
.t2-card__accroche .ban.BaisseDePrix {
    background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}
.t2-card__accroche .ban.FraisDeNotaireReduit {
    background: linear-gradient(135deg, #3b82f6, #2563eb);
}
.t2-card__accroche .ban.EnsembleImmobilier {
    background: linear-gradient(135deg, #6366f1, #4f46e5);
}
.t2-card__accroche .ban.NuePropriete {
    background: linear-gradient(135deg, #14b8a6, #0d9488);
}
.t2-card__accroche .ban.SousOffreDachat {
    background: linear-gradient(135deg, #e11d48, #be123c);
}
.t2-card__accroche .ban.PrixPromoteur {
    background: linear-gradient(135deg, #0ea5e9, #0284c7);
}
.t2-card__accroche .ban.Reserve {
    background: linear-gradient(135deg, #f97316, #ea580c);
}
.t2-card__accroche .ban.Aloue {
    background: linear-gradient(135deg, #6366f1, #4f46e5);
}
.t2-card__accroche .ban.VenteATerme {
    background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}
.t2-card__accroche .ban.ViagerLibre {
    background: linear-gradient(135deg, #14b8a6, #0d9488);
}
.t2-card__accroche .ban.ViagerOcuppe {
    background: linear-gradient(135deg, #0d9488, #0f766e);
}
.t2-card__accroche .ban.Neuf {
    background: linear-gradient(135deg, #10b981, #059669);
}
.t2-card__accroche .ban.ProgrammeNeuf {
    background: linear-gradient(135deg, #059669, #047857);
}

/* --- BADGES LIENS INTERACTIFS (visite virtuelle, plan, etc.) --- */
.t2-card__links {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}

.t2-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 6px 10px;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--t2-white);
    text-decoration: none;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.t2-card__link:hover {
    transform: scale(1.05);
    text-decoration: none;
    color: var(--t2-white);
}

.t2-card__link i {
    font-size: 0.75rem;
}

.t2-card__link span {
    display: inline-block;
    max-width: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-width 0.3s ease, opacity 0.2s ease, margin 0.3s ease;
    margin-left: 0;
}

.t2-card__link:hover span {
    max-width: 80px;
    opacity: 1;
    margin-left: 6px;
}

/* Couleurs par type de lien */
.t2-card__link--visite3d {
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.9), rgba(79, 70, 229, 0.9));
}
.t2-card__link--visite3d:hover {
    background: linear-gradient(135deg, #6366f1, #4f46e5);
    box-shadow: 0 4px 14px rgba(99, 102, 241, 0.4);
}

.t2-card__link--video {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.9), rgba(220, 38, 38, 0.9));
}
.t2-card__link--video:hover {
    background: linear-gradient(135deg, #ef4444, #dc2626);
    box-shadow: 0 4px 14px rgba(239, 68, 68, 0.4);
}

.t2-card__link--panorama {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.9), rgba(5, 150, 105, 0.9));
}
.t2-card__link--panorama:hover {
    background: linear-gradient(135deg, #10b981, #059669);
    box-shadow: 0 4px 14px rgba(16, 185, 129, 0.4);
}

.t2-card__link--vr360 {
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.9), rgba(124, 58, 237, 0.9));
}
.t2-card__link--vr360:hover {
    background: linear-gradient(135deg, #8b5cf6, #7c3aed);
    box-shadow: 0 4px 14px rgba(139, 92, 246, 0.4);
}

.t2-card__link--plan {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.9), rgba(37, 99, 235, 0.9));
}
.t2-card__link--plan:hover {
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    box-shadow: 0 4px 14px rgba(59, 130, 246, 0.4);
}

.t2-card__link--rdv {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.9), rgba(217, 119, 6, 0.9));
}
.t2-card__link--rdv:hover {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    box-shadow: 0 4px 14px rgba(245, 158, 11, 0.4);
}

.t2-card__link--avantapres {
    background: linear-gradient(135deg, rgba(236, 72, 153, 0.9), rgba(219, 39, 119, 0.9));
}
.t2-card__link--avantapres:hover {
    background: linear-gradient(135deg, #ec4899, #db2777);
    box-shadow: 0 4px 14px rgba(236, 72, 153, 0.4);
}

.t2-card__link--homestaging {
    background: linear-gradient(135deg, rgba(20, 184, 166, 0.9), rgba(13, 148, 136, 0.9));
}
.t2-card__link--homestaging:hover {
    background: linear-gradient(135deg, #14b8a6, #0d9488);
    box-shadow: 0 4px 14px rgba(20, 184, 166, 0.4);
}

.t2-card__link--plaquette {
    background: linear-gradient(135deg, rgba(107, 114, 128, 0.9), rgba(75, 85, 99, 0.9));
}
.t2-card__link--plaquette:hover {
    background: linear-gradient(135deg, #6b7280, #4b5563);
    box-shadow: 0 4px 14px rgba(107, 114, 128, 0.4);
}

/* Version mobile : badges en ligne, plus compacts */
@media (max-width: 768px) {
    .t2-card__links {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 4px;
        max-width: calc(100% - 20px);
        justify-content: flex-end;
    }

    .t2-card__link {
        padding: 5px 8px;
        font-size: 0.65rem;
    }

    .t2-card__link span {
        display: none;
    }

    .t2-card__link i {
        font-size: 0.7rem;
    }
}

.t2-card__body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Header : Type + Prix sur une ligne */
.t2-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.t2-card__type {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--t2-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0;
    line-height: 1.3;
}

.t2-card__price {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--t2-text);
    margin: 0;
    white-space: nowrap;
    flex-shrink: 0;
}

.t2-card__location {
    font-size: 0.8rem;
    color: var(--t2-text-light);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.t2-card__location i {
    color: var(--t2-primary);
    font-size: 0.7rem;
    opacity: 0.7;
}

/* Caractéristiques dans le body */
.t2-card__features {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--t2-border);
}

.t2-card__feature {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.06) 0%, rgba(var(--t2-accent-rgb), 0.06) 100%);
    border-radius: 6px;
    font-size: 0.75rem;
    color: var(--t2-text-light);
    transition: all 0.2s ease;
}

.t2-card:hover .t2-card__feature {
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.1) 0%, rgba(var(--t2-accent-rgb), 0.1) 100%);
}

.t2-card__feature i {
    font-size: 0.7rem;
    color: var(--t2-primary);
    opacity: 0.8;
}

.t2-card__feature strong {
    font-weight: 700;
    color: var(--t2-text);
}

/* Terrain avec style légèrement différent */
.t2-card__feature--terrain {
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.06) 0%, rgba(var(--t2-accent-rgb), 0.06) 100%);
}

.t2-card__feature--terrain i {
    color: var(--t2-primary);
}

.t2-card:hover .t2-card__feature--terrain {
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.1) 0%, rgba(var(--t2-accent-rgb), 0.1) 100%);
}

/* --- SECTION PRESENTATION --- */
.t2-presentation {
    display: block;
}

.t2-presentation--two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}

.t2-presentation__bio {
    font-size: 0.9rem;
    color: var(--t2-text-light);
    line-height: 1.8;
}

.t2-presentation__bio-text--truncated {
    max-height: var(--bio-max-height, 200px);
    overflow: hidden;
    transition: max-height 0.4s ease;
}

.t2-presentation__bio-text--truncated.expanded {
    max-height: 2000px;
}

.t2-presentation__bio-toggle {
    background: none;
    border: none;
    color: var(--t2-primary);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    padding: 10px 0 0;
    font-family: inherit;
}

.t2-presentation__bio-toggle i {
    transition: transform 0.3s ease;
    margin-left: 4px;
}

.t2-presentation__bio-toggle.expanded i {
    transform: rotate(180deg);
}

.t2-presentation__videos {
    position: relative;
}

.t2-presentation__video-single {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    border-radius: 12px;
    overflow: hidden;
    background: #000;
    box-shadow: var(--t2-shadow);
}

.t2-presentation__video-single iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Video facade (lazy load) */
.t2-video-facade {
    cursor: pointer;
    background-color: #000;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.t2-video-facade__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 2;
    transition: transform 0.2s ease, filter 0.2s ease;
}

.t2-video-facade:hover .t2-video-facade__play {
    transform: translate(-50%, -50%) scale(1.1);
}

.t2-video-facade__play-bg {
    transition: fill 0.2s ease, fill-opacity 0.2s ease;
}

.t2-video-facade:hover .t2-video-facade__play-bg {
    fill: #f00;
    fill-opacity: 1;
}

.t2-video-facade--loaded {
    cursor: default;
}

.t2-video-facade--loaded .t2-video-facade__play {
    display: none;
}

.t2-presentation__swiper-wrap {
    position: relative;
}

.t2-presentation__swiper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    border-radius: 12px;
    overflow: hidden;
    background: #000;
    box-shadow: var(--t2-shadow);
}

.t2-presentation__swiper .swiper-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.t2-presentation__swiper .swiper-slide {
    width: 100% !important;
    height: 100% !important;
}

.t2-presentation__video-item {
    width: 100%;
    height: 100%;
}

.t2-presentation__video-item iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* Pagination sous la video */
.t2-presentation__pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
}

.t2-presentation__pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: var(--t2-border);
    opacity: 1;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
}

.t2-presentation__pagination .swiper-pagination-bullet-active {
    background: var(--t2-primary);
    transform: scale(1.2);
}

/* --- SECTION CONTACT --- */
.t2-contact {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.t2-contact__info h3 {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0 0 20px;
    color: var(--t2-text);
}

.t2-contact__detail {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
}

.t2-contact__detail i {
    color: var(--t2-primary);
    font-size: 1.1rem;
    margin-top: 3px;
    width: 20px;
    text-align: center;
}

.t2-contact__detail span {
    font-size: 0.9rem;
    color: var(--t2-text);
}

/* Contact téléphone DUO (deux lignes avec prénoms) */
.t2-contact__detail--phone-duo {
    align-items: flex-start;
}

.t2-contact__detail--phone-duo i {
    margin-top: 8px;
}

.t2-contact__phones {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.t2-contact__phone-line {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.04) 0%, rgba(6, 70, 80, 0.02) 100%);
    border-radius: 10px;
    text-decoration: none;
    transition: all 0.25s ease;
    border: 1px solid transparent;
}

.t2-contact__phone-line:hover {
    background: linear-gradient(135deg, rgba(var(--t2-accent-rgb), 0.1) 0%, rgba(var(--t2-accent-rgb), 0.05) 100%);
    border-color: rgba(var(--t2-accent-rgb), 0.2);
    text-decoration: none;
    transform: translateX(4px);
}

.t2-contact__phone-name {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--t2-primary);
    min-width: 70px;
}

.t2-contact__phone-number {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--t2-text);
    letter-spacing: 0.5px;
}

.t2-contact__social {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--t2-border);
}

.t2-contact__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    color: var(--t2-white);
    font-size: 1rem;
    transition: all var(--t2-transition);
    text-decoration: none;
}

.t2-contact__social-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    text-decoration: none;
    color: var(--t2-white);
}

.t2-contact__social-link--facebook { background: #1877F2; }
.t2-contact__social-link--linkedin { background: #0A66C2; }
.t2-contact__social-link--instagram { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
.t2-contact__social-link--twitter { background: #000000; }
.t2-contact__social-link--youtube { background: #FF0000; }
.t2-contact__social-link--tiktok { background: #000000; }

/* Bloc engagements / réassurance */
.t2-contact__commitments {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--t2-border);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.t2-contact__commitment {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    background: var(--t2-bg);
    border-radius: 12px;
    transition: all var(--t2-transition);
}

.t2-contact__commitment:hover {
    background: var(--t2-white);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.t2-contact__commitment-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--t2-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.t2-contact__commitment-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.t2-contact__commitment-text strong {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--t2-text);
}

.t2-contact__commitment-text span {
    font-size: 0.75rem;
    color: var(--t2-text-light);
    line-height: 1.4;
}

@media (max-width: 640px) {
    .t2-contact__commitments {
        grid-template-columns: 1fr;
    }
}

.t2-contact__form {
    background: var(--t2-white);
    border-radius: var(--t2-radius);
    padding: 30px;
    box-shadow: var(--t2-shadow);
    position: relative;
    align-self: flex-start;
    margin-top: -100px;
}

.t2-contact__form h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 20px;
    color: var(--t2-text);
}

/* Carte de localisation */
.t2-contact__map-section {
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid var(--t2-border);
}

.t2-contact__map-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--t2-text);
    margin: 0 0 20px;
}

.t2-contact__map-title i {
    color: var(--t2-primary);
}

.t2-contact__map-container {
    border-radius: var(--t2-radius);
    overflow: hidden;
    box-shadow: var(--t2-shadow);
    width: 100%;
    height: 380px;
}

#t2-agent-map {
    width: 100%;
    height: 100%;
    z-index: 98;
}

.t2-form-group {
    margin-bottom: 16px;
}

.t2-form-group label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--t2-text-light);
    margin-bottom: 6px;
}

.t2-form-group input,
.t2-form-group textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--t2-border);
    border-radius: 8px;
    font-size: 0.9rem;
    transition: border-color var(--t2-transition);
    box-sizing: border-box;
    font-family: inherit;
}

.t2-form-group input:focus,
.t2-form-group textarea:focus {
    outline: none;
    border-color: var(--t2-primary);
}

.imdw-rating .imdw-rating-widget.imdw-hide-modal {
    z-index: 99;
}

.t2-form-group textarea {
    resize: vertical;
    min-height: 100px;
}

.t2-btn {
    display: inline-block;
    padding: 12px 32px;
    background: var(--t2-primary);
    color: var(--t2-white);
    border: none;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--t2-transition);
    width: 100%;
    text-align: center;
}

.t2-btn:hover {
    background: var(--t2-primary-dark);
}

/* --- SECTION AVIS --- */
.t2-avis__widget {
    background: var(--t2-white);
    border-radius: var(--t2-radius);
    padding: 30px;
    box-shadow: var(--t2-shadow);
    position: relative;
    min-height: 120px;
}

.t2-avis__loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 30px 0;
    color: var(--t2-text-light);
    font-size: 0.85rem;
}

.t2-avis__loader-spinner {
    width: 20px;
    height: 20px;
    border: 2.5px solid var(--t2-border);
    border-top-color: var(--t2-primary);
    border-radius: 50%;
    animation: t2-spin 0.7s linear infinite;
}

@keyframes t2-spin {
    to { transform: rotate(360deg); }
}

/* --- SOUS-SECTIONS AVIS --- */
.t2-avis__subsection {
    margin-bottom: 40px;
}

.t2-avis__subsection:last-child {
    margin-bottom: 0;
}

.t2-avis__header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--t2-border);
}

.t2-avis__logo {
    height: 24px;
    width: auto;
}

.t2-avis__logo--immodvisor {
    height: 60px;
    width: auto;
}

.t2-avis__logo--google {
    height: 24px;
}

.t2-avis__source-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--t2-text-light);
    padding: 4px 12px;
    background: var(--t2-bg);
    border-radius: 20px;
}

/* Header Google redessiné */
.t2-avis__header--google {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}

.t2-avis__header-badge {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--t2-primary) 0%, var(--t2-primary-dark) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(6, 70, 80, 0.2);
}

.t2-avis__header-badge i {
    font-size: 1.4rem;
    color: var(--t2-white);
}

.t2-avis__header-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.t2-avis__source-title {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--t2-text-light);
    padding: 4px 12px;
}

.t2-avis__header--google .t2-avis__source-label {
    padding: 0;
    background: none;
    font-size: 0.82rem;
    font-weight: 500;
}

/* ============================================
   AVIS GOOGLE - Design harmonisé avec le template
   ============================================ */

.t2-avis__subsection--google {
    margin-top: 48px;
    padding-top: 40px;
}

.t2-avis__subsection--google-nomarge {
    margin-top: 0;
    padding-top: 0;
}

.t2-avis__google-container {
    position: relative;
    min-height: 120px;
}

.t2-avis__google-list {
    position: relative;
    padding: 0 56px;
}

.t2-avis__google-swiper {
    overflow: hidden;
    padding: 20px 4px 24px;
}

.t2-avis__google-swiper .swiper-wrapper {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
}

.t2-avis__google-swiper .swiper-slide {
    height: auto !important;
    flex-shrink: 0;
}

/* --- Carte d'avis Google --- */
.t2-avis__google-card {
    background: var(--t2-white);
    border-radius: var(--t2-radius);
    padding: 0;
    box-shadow: var(--t2-shadow);
    min-height: 220px;
    display: flex;
    flex-direction: column;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    border: 1px solid var(--t2-border);
    position: relative;
}

.t2-avis__google-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--t2-primary) 0%, var(--t2-accent) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.t2-avis__google-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--t2-shadow-hover);
    border-color: rgba(6, 70, 80, 0.15);
}

.t2-avis__google-card:hover::before {
    opacity: 1;
}

/* En-tête harmonisé */
.t2-avis__google-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 20px 16px;
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.02) 0%, rgba(var(--t2-accent-rgb), 0.02) 100%);
    border-bottom: 1px solid var(--t2-border);
}

/* Avatar avec initiale - palette du template */
.t2-avis__google-avatar {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: linear-gradient(145deg, var(--t2-primary) 0%, var(--t2-primary-dark) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--t2-white);
    font-size: 1.3rem;
    font-weight: 700;
    flex-shrink: 0;
    text-transform: uppercase;
    box-shadow: 0 4px 12px rgba(6, 70, 80, 0.25);
    letter-spacing: -0.5px;
    position: relative;
}

/* Infos utilisateur */
.t2-avis__google-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.t2-avis__google-name {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--t2-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

.t2-avis__google-date {
    font-size: 0.78rem;
    color: var(--t2-text-light);
    display: flex;
    align-items: center;
    gap: 6px;
}

.t2-avis__google-date::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 4px;
    background: var(--t2-accent);
    border-radius: 50%;
}

/* Note et étoiles */
.t2-avis__google-rating {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.02) 0%, transparent 100%);
}

.t2-avis__google-stars {
    display: flex;
    gap: 3px;
}

.t2-avis__google-stars i {
    color: #f5b400;
    font-size: 1rem;
    filter: drop-shadow(0 1px 2px rgba(245, 180, 0, 0.25));
}

.t2-avis__google-stars i.far {
    color: var(--t2-border);
    filter: none;
}

.t2-avis__google-rating-value {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--t2-white);
    background: var(--t2-primary);
    padding: 4px 12px;
    border-radius: 20px;
    margin-left: auto;
}

/* Contenu de l'avis */
.t2-avis__google-content {
    padding: 0 20px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.t2-avis__google-text {
    font-size: 0.9rem;
    color: var(--t2-text-light);
    margin: 0;
}

.t2-avis__google-text--clamped {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Bouton Lire plus */
.t2-avis__google-readmore {
    background: none;
    border: none;
    color: var(--t2-primary);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    padding: 10px 0 0;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
}

.t2-avis__google-readmore:hover {
    color: var(--t2-primary-dark);
}

.t2-avis__google-readmore::after {
    content: '→';
    font-size: 1rem;
    transition: transform 0.2s ease;
}

.t2-avis__google-readmore:hover::after {
    transform: translateX(4px);
}

/* Réponse du propriétaire */
.t2-avis__google-answer {
    margin: 0 20px 20px;
    padding: 16px;
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.04) 0%, rgba(6, 70, 80, 0.02) 100%);
    border-radius: 12px;
    border-left: 3px solid var(--t2-primary);
    position: relative;
}

.t2-avis__google-answer::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 20px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 8px solid rgba(6, 70, 80, 0.04);
}

.t2-avis__google-answer-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 0.78rem;
    color: var(--t2-primary);
    font-weight: 600;
}

.t2-avis__google-answer-header i {
    font-size: 0.9rem;
    opacity: 0.8;
}

.t2-avis__google-answer-header span {
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.t2-avis__google-answer-date {
    margin-left: auto;
    font-weight: 400;
    color: var(--t2-text-light);
    text-transform: none;
}

.t2-avis__google-answer-text {
    font-size: 0.85rem;
    color: var(--t2-text);
    line-height: 1.6;
    margin: 0;
    font-style: italic;
}

.t2-avis__google-answer-text--clamped {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.t2-avis__google-answer-readmore {
    background: none;
    border: none;
    color: var(--t2-primary);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    padding: 6px 0 0;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
}

.t2-avis__google-answer-readmore:hover {
    color: var(--t2-primary-dark);
}

.t2-avis__google-answer-readmore::after {
    content: '→';
    font-size: 0.9rem;
    transition: transform 0.2s ease;
}

.t2-avis__google-answer-readmore:hover::after {
    transform: translateX(4px);
}

/* Navigation Swiper */
.t2-avis__google-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    background: var(--t2-white);
    border-radius: 50%;
    box-shadow: var(--t2-shadow);
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--t2-border);
}

.t2-avis__google-nav:hover {
    background: var(--t2-primary);
    box-shadow: 0 6px 24px rgba(6, 70, 80, 0.35);
    transform: translateY(-50%) scale(1.08);
}

.t2-avis__google-nav:hover::after {
    border-color: var(--t2-white);
}

.t2-avis__google-nav--prev {
    left: 0;
}

.t2-avis__google-nav--next {
    right: 0;
}

.t2-avis__google-nav::after {
    content: '';
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--t2-text);
    border-right: 2px solid var(--t2-text);
    transition: border-color 0.2s ease;
}

.t2-avis__google-nav--prev::after {
    transform: rotate(-135deg);
    margin-left: 4px;
}

.t2-avis__google-nav--next::after {
    transform: rotate(45deg);
    margin-right: 4px;
}

.t2-avis__google-nav.swiper-button-disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
}

/* Pagination */
.t2-avis__google-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background: var(--t2-border);
    opacity: 1;
    transition: all 0.25s ease;
    margin: 0 5px !important;
}

.t2-avis__google-pagination .swiper-pagination-bullet-active {
    background: var(--t2-primary);
    /* transform: scale(1.3); */
    width: 24px;
    border-radius: 4px;
}

/* Message si aucun avis */
.t2-avis__google-empty {
    text-align: center;
    padding: 50px 20px;
    color: var(--t2-text-light);
    background: linear-gradient(135deg, rgba(6, 70, 80, 0.02) 0%, rgba(var(--t2-accent-rgb), 0.02) 100%);
    border-radius: var(--t2-radius);
    border: 1px dashed var(--t2-border);
}

.t2-avis__google-empty i {
    font-size: 2.5rem;
    margin-bottom: 16px;
    display: block;
    color: var(--t2-primary);
    opacity: 0.3;
}

.t2-avis__google-empty p {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 500;
}

/* ============================================
   RESPONSIVE AVIS GOOGLE
   ============================================ */

@media (max-width: 1024px) {
    .t2-avis__google-list {
        padding: 0 48px;
    }
}

@media (max-width: 768px) {
    .t2-avis__google-list {
        padding: 0 12px;
    }

    .t2-avis__google-nav {
        display: none;
    }

    .t2-avis__google-card {
        min-height: 260px;
    }

    .t2-avis__google-header {
        padding: 16px 16px 14px;
    }

    .t2-avis__google-avatar {
        width: 44px;
        height: 44px;
        font-size: 1.1rem;
    }

    .t2-avis__google-rating {
        padding: 12px 16px;
    }

    .t2-avis__google-content {
        padding: 0 16px 16px;
    }

    .t2-avis__google-answer {
        margin: 0 16px 16px;
        padding: 14px;
    }

    .t2-avis__header {
        flex-wrap: wrap;
        gap: 10px;
    }

    .t2-avis__header--google {
        gap: 12px;
    }

    .t2-avis__header-badge {
        width: 40px;
        height: 40px;
        border-radius: 10px;
    }

    .t2-avis__header-badge i {
        font-size: 1.2rem;
    }

    .t2-avis__source-title {
        font-size: 1rem;
    }

    .t2-avis__subsection--google {
        margin-top: 32px;
        padding-top: 24px;
    }

    .t2-avis__google-swiper {
        padding: 12px 0 12px;
    }
}

@media (max-width: 480px) {
    .t2-avis__google-name {
        font-size: 0.9rem;
    }

    .t2-avis__google-text {
        font-size: 0.85rem;
    }

    .t2-avis__google-stars i {
        font-size: 0.9rem;
    }

    .t2-avis__google-rating-value {
        font-size: 0.8rem;
        padding: 3px 8px;
    }

    .t2-avis__header-badge {
        width: 36px;
        height: 36px;
    }

    .t2-avis__header-badge i {
        font-size: 1rem;
    }

    .t2-avis__source-title {
        font-size: 0.95rem;
    }

    .t2-avis__header--google .t2-avis__source-label {
        font-size: 0.75rem;
    }
}

/* ============================================
   AVIS IMMODVISOR - Header spécifique
   ============================================ */

.t2-avis__header--immodvisor {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}

.t2-avis__header-badge--immodvisor {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--t2-white);
    border: 1px solid var(--t2-border);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(6, 70, 80, 0.1);
    overflow: hidden;
    flex-shrink: 0;
}

.t2-avis__header-badge-logo {
    width: 50px;
    height: 50px;
    object-fit: contain;
}

/* Container Immodvisor (même structure que Google) */
.t2-avis__immodvisor-container {
    position: relative;
    min-height: 120px;
}

/* Swiper Immodvisor */
.t2-avis__immodvisor-swiper {
    overflow: hidden;
    padding: 20px 4px 24px;
}

.t2-avis__immodvisor-swiper .swiper-wrapper {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
}

.t2-avis__immodvisor-swiper .swiper-slide {
    height: auto !important;
    flex-shrink: 0;
}

/* Navigation Immodvisor (hérite de t2-avis__google-nav pour les styles de base) */
.t2-avis__immodvisor-nav--prev {
    left: 0;
}

.t2-avis__immodvisor-nav--prev::after {
    transform: rotate(-135deg);
    margin-left: 4px;
}

.t2-avis__immodvisor-nav--next {
    right: 0;
}

.t2-avis__immodvisor-nav--next::after {
    transform: rotate(45deg);
    margin-right: 4px;
}

/* Pagination Immodvisor */
.t2-avis__immodvisor-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background: var(--t2-border);
    opacity: 1;
    transition: all 0.25s ease;
    margin: 0 5px !important;
}

.t2-avis__immodvisor-pagination .swiper-pagination-bullet-active {
    background: #ef418c;
    width: 24px;
    border-radius: 4px;
}

/* Titre de l'avis Immodvisor */
.t2-avis__google-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--t2-text);
    margin: 0 0 8px;
    line-height: 1.4;
}

/* Bouton lire plus spécifique Immodvisor (identique au Google) */
.t2-avis__immodvisor-readmore {
    background: none;
    border: none;
    color: #064650;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    padding: 10px 0 0;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
}

.t2-avis__immodvisor-readmore::after {
    content: '→';
    font-size: 1rem;
    transition: transform 0.2s ease;
}

.t2-avis__immodvisor-readmore:hover::after {
    transform: translateX(4px);
}

/* 16e slide CTA "Voir tous les avis" Google */
.t2-avis__google-cta-card {
    border-color: rgba(66, 133, 244, 0.25) !important;
    background: linear-gradient(145deg, #f8fbff 0%, #fff 60%) !important;
    cursor: pointer;
}

.t2-avis__google-cta-card::before {
    background: linear-gradient(90deg, #4285F4 0%, #34A853 33%, #FBBC05 66%, #EA4335 100%) !important;
    opacity: 1 !important;
}

.t2-avis__google-cta-card:hover {
    border-color: #4285F4 !important;
    transform: translateY(-6px);
}

.t2-avis__google-cta-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 220px;
    padding: 36px 24px;
    text-decoration: none;
    text-align: center;
    color: inherit;
    gap: 10px;
}

.t2-avis__google-cta-inner:hover,
.t2-avis__google-cta-inner:focus {
    text-decoration: none;
    color: inherit;
}

/* Logo Google coloré lettre par lettre */
.t2-avis__google-cta-glogo {
    display: flex;
    gap: 0;
    margin-bottom: 6px;
    font-size: 2rem;
    font-weight: 700;
    font-family: 'Product Sans', 'Google Sans', Arial, sans-serif;
    line-height: 1;
    transition: transform 0.2s ease;
}

.t2-avis__google-cta-card:hover .t2-avis__google-cta-glogo {
    transform: scale(1.08);
}

.t2-avis__google-cta-g { transition: color 0.15s ease; }
.t2-avis__google-cta-g--b  { color: #4285F4; }
.t2-avis__google-cta-g--r  { color: #EA4335; }
.t2-avis__google-cta-g--y  { color: #FBBC05; }
.t2-avis__google-cta-g--b2 { color: #4285F4; }
.t2-avis__google-cta-g--g  { color: #34A853; }
.t2-avis__google-cta-g--r2 { color: #EA4335; }

.t2-avis__google-cta-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--t2-text);
    margin: 0;
    line-height: 1.3;
}

.t2-avis__google-cta-count {
    font-size: 0.84rem;
    color: var(--t2-text-light);
    margin: 0;
    line-height: 1.4;
}

.t2-avis__google-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 10px 22px;
    background: #4285F4;
    border-radius: 50px;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    transition: background 0.25s ease, transform 0.25s ease;
}

.t2-avis__google-cta-card:hover .t2-avis__google-cta-btn {
    background: #1a73e8;
    transform: translateX(3px);
}

.t2-avis__google-cta-btn i {
    font-size: 0.78rem;
    transition: transform 0.2s ease;
}

.t2-avis__google-cta-card:hover .t2-avis__google-cta-btn i {
    transform: translateX(3px);
}

/* 16e slide CTA "Voir tous les avis" Immodvisor */
.t2-avis__immodvisor-cta-card {
    border-color: rgba(239, 65, 140, 0.3) !important;
    background: linear-gradient(145deg, #fff8fb 0%, #fff 60%) !important;
    cursor: pointer;
}

.t2-avis__immodvisor-cta-card::before {
    background: linear-gradient(90deg, #ef418c 0%, #f472b6 100%) !important;
    opacity: 1 !important;
}

.t2-avis__immodvisor-cta-card:hover {
    border-color: #ef418c !important;
    transform: translateY(-6px);
}

.t2-avis__immodvisor-cta-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 220px;
    padding: 36px 24px;
    text-decoration: none;
    text-align: center;
    color: inherit;
    gap: 10px;
}

.t2-avis__immodvisor-cta-inner:hover,
.t2-avis__immodvisor-cta-inner:focus {
    text-decoration: none;
    color: inherit;
}

.t2-avis__immodvisor-cta-logo {
    display: flex;
    gap: 5px;
    margin-bottom: 6px;
}

.t2-avis__immodvisor-cta-logo i {
    color: #ef418c;
    font-size: 1.35rem;
    transition: transform 0.2s ease;
}

.t2-avis__immodvisor-cta-card:hover .t2-avis__immodvisor-cta-logo i:nth-child(1) { transform: rotate(-12deg) scale(1.1); }
.t2-avis__immodvisor-cta-card:hover .t2-avis__immodvisor-cta-logo i:nth-child(2) { transform: scale(1.2); }
.t2-avis__immodvisor-cta-card:hover .t2-avis__immodvisor-cta-logo i:nth-child(3) { transform: rotate(12deg) scale(1.1); }

.t2-avis__immodvisor-cta-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--t2-text);
    margin: 0;
    line-height: 1.3;
}

.t2-avis__immodvisor-cta-count {
    font-size: 0.84rem;
    color: var(--t2-text-light);
    margin: 0;
    line-height: 1.4;
}

.t2-avis__immodvisor-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 10px 22px;
    background: #ef418c;
    border-radius: 50px;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    transition: background 0.25s ease, transform 0.25s ease;
}

.t2-avis__immodvisor-cta-card:hover .t2-avis__immodvisor-cta-btn {
    background: #c42f71;
    transform: translateX(3px);
}

.t2-avis__immodvisor-cta-btn i {
    font-size: 0.78rem;
    transition: transform 0.2s ease;
}

.t2-avis__immodvisor-cta-card:hover .t2-avis__immodvisor-cta-btn i {
    transform: translateX(3px);
}

/* Responsive */
@media (max-width: 768px) {
    .t2-avis__immodvisor-swiper {
        padding: 16px 4px 20px;
    }

    .t2-avis__header--immodvisor {
        margin-bottom: 16px;
    }
}

/* Touches de couleur Immodvisor (#ef418c) scopées à la section */
#t2-immodvisor-reviews-section .t2-avis__google-stars i.fas,
#t2-immodvisor-reviews-section .t2-avis__google-stars i.far,
#t2-immodvisor-reviews-section .t2-avis__google-stars i.fa-star-half-alt {
    color: #ef418c;
}

/* --- BIENS VENDUS --- */

/* Overlay sombre sur l'image pour marquer visuellement le bien comme vendu */
.t2-card--vendu .t2-card__carousel::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    z-index: 1;
    /* background: rgba(0, 0, 0, 0.35); grisage des images retirer */
    pointer-events: none;
}

/* Badge VENDU en bandeau diagonal — très distinct des pills d'accroche */
.t2-card--vendu .t2-card__carousel::after {
    content: 'VENDU';
    position: absolute;
    top: 20px;
    right: -35px;
    z-index: 3;
    background: linear-gradient(135deg, #b91c1c, #991b1b);
    color: var(--t2-white);
    font-size: 0.85rem;
    font-weight: 800;
    padding: 6px 40px;
    letter-spacing: 2px;
    text-transform: uppercase;
    transform: rotate(45deg);
    box-shadow: 0 3px 10px rgba(185, 28, 28, 0.5);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.t2-grid--vendus-collapsed .t2-card:nth-child(n+7) {
    display: none;
}

.t2-vendus-toggle-wrap {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.t2-vendus-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 32px;
    border: 2px solid var(--t2-primary);
    border-radius: var(--t2-radius);
    background: transparent;
    color: var(--t2-primary);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--t2-transition);
}

.t2-vendus-toggle:hover {
    background: var(--t2-primary);
    color: var(--t2-white);
    box-shadow: var(--t2-shadow);
}

.t2-vendus-toggle__count {
    font-weight: 400;
    opacity: 0.7;
}

.t2-vendus-toggle__icon {
    font-size: 0.8rem;
    transition: transform 0.3s ease;
}

.t2-vendus-toggle.expanded .t2-vendus-toggle__icon {
    transform: rotate(180deg);
}

/* --- PAGINATION ULTRA MODERNE --- */
.t2-center-pagination {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.t2-pagination {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border-radius: 50px;
    box-shadow: 0 4px 20px rgba(6, 70, 80, 0.1);
    border: 1px solid rgba(226, 232, 240, 0.8);
}

/* Glassmorphism uniquement sur desktop (evite problemes GPU mobile) */
@supports (backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px)) {
    @media (min-width: 769px) {
        .t2-pagination {
            background: linear-gradient(135deg, rgba(255,255,255,0.92) 0%, rgba(248,250,252,0.92) 100%);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
        }
    }
}

.t2-pagination__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--t2-text);
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.t2-pagination__btn::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    border-radius: 50%;
    background: var(--t2-primary);
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.t2-pagination__btn i {
    position: relative;
    z-index: 1;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.t2-pagination__btn:hover:not(:disabled)::before {
    opacity: 0.1;
    transform: scale(1);
}

.t2-pagination__btn:hover:not(:disabled) i {
    color: var(--t2-primary);
}

.t2-pagination__btn:active:not(:disabled) i {
    transform: scale(0.9);
}

.t2-pagination__btn:disabled {
    opacity: 0.25;
    cursor: not-allowed;
}

/* Conteneur des pages avec largeur fixe pour éviter les sauts */
.t2-pagination__pages {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 280px; /* Largeur fixe pour stabilité */
}

.t2-pagination__page {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--t2-text);
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    font-family: inherit;
    position: relative;
}

.t2-pagination__page::before {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: var(--t2-primary);
    opacity: 0;
    transform: scale(0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.t2-pagination__page span {
    position: relative;
    z-index: 1;
}

.t2-pagination__page:hover:not(.active):not(.t2-pagination__ellipsis)::before {
    opacity: 0.08;
    transform: scale(1);
}

.t2-pagination__page:hover:not(.active):not(.t2-pagination__ellipsis) {
    color: var(--t2-primary);
}

.t2-pagination__page.active {
    color: var(--t2-white);
    font-weight: 600;
    transform: scale(1.05);
}

.t2-pagination__page.active::before {
    opacity: 1;
    transform: scale(1);
    box-shadow: 0 4px 12px rgba(6, 70, 80, 0.3);
}

.t2-pagination__ellipsis {
    cursor: default;
    color: var(--t2-text-light);
    font-size: 1rem;
    letter-spacing: 2px;
    opacity: 0.5;
}

.t2-pagination__ellipsis::before {
    display: none;
}

/* Indicateur de page actuel - style moderne */
.t2-pagination__info {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: 8px;
    padding: 8px 16px;
    background: rgba(6, 70, 80, 0.04);
    border-radius: 20px;
    font-size: 0.8rem;
    color: var(--t2-text-light);
    white-space: nowrap;
    font-weight: 500;
}

.t2-pagination__info span {
    font-weight: 700;
    color: var(--t2-primary);
    font-size: 0.95rem;
}

/* Barre de progression sous la pagination */
.t2-pagination__progress-wrap {
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 3px;
    background: rgba(6, 70, 80, 0.08);
    border-radius: 3px;
    overflow: hidden;
}

.t2-pagination__progress {
    height: 100%;
    background: linear-gradient(90deg, var(--t2-primary), var(--t2-accent));
    border-radius: 3px;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Responsive pagination */
@media (max-width: 768px) {
    .t2-pagination {
        gap: 4px;
        padding: 6px;
    }

    .t2-pagination__btn {
        width: 40px;
        height: 40px;
    }

    .t2-pagination__pages {
        min-width: 200px;
        gap: 2px;
    }

    .t2-pagination__page {
        width: 36px;
        height: 36px;
        font-size: 0.85rem;
    }

    .t2-pagination__info {
        display: none;
    }
}

@media (max-width: 480px) {
    .t2-pagination {
        padding: 5px;
        border-radius: 30px;
    }

    .t2-pagination__pages {
        min-width: 160px;
    }

    .t2-pagination__page {
        width: 32px;
        height: 32px;
        font-size: 0.8rem;
    }

    .t2-pagination__btn {
        width: 36px;
        height: 36px;
    }
}

/* Bouton voir plus pour ventes en cours (meme style) */
.t2-ventes-toggle-wrap {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.t2-ventes-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 32px;
    border: 2px solid var(--t2-primary);
    border-radius: var(--t2-radius);
    background: transparent;
    color: var(--t2-primary);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--t2-transition);
}

.t2-ventes-toggle:hover {
    background: var(--t2-primary);
    color: var(--t2-white);
    box-shadow: var(--t2-shadow);
}

.t2-ventes-toggle__count {
    font-weight: 400;
    opacity: 0.7;
}

.t2-ventes-toggle__icon {
    font-size: 0.8rem;
    transition: transform 0.3s ease;
}

.t2-ventes-toggle.expanded .t2-ventes-toggle__icon {
    transform: rotate(180deg);
}

/* --- EMPTY STATE --- */
.t2-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--t2-text-light);
}

.t2-empty i {
    font-size: 3rem;
    margin-bottom: 16px;
    opacity: 0.3;
    display: block;
}

/* --- FORMULAIRE OVERLAY --- */
.t2-form-overlay {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.9);
    align-items: center;
    justify-content: center;
    border-radius: var(--t2-radius);
    z-index: 5;
    font-weight: 600;
    color: var(--t2-primary);
}

/* --- FILTRE / TRI --- */
.t2-filters {
    margin-bottom: 28px;
    padding: 16px 20px;
    background: var(--t2-white);
    border-radius: var(--t2-radius);
    box-shadow: var(--t2-shadow);
}

.t2-filters__row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.t2-filters__row + .t2-filters__row {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--t2-border);
}

.t2-filters__group {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.t2-filters__label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--t2-text-light);
    white-space: nowrap;
}

.t2-filters__separator {
    width: 1px;
    height: 28px;
    background: var(--t2-border);
    flex-shrink: 0;
}

.t2-filters__item {
    position: relative;
    display: flex;
    align-items: center;
}

.t2-filters__icon {
    position: absolute;
    left: 10px;
    font-size: 0.75rem;
    color: var(--t2-text-light);
    pointer-events: none;
    z-index: 1;
}

.t2-filters select {
    padding: 7px 28px 7px 28px;
    border: 1px solid var(--t2-border);
    border-radius: 8px;
    font-size: 0.8rem;
    background: var(--t2-bg);
    color: var(--t2-text);
    cursor: pointer;
    transition: border-color var(--t2-transition), box-shadow var(--t2-transition);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235a6b7c'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    font-family: inherit;
}

.t2-filters select:hover {
    border-color: var(--t2-primary-light);
}

.t2-filters select:focus {
    outline: none;
    border-color: var(--t2-primary);
    box-shadow: 0 0 0 3px rgba(6, 70, 80, 0.08);
}

/* Slider surface */
.t2-filters__slider-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.t2-filters__icon-inline {
    font-size: 0.78rem;
    color: var(--t2-text-light);
    flex-shrink: 0;
}

.t2-filters__slider-label {
    font-size: 0.8rem;
    color: var(--t2-text-light);
    white-space: nowrap;
    flex-shrink: 0;
}

.t2-filters__slider {
    flex: 1;
    min-width: 80px;
    height: 4px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: var(--t2-border);
    border-radius: 4px;
    outline: none;
    cursor: pointer;
}

.t2-filters__slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--t2-primary);
    border: 3px solid var(--t2-white);
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.t2-filters__slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
    box-shadow: 0 2px 8px rgba(6, 70, 80, 0.3);
}

.t2-filters__slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--t2-primary);
    border: 3px solid var(--t2-white);
    box-shadow: 0 1px 4px rgba(0,0,0,0.2);
    cursor: pointer;
}

.t2-filters__slider::-moz-range-track {
    height: 4px;
    background: var(--t2-border);
    border-radius: 4px;
    border: none;
}

.t2-filters__slider-input-wrap {
    display: flex;
    align-items: center;
    gap: 3px;
    flex-shrink: 0;
}

.t2-filters__slider-input {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--t2-primary);
    width: 70px;
    text-align: right;
    border: 1px solid transparent;
    border-radius: 6px;
    padding: 3px 6px;
    background: transparent;
    font-family: inherit;
    transition: all var(--t2-transition);
}

.t2-filters__slider-input:hover {
    border-color: var(--t2-border);
    background: var(--t2-bg);
}

.t2-filters__slider-input:focus {
    outline: none;
    border-color: var(--t2-primary);
    background: var(--t2-white);
    box-shadow: 0 0 0 2px rgba(6, 70, 80, 0.1);
}

.t2-filters__slider-unit {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--t2-text-light);
    white-space: nowrap;
}

.t2-filters__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    margin-left: auto;
}

.t2-filters__count {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--t2-text-light);
    white-space: nowrap;
}

.t2-filters__reset {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    border: none;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 600;
    font-family: inherit;
    color: var(--t2-primary);
    background: rgba(6, 70, 80, 0.06);
    cursor: pointer;
    transition: background var(--t2-transition);
    white-space: nowrap;
}

.t2-filters__reset:hover {
    background: rgba(6, 70, 80, 0.12);
}

.t2-legal-mention {
    font-size: 0.75rem;
    color: var(--t2-text-light);
    margin-top: 12px;
    text-align: center;
}

.t2-legal-mention a {
    color: var(--t2-primary);
}

/* --- LEAFLET MAP --- */
.t2-leaflet-marker {
    background: transparent !important;
    border: none !important;
}

/* --- RESPONSIVE --- */
@media (max-width: 1024px) {
    .t2-nav--stuck .t2-nav__actions {
        transform: translateY(-50%) translateX(-7%);
    }
    .t2-nav__action-btn--contact {
        display: none !important;
    }
    .t2-grid--2-cols .t2-card__carousel {
        height: 280px;
    }
}
@media (max-width: 768px) {
    .t2-hero {
        padding: 100px 16px 30px;
    }
    .t2-hero__inner {
        flex-direction: column;
        text-align: center;
        align-items: center;
        gap: 20px;
    }
    .t2-hero__left {
        flex-direction: column;
        align-items: center;
    }
    .t2-hero__identity {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .t2-hero__location {
        justify-content: center;
    }
    .t2-hero__rsac {
        margin: 0 0 12px;
    }
    .t2-hero__right {
        align-items: center;
    }
    .t2-hero__social {
        justify-content: center;
    }
    .t2-hero__actions {
        justify-content: center;
    }
    .t2-hero__name {
        font-size: 1.5rem;
    }
    .t2-hero__photo {
        width: 160px;
        height: 200px;
    }
    .t2-hero__shape--1 {
        width: 250px;
        height: 250px;
    }
    .t2-hero__shape--2 {
        width: 150px;
        height: 150px;
    }
    .t2-nav__tab {
        padding: 14px 16px;
        font-size: 0.8rem;
    }
    .t2-nav__actions {
        display: none;
    }
    .t2-filters__row {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }
    .t2-filters__group {
        flex-direction: column;
        align-items: stretch;
    }
    .t2-filters__separator {
        display: none;
    }
    .t2-filters select {
        width: 100%;
    }
    .t2-filters__slider-wrap {
        flex-wrap: wrap;
    }
    .t2-filters__meta {
        justify-content: space-between;
        margin-left: 0;
    }
    .t2-grid {
        grid-template-columns: 1fr;
    }
    .t2-contact {
        grid-template-columns: 1fr;
    }
    .t2-contact__form {
        margin-top: 0;
    }
    .t2-presentation--two-cols {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .t2-presentation__bio {
        font-size: 0.85rem;
    }
    .t2-section {
        padding: 24px 0;
    }
    .t2-presentation__video-item {
        position: relative;
        width: 100%;
        aspect-ratio: 16 / 9;
        overflow: hidden;
    }

    .t2-presentation__video-item iframe {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        height: 100%;
    }

    .t2-grid--2-cols .t2-card__carousel,
    .t2-grid--2-cols .t2-card__carousel .swiper-slide img {
        height: 400px;
    }
}

/* Navbar : scroll horizontal sur mobile quand les onglets dépassent */
@media (max-width: 640px) {
    /* Gradient fade à droite pour indiquer qu'il y a du contenu hors-champ */
    .t2-nav::after {
        content: '';
        position: absolute;
        right: 0;
        top: 0;
        bottom: 0;
        width: 32px;
        background: linear-gradient(to left, var(--t2-white) 20%, transparent 100%);
        pointer-events: none;
        z-index: 2;
        transition: opacity 0.2s ease;
    }
    .t2-nav.t2-nav--scrolled-end::after {
        opacity: 0;
    }
    .t2-nav__inner {
        justify-content: flex-start;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* Edge legacy */
    }
    .t2-nav__inner::-webkit-scrollbar {
        display: none;
    }
    .t2-nav__tab {
        flex: 0 0 auto;
    }
}

@media (max-width: 375px) {
    .t2-avis__widget {
        padding: 5px;
    }
    .imdw-horizontal-container .imdw-horizontal-title{
        font-size: 20px !important;
    }
    .imdw-horizontal-container .imdw-horizontal-slider .imdw-horizontal-slider-upper .imdw-horizontal-button-left {
        margin-left: 5px !important;
    }
    .imdw-horizontal-container .imdw-horizontal-slider .imdw-horizontal-slider-upper .imdw-horizontal-button-right {
        margin-right: 5px !important;
    }
}
/* --- TOOLTIPS STYLISES --- */
.t2-tooltip {
    position: relative;
    cursor: default;
}

.t2-tooltip::before,
.t2-tooltip::after {
    position: absolute;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: all 0.2s ease;
    z-index: 99999999;
}

/* Bulle du tooltip */
.t2-tooltip::after {
    content: attr(data-tooltip);
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    padding: 6px 12px;
    background: var(--t2-text);
    color: var(--t2-white);
    font-size: 0.7rem;
    font-weight: 500;
    white-space: nowrap;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    letter-spacing: 0.2px;
    z-index: 99999999;
}

.t2-card__features .t2-tooltip:first-child::after {
    left: 62%;
}

/* Fleche du tooltip */
.t2-tooltip::before {
    content: '';
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    border: 6px solid transparent;
    border-top-color: var(--t2-text);
}

/* Affichage au survol */
.t2-tooltip:hover::before,
.t2-tooltip:hover::after {
    visibility: visible;
    opacity: 1;
}

.t2-tooltip:hover::after {
    transform: translateX(-50%) translateY(0);
}

.t2-tooltip:hover::before {
    transform: translateX(-50%) translateY(0);
}

/* Version mobile : tooltips desactives */
@media (max-width: 768px) {
    .t2-tooltip::before,
    .t2-tooltip::after {
        display: none;
    }
}

@media (max-width: 320px) {
    .t2-card__price {
        font-weight: 600;
        font-size: 0.8rem;
    }
    .t2-card__info {
        align-items: normal;
    }
    .t2-card__location {
        overflow: visible;
    }
    .t2-filters__slider-wrap {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }
    .t2-filters__slider-wrap > .t2-filters__icon-inline {
        display: inline-flex;
        align-items: center;
    }
    .t2-filters__slider-wrap > .t2-filters__icon-inline::after {
        content: attr(data-label);
        display: none;
    }
    .t2-filters__slider-label {
        display: inline-flex;
        align-items: center;
        margin-left: 6px;
    }
    .t2-filters__slider {
        width: 100%;
    }
    .t2-filters__slider-input-wrap {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 6px;
    }
    .t2-filters__slider-input {
        flex: 1;
    }
    .t2-filters__slider-input-wrap {
        margin-right: 10px;
    }
    .t2-filters__row > .t2-filters__slider-wrap:nth-of-type(3) {
        margin-top: 5px;
    }
    .t2-contact__form {
        padding: 15px;
    }
    .imdw-horizontal-container {
        min-width: auto !important;
        max-width: none !important;
    }
    /* Nav : padding encore plus compact sur très petits écrans */
    .t2-nav__tab {
        padding: 10px 10px;
        font-size: 12px;
        min-height: 44px; /* Touch target minimum Apple/Google */
    }
}

/* ==========================================
   FILTRES MODERNES - Design Ultra Moderne
   ========================================== */
.t2-filters-modern {
    margin-bottom: 32px;
    background: var(--t2-white);
    border-radius: 16px;
    box-shadow: 0 4px 24px rgba(6, 70, 80, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, 0.8);
}

.t2-filters-modern__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    background: linear-gradient(135deg, var(--t2-primary) 0%, var(--t2-primary-dark) 100%);
    color: var(--t2-white);
}

.t2-filters-modern__title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.95rem;
    font-weight: 600;
}

.t2-filters-modern__title i {
    font-size: 1rem;
    opacity: 0.9;
}

.t2-filters-modern__meta {
    display: flex;
    align-items: center;
    gap: 16px;
}

.t2-filters-modern__count {
    font-size: 0.85rem;
    background: rgba(255, 255, 255, 0.15);
    padding: 6px 14px;
    border-radius: 20px;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.t2-filters-modern__count strong {
    font-weight: 700;
}

.t2-filters-modern__reset {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 20px;
    background: transparent;
    color: var(--t2-white);
    font-size: 0.78rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s ease;
    opacity: 0.5;
    pointer-events: none;
}

.t2-filters-modern__reset--visible {
    opacity: 1;
    pointer-events: auto;
}

.t2-filters-modern__reset--visible:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.5);
}

.t2-filters-modern__reset i {
    font-size: 0.7rem;
}

/* Grille des filtres */
.t2-filters-modern__grid {
    display: flex;
    gap: 20px;
    padding: 24px;
    border-bottom: 1px solid var(--t2-border);
    justify-content: space-between;
}

.t2-filters-modern__block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

/* Les blocs avec select prennent moins de place */
.t2-filters-modern__block:has(.t2-filters-modern__select-wrap) {
    flex: 0 0 auto;
    width: 160px;
}

.t2-filters-modern__label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--t2-text-light);
}

.t2-filters-modern__label i {
    font-size: 0.8rem;
    color: var(--t2-primary);
    opacity: 0.7;
}

/* Toggle buttons (Location/Achat) */
.t2-filters-modern__toggle-group {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.t2-filters-modern__toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--t2-border);
    border-radius: 8px;
    background: var(--t2-bg);
    color: var(--t2-text-light);
    font-size: 0.8rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s ease;
}

.t2-filters-modern__toggle:hover {
    border-color: var(--t2-primary-light);
    color: var(--t2-primary);
}

.t2-filters-modern__toggle.active {
    background: var(--t2-primary);
    border-color: var(--t2-primary);
    color: var(--t2-white);
    box-shadow: 0 2px 8px rgba(6, 70, 80, 0.2);
}

.t2-filters-modern__toggle i {
    font-size: 0.75rem;
}

/* Select personnalise */
.t2-filters-modern__select-wrap {
    position: relative;
}

.t2-filters-modern__select {
    width: 100%;
    padding: 10px 36px 10px 14px;
    border: 1px solid var(--t2-border);
    border-radius: 8px;
    background: var(--t2-bg);
    color: var(--t2-text);
    font-size: 0.85rem;
    font-family: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    transition: all 0.2s ease;
}

.t2-filters-modern__select:hover {
    border-color: var(--t2-primary-light);
}

.t2-filters-modern__select:focus {
    outline: none;
    border-color: var(--t2-primary);
    box-shadow: 0 0 0 3px rgba(6, 70, 80, 0.08);
}

.t2-filters-modern__select-arrow {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.7rem;
    color: var(--t2-text-light);
    pointer-events: none;
}

/* Chips (nombre de chambres) */
.t2-filters-modern__chips {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.t2-filters-modern__chip {
    min-width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid var(--t2-border);
    border-radius: 18px;
    white-space: nowrap;
    flex-shrink: 0;
    background: var(--t2-bg);
    color: var(--t2-text-light);
    font-size: 0.82rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s ease;
}

.t2-filters-modern__chip:hover {
    border-color: var(--t2-primary-light);
    color: var(--t2-primary);
    background: rgba(6, 70, 80, 0.04);
}

.t2-filters-modern__chip.active {
    background: var(--t2-primary);
    border-color: var(--t2-primary);
    color: var(--t2-white);
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(6, 70, 80, 0.2);
}

/* Range sliders section */
.t2-filters-modern__ranges {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    padding: 24px;
    background: var(--t2-bg);
}

.t2-filters-modern__range-block {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.t2-filters-modern__range-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.t2-filters-modern__range-values {
    display: flex;
    align-items: center;
    gap: 8px;
}

.t2-filters-modern__range-input {
    width: 80px;
    padding: 6px 10px;
    border: 1px solid var(--t2-border);
    border-radius: 6px;
    background: var(--t2-white);
    color: var(--t2-primary);
    font-size: 0.82rem;
    font-weight: 600;
    font-family: inherit;
    text-align: center;
    transition: all 0.2s ease;
}

.t2-filters-modern__range-input:hover {
    border-color: var(--t2-primary-light);
}

.t2-filters-modern__range-input:focus {
    outline: none;
    border-color: var(--t2-primary);
    box-shadow: 0 0 0 3px rgba(6, 70, 80, 0.08);
}

.t2-filters-modern__range-separator {
    color: var(--t2-text-light);
    font-weight: 300;
}

.t2-filters-modern__range-unit {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--t2-text-light);
}

/* Dual range slider */
.t2-filters-modern__dual-range {
    position: relative;
    height: 36px;
    display: flex;
    align-items: center;
}

.t2-filters-modern__range-track {
    position: absolute;
    left: 0;
    right: 0;
    height: 6px;
    background: var(--t2-border);
    border-radius: 3px;
}

.t2-filters-modern__range-progress {
    position: absolute;
    height: 100%;
    background: linear-gradient(90deg, var(--t2-primary) 0%, var(--t2-accent) 100%);
    border-radius: 3px;
    transition: left 0.1s, width 0.1s;
}

.t2-filters-modern__range-slider {
    position: absolute;
    width: 100%;
    height: 6px;
    background: transparent;
    pointer-events: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.t2-filters-modern__range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--t2-white);
    border: 3px solid var(--t2-primary);
    box-shadow: 0 2px 8px rgba(6, 70, 80, 0.2);
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.t2-filters-modern__range-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(6, 70, 80, 0.3);
}

.t2-filters-modern__range-slider::-webkit-slider-thumb:active {
    transform: scale(0.95);
}

.t2-filters-modern__range-slider::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--t2-white);
    border: 3px solid var(--t2-primary);
    box-shadow: 0 2px 8px rgba(6, 70, 80, 0.2);
    cursor: pointer;
    pointer-events: auto;
}

/* Active tags */
.t2-filters-modern__active-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px 24px;
    background: var(--t2-white);
    border-top: 1px solid var(--t2-border);
}

.t2-filters-modern__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: linear-gradient(135deg, var(--t2-primary) 0%, var(--t2-primary-dark) 100%);
    color: var(--t2-white);
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 500;
    animation: t2-tag-appear 0.2s ease;
}

@keyframes t2-tag-appear {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.t2-filters-modern__tag-remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    color: var(--t2-white);
    font-size: 0.6rem;
    cursor: pointer;
    transition: background 0.2s ease;
}

.t2-filters-modern__tag-remove:hover {
    background: rgba(255, 255, 255, 0.35);
}

/* ==========================================
   FILTRES MODERNES - Responsive
   ========================================== */
@media (max-width: 768px) {
    .t2-filters-modern__header {
        flex-direction: column;
        gap: 12px;
        padding: 14px 16px;
        align-items: stretch;
    }

    .t2-filters-modern__meta {
        justify-content: space-between;
    }

    .t2-filters-modern__grid {
        flex-direction: column;
        gap: 16px;
        padding: 16px;
    }

    .t2-filters-modern__block:has(.t2-filters-modern__select-wrap) {
        width: 100%;
    }

    .t2-filters-modern__ranges {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 16px;
    }

    .t2-filters-modern__range-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .t2-filters-modern__range-values {
        width: 100%;
        justify-content: space-between;
    }

    .t2-filters-modern__range-input {
        flex: 1;
        max-width: 100px;
    }

    .t2-filters-modern__active-tags {
        padding: 12px 16px;
    }

    .t2-filters-modern__toggle-group {
        width: 100%;
    }

    .t2-filters-modern__toggle {
        flex: 1;
        justify-content: center;
    }

    .t2-filters-modern__chips {
        width: 100%;
        flex-wrap: wrap;
    }

    .t2-filters-modern__chip {
        min-width: 36px;
    }
}

@media (max-width: 480px) {
    .t2-filters-modern__title {
        font-size: 0.85rem;
    }

    .t2-filters-modern__count {
        font-size: 0.78rem;
        padding: 5px 10px;
    }

    .t2-filters-modern__reset {
        font-size: 0.72rem;
        padding: 5px 10px;
    }

    .t2-filters-modern__toggle {
        padding: 6px 10px;
        font-size: 0.75rem;
    }

    .t2-filters-modern__chip {
        min-width: 32px;
        height: 32px;
        font-size: 0.78rem;
    }

    .t2-filters-modern__range-slider::-webkit-slider-thumb {
        width: 20px;
        height: 20px;
    }
}

/* ============================================
   BENTO GRID - RESPONSIVE
   ============================================ */

/* Tablette paysage */
@media (max-width: 1024px) {
    .t2-hero {
        padding: 110px 16px 40px;
    }

    .t2-bento {
        grid-template-columns: 240px 1fr 1fr;
        gap: 14px;
    }

    .t2-bento__photo-frame {
        min-height: 300px;
    }

    .t2-bento__name {
        font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    }

    .t2-bento__card--identity {
        padding: 24px 26px;
    }
}

/* Tablette portrait */
@media (max-width: 900px) {
    .t2-bento {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }

    .t2-bento__card--photo {
        grid-row: 1;
        grid-column: 1;
    }

    .t2-bento__card--identity {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        grid-row: 1;
        grid-column: 2;
        padding: 20px 22px;
    }

    .t2-bento__identity-content {
        max-height: fit-content;
        margin-bottom: 20px;
    }

    .t2-bento__card--cta {
        grid-row: 2;
        grid-column: 1;
    }

    .t2-bento__card--phone {
        grid-row: 2;
        grid-column: 2;
    }

    .t2-bento__card--estimation {
        grid-row: 3;
        grid-column: 1;
    }

    .t2-bento__card--social {
        grid-row: 3;
        grid-column: 2;
    }

    .t2-bento__photo-frame {
        min-height: 280px;
    }

    .t2-bento__name {
        font-size: 1.6rem;
    }

    /* Modificateurs tablette */
    .t2-bento--no-phone .t2-bento__card--cta {
        grid-column: 1 / 3;
    }

    .t2-bento--no-estimation .t2-bento__card--social {
        grid-column: 1 / 3;
    }

    .t2-bento--no-social .t2-bento__card--estimation {
        grid-column: 1 / 3;
    }
 
    #fisrtContaierFooterMobile {
        margin-top: 0;
    }

    .t2-content {
        padding-bottom: 50px;
    }
}

/* Mobile */
@media (max-width: 640px) {
    .t2-hero {
        padding: 100px 12px 32px;
    }

    .t2-bento {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    /* Sur mobile : grille à 1 colonne, les cartes s'empilent automatiquement */
    .t2-bento__card--photo,
    .t2-bento__card--identity,
    .t2-bento__card--cta,
    .t2-bento__card--phone,
    .t2-bento__card--estimation,
    .t2-bento__card--social {
        grid-row: auto;
        grid-column: 1;
    }

    .t2-bento__card--identity {
        text-align: center;
    }

    .t2-bento__identity-content {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    /* Reset des modificateurs sur mobile (pas nécessaires en 1 colonne) */
    .t2-bento--no-phone .t2-bento__card--cta,
    .t2-bento--no-estimation .t2-bento__card--photo,
    .t2-bento--no-estimation .t2-bento__card--social {
        grid-row: auto;
        grid-column: 1;
    }

    .t2-bento__photo-frame {
        min-height: 320px;
        max-height: 380px;
    }

    .t2-bento__card--identity {
        padding: 22px 20px;
    }

    .t2-bento__badge {
        font-size: 0.65rem;
        padding: 5px 12px;
    }

    .t2-bento__name {
        font-size: 1.7rem;
    }

    .t2-bento__badges {
        gap: 8px;
        margin-bottom: 12px;
    }

    .t2-bento__ei-badge {
        padding: 5px 10px;
        font-size: 0.6rem;
    }

    .t2-bento__role {
        font-size: 0.01rem;
    }

    .t2-bento__cta-main,
    .t2-bento__phone-btn {
        padding: 18px 20px;
    }

    .t2-bento__cta-icon,
    .t2-bento__phone-icon {
        width: 44px;
        height: 44px;
        border-radius: 12px;
    }

    .t2-bento__estimation-btn {
        padding: 20px 22px;
        flex-direction: column;
        text-align: center;
        gap: 14px;
    }

    .t2-bento__estimation-visual {
        width: 52px;
        height: 52px;
    }

    .t2-bento__estimation-text {
        align-items: center;
    }

    /* Social links en mode stretch sur mobile aussi */
    .t2-bento__social-link {
        min-height: 60px;
        font-size: 1.25rem;
    }

    /* Animations simplifiées sur mobile pour performance */
    .t2-bento__card:hover {
        transform: none;
    }

    .t2-bento__card--photo:hover .t2-bento__photo {
        transform: none;
    }

    /* .t2-bento__photo-shine {
        display: none;
    } */
}

@media (max-width: 425px) {
    .t2-grid--2-cols .t2-card__carousel,
    .t2-grid--2-cols .t2-card__carousel .swiper-slide img {
        height: 280px;
    }
}

/* Très petit écran */
@media (max-width: 380px) {
    .t2-bento__name {
        font-size: 1.5rem;
    }

    .t2-bento__badges {
        gap: 6px;
        margin-bottom: 10px;
    }

    .t2-bento__ei-badge {
        padding: 4px 8px;
        font-size: 0.55rem;
    }

    .t2-bento__cta-main,
    .t2-bento__phone-btn {
        gap: 12px;
        padding: 16px 18px;
    }

    .t2-bento__cta-icon,
    .t2-bento__phone-icon {
        width: 40px;
        height: 40px;
    }

    .t2-bento__social-link {
        min-height: 54px;
        font-size: 1.1rem;
    }
}

/* ============================================
   PRINT STYLES - Impression propre
   ============================================ */
@media print {
    .t2-hero {
        padding: 20px;
        background: #064650 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .t2-hero__bubbles,
    .t2-hero__waves,
    .t2-hero__lines,
    .t2-hero__dots,
    .t2-hero__gradient,
    .t2-hero__noise,
    .t2-hero__shape {
        display: none !important;
    }
    .t2-bento__card {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        break-inside: avoid;
    }
    .t2-nav {
        position: static;
    }
    .t2-section {
        display: block !important;
        break-inside: avoid;
    }
    .t2-card {
        break-inside: avoid;
    }
}

/* ============================================
   REDUCED MOTION - Accessibilite
   ============================================ */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .t2-hero__bubbles,
    .t2-hero__waves,
    .t2-hero__lines,
    .t2-hero__dots,
    .t2-hero__gradient,
    .t2-hero__noise {
        display: none !important;
    }
}

@media (max-width: 1440px) {
    .t2-nav__inner {
        max-width: 1300px;
    }
}
@media (max-width: 1024px) {
    .t2-nav__inner {
        max-width: 1200px;
    }
}