/* ==========================================
   PROJETS Bien + Travaux - Pulp Immobilier
   Reprise de la structure .bloc_product du site
   ========================================== */

:root{
    --pulp-orange: #e84910;
    --pulp-orange-light: #ff6d00;
    --pulp-orange-bg: #fff7f0;
    --pulp-dark: #2a3846;
    --pulp-gray: #f7f7f7;
    --pulp-border: #e0e0e0;
}

/* ------ HEADER intro ------ */
.projets-intro{
    background:linear-gradient(135deg,#fff 0%,#fff7f0 100%);
    padding:50px 0 40px;
    margin-bottom:50px;
    border-bottom:1px solid var(--pulp-border);
}
.projets-intro h1{
    color:var(--pulp-dark);
    font-size:34px;
    font-weight:800;
    margin:0 0 12px;
    line-height:1.2;
}
.projets-intro h1 strong{ color:var(--pulp-orange); }
.projets-intro .baseline{
    font-size:16px;
    color:#555;
    max-width:760px;
    line-height:1.6;
    margin:0;
}

/* ============================================
   CARDS LISTE - overrides sur .bloc_product
   ============================================ */
.projets-listing .projet-annonce{ margin-bottom:50px; }

/* Badge statut en haut à droite (en plus du .tag orange existant en bas) */
.projet-annonce .bloc_product .bloc_img{ position:relative; overflow:hidden; }
.projet-annonce .projet-statut{
    position:absolute;
    top:14px;
    right:14px;
    background:rgba(42,56,70,.92);
    color:#fff;
    padding:6px 14px;
    border-radius:20px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.5px;
    text-transform:uppercase;
    z-index:6;
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.projet-annonce .projet-statut i{
    color:#5cd870;
    font-size:8px;
    animation:pulse-dot 1.8s ease-in-out infinite;
}
@keyframes pulse-dot{
    0%,100%{ opacity:1; transform:scale(1); }
    50%{ opacity:.5; transform:scale(1.3); }
}

/* Specs ligne avec icônes (sous le titre, avant le bloc prix) */
.projet-annonce .projet-specs-line{
    display:flex;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
    margin:14px 0 18px;
    padding:0 10px;
}
.projet-annonce .projet-specs-line span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#666;
    font-size:12px;
    font-weight:600;
}
.projet-annonce .projet-specs-line i{
    color:var(--pulp-orange);
    font-size:12px;
}

/* Bloc prix custom : Vente + Travaux = Total */
.projet-annonce .projet-prix-card{
    margin-top:8px;
    padding:14px 18px;
    background:linear-gradient(180deg,#fafafa 0%,#fff 100%);
    border:1px solid #f0f0f0;
    border-radius:8px;
    text-align:left;
}
.projet-annonce .projet-prix-card .prix-ligne{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:8px 0;
    border-bottom:1px dashed #e8e8e8;
}
.projet-annonce .projet-prix-card .prix-ligne:last-child{ border-bottom:none; }
.projet-annonce .projet-prix-card .prix-label{
    font-size:12px;
    color:#666;
    font-weight:500;
    display:inline-flex;
    align-items:center;
    gap:8px;
    text-transform:none;
}
.projet-annonce .projet-prix-card .prix-label i{
    color:var(--pulp-orange);
    font-size:12px;
    width:14px;
    text-align:center;
}
.projet-annonce .projet-prix-card .prix-val{
    font-size:14px;
    font-weight:700;
    color:var(--pulp-dark);
}
.projet-annonce .projet-prix-card .prix-ligne-travaux .prix-val{
    color:#888;
    font-weight:600;
}
.projet-annonce .projet-prix-card .prix-ligne-total{
    margin-top:4px;
    padding-top:12px;
    border-top:2px solid var(--pulp-orange);
}
.projet-annonce .projet-prix-card .prix-ligne-total .prix-label{
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.5px;
    color:var(--pulp-dark);
}
.projet-annonce .projet-prix-card .prix-ligne-total .prix-val{
    font-size:18px;
    font-weight:800;
    color:var(--pulp-orange);
}

/* Hauteur image réduite pour matcher le rythme produits.php */
.projet-annonce .bloc_product .bloc_img{ height:320px; }
@media (max-width:991px){
    .projet-annonce .bloc_product .bloc_img{ height:280px; }
}
@media (max-width:600px){
    .projet-annonce .bloc_product .bloc_img{ height:240px; }
    .projet-annonce .projet-prix-card .prix-ligne-total .prix-val{ font-size:16px; }
}

/* ============================================
   FICHE DETAIL PROJET - VERSION CINEMATIQUE
   ============================================ */

body.projet-page{ overflow-x:hidden; }

/* ====== HERO LUXE - SPLIT TYPO + PHOTO CARD ====== */
.hero-luxe{
    position:relative;
    padding:80px 0 100px;
    background:linear-gradient(135deg, #fff 0%, #fff7f0 60%, #ffe9d6 100%);
    overflow:hidden;
}
.hero-luxe-container{ position:relative; z-index:2; }

/* Décorations floues en fond */
.hero-deco{
    position:absolute;
    pointer-events:none;
    z-index:1;
}
.hero-deco-blob-1{
    top:-120px;
    right:-80px;
    width:520px;
    height:520px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(232,73,16,.18) 0%, transparent 65%);
    filter:blur(20px);
}
.hero-deco-blob-2{
    bottom:-150px;
    left:-100px;
    width:480px;
    height:480px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(42,56,70,.10) 0%, transparent 60%);
    filter:blur(30px);
}
.hero-deco-grid{
    position:absolute;
    inset:0;
    background-image:
        linear-gradient(to right, rgba(42,56,70,.04) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(42,56,70,.04) 1px, transparent 1px);
    background-size:50px 50px;
    mask-image:radial-gradient(circle at 30% 50%, #000 0%, transparent 70%);
    -webkit-mask-image:radial-gradient(circle at 30% 50%, #000 0%, transparent 70%);
}

.hero-luxe-grid{
    display:grid;
    grid-template-columns:1fr 1.25fr;
    gap:60px;
    align-items:center;
}

/* ===== Colonne gauche : typo ===== */
.hero-luxe-content{ position:relative; }
.hero-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:11px;
    font-weight:800;
    letter-spacing:3px;
    text-transform:uppercase;
    color:var(--pulp-dark);
    padding:8px 16px;
    background:#fff;
    border-radius:50px;
    margin-bottom:28px;
    box-shadow:0 4px 14px rgba(0,0,0,.06);
    opacity:0;
    animation:hero-fadeup .9s .2s ease forwards;
}
.hero-eyebrow i{
    color:#5cd870;
    font-size:8px;
    animation:pulse-dot 1.8s ease-in-out infinite;
}
.hero-eyebrow-ref{
    padding:2px 10px;
    background:var(--pulp-orange-bg);
    color:var(--pulp-orange);
    border-radius:50px;
    font-size:10px;
    font-weight:800;
    letter-spacing:1px;
    margin-left:6px;
    text-transform:none;
    font-family:"Courier New",monospace;
}
.hero-title{
    margin:0;
    font-weight:900;
    line-height:.92;
    letter-spacing:-3px;
    color:var(--pulp-dark);
}
.hero-title-line-1{
    display:block;
    font-size:clamp(32px, 4vw, 52px);
    font-weight:300;
    letter-spacing:-1px;
    color:#6c7884;
    opacity:0;
    animation:hero-fadeup .9s .35s ease forwards;
}
.hero-title-line-2{
    display:block;
    font-size:clamp(90px, 12vw, 180px);
    color:var(--pulp-orange);
    line-height:.85;
    text-shadow:0 8px 40px rgba(232,73,16,.18);
    opacity:0;
    animation:hero-fadeup 1s .5s ease forwards;
    background:linear-gradient(135deg, var(--pulp-orange) 0%, #ff6d00 60%, #ff8533 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
}
.hero-title-line-2.hero-title-prix{
    font-size:clamp(54px, 8vw, 110px);
    letter-spacing:-2px;
}
.hero-title-line-2 small{
    font-size:.32em;
    font-weight:600;
    color:var(--pulp-dark);
    -webkit-text-fill-color:var(--pulp-dark);
    margin-left:10px;
    letter-spacing:-1px;
}
.hero-title-line-3{
    display:block;
    font-size:clamp(28px, 3.5vw, 44px);
    font-weight:400;
    letter-spacing:-1px;
    margin-top:6px;
    color:var(--pulp-dark);
    opacity:0;
    animation:hero-fadeup .9s .65s ease forwards;
}
.hero-tagline{
    font-size:17px;
    margin:28px 0 36px;
    max-width:560px;
    line-height:1.55;
    color:#555;
    opacity:0;
    animation:hero-fadeup .9s .8s ease forwards;
}

/* CTAs */
.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:36px;
    opacity:0;
    animation:hero-fadeup .9s .95s ease forwards;
}
.hero-cta-primary{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:var(--pulp-orange);
    color:#fff;
    padding:16px 28px;
    border-radius:10px;
    font-weight:700;
    font-size:14px;
    text-decoration:none;
    box-shadow:0 8px 22px rgba(232,73,16,.35);
    transition:all .25s;
}
.hero-cta-primary:hover{
    background:#d13d08;
    color:#fff;
    text-decoration:none;
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(232,73,16,.45);
}
.hero-cta-secondary{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--pulp-dark);
    padding:16px 22px;
    border-radius:10px;
    font-weight:700;
    font-size:14px;
    text-decoration:none;
    border:1px solid var(--pulp-border);
    background:#fff;
    transition:all .25s;
}
.hero-cta-secondary:hover{
    border-color:var(--pulp-orange);
    color:var(--pulp-orange);
    text-decoration:none;
}
.hero-cta-secondary i{ transition:transform .25s; }
.hero-cta-secondary:hover i{ transform:translateY(3px); }

/* Quick infos */
.hero-quick-info{
    display:flex;
    flex-wrap:wrap;
    gap:24px;
    padding-top:24px;
    border-top:1px solid rgba(42,56,70,.1);
    opacity:0;
    animation:hero-fadeup .9s 1.1s ease forwards;
}
.hero-quick-info .quick-item{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    color:#666;
    font-weight:600;
}
.hero-quick-info .quick-item i{
    color:var(--pulp-orange);
    font-size:14px;
}

/* ===== Colonne droite : photo card ===== */
.hero-luxe-visual{
    position:relative;
    opacity:0;
    animation:hero-fadeup 1s .55s ease forwards;
}
.hero-photo-frame{
    position:relative;
    width:100%;
    max-width:480px;
    margin:0 0 0 auto;
    aspect-ratio:4 / 5;
    border-radius:24px;
    overflow:hidden;
    box-shadow:
        0 30px 60px rgba(232,73,16,.18),
        0 12px 28px rgba(42,56,70,.18);
    transform:rotate(2deg);
    transition:transform .4s ease;
    background:var(--pulp-gray);
}
.hero-photo-frame.hero-photo-landscape{
    max-width:680px;
    aspect-ratio:4 / 3;
    transform:rotate(1deg);
    box-shadow:
        0 40px 80px rgba(232,73,16,.22),
        0 16px 36px rgba(42,56,70,.22);
}
.hero-photo-frame.hero-photo-landscape:hover{ transform:rotate(0deg) scale(1.015); }
.hero-photo-frame:hover{ transform:rotate(0deg) scale(1.02); }
.hero-photo-frame img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.hero-photo-tag{
    position:absolute;
    top:18px;
    left:18px;
    background:rgba(255,255,255,.95);
    color:var(--pulp-dark);
    padding:7px 14px;
    border-radius:50px;
    font-size:11px;
    font-weight:800;
    letter-spacing:1px;
    text-transform:uppercase;
    display:inline-flex;
    align-items:center;
    gap:8px;
    z-index:2;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}
.hero-photo-tag i{ color:var(--pulp-orange); font-size:11px; }


@keyframes hero-fadeup{
    from{ opacity:0; transform:translateY(30px); }
    to  { opacity:1; transform:translateY(0); }
}
@keyframes pulse-dot{
    0%,100%{ opacity:1; transform:scale(1); }
    50%   { opacity:.5; transform:scale(1.4); }
}

@media (max-width:991px){
    .hero-luxe{ padding:50px 0 70px; }
    .hero-luxe-grid{
        grid-template-columns:1fr;
        gap:50px;
    }
    .hero-luxe-visual{ order:2; }
    .hero-luxe-content{ order:1; }
    .hero-photo-frame{ margin:0 auto; transform:rotate(0deg); max-width:380px; }
    .hero-photo-frame.hero-photo-landscape{ max-width:600px; transform:rotate(0deg); }
}
@media (max-width:600px){
    .hero-luxe{ padding:30px 0 50px; }
    .hero-title-line-2{ font-size:clamp(70px, 22vw, 120px); }
    .hero-actions{ flex-direction:column; align-items:stretch; }
    .hero-actions a{ justify-content:center; }
    .hero-photo-frame{ max-width:280px; }
    .hero-photo-frame.hero-photo-landscape{ max-width:100%; }
}

/* ====== BARRE STATS ANIMÉES ====== */
.stats-bar{
    background:linear-gradient(135deg, var(--pulp-dark) 0%, #1a2530 100%);
    padding:50px 0;
    color:#fff;
    position:relative;
    overflow:hidden;
}
.stats-bar::before{
    content:"";
    position:absolute;
    top:-50%;
    right:-10%;
    width:600px;
    height:600px;
    background:radial-gradient(circle, rgba(232,73,16,.18) 0%, transparent 70%);
    pointer-events:none;
}
.stats-bar .stats-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:30px;
    position:relative;
    z-index:1;
}
.stats-bar .stat-block{
    text-align:center;
    padding:10px;
    border-right:1px solid rgba(255,255,255,.1);
}
.stats-bar .stat-block:last-child{ border-right:none; }
.stats-bar .stat-num{
    font-size:clamp(36px, 5vw, 56px);
    font-weight:900;
    margin:0;
    line-height:1;
    color:#fff;
    letter-spacing:-2px;
}
.stats-bar .stat-num small{
    font-size:.4em;
    font-weight:600;
    color:rgba(255,255,255,.7);
    margin-left:4px;
    letter-spacing:0;
}
.stats-bar .stat-prix .stat-num{ color:#fff; }
.stats-bar .stat-highlight{
    background:transparent;
}
.stats-bar .stat-highlight .stat-num{
    color:var(--pulp-orange-light);
}
.stats-bar .stat-highlight .stat-label{
    color:rgba(255,255,255,.85);
    font-weight:700;
}
.stats-bar .stat-total .stat-num{
    color:var(--pulp-orange-light);
}
.stats-bar .stat-total{
    border-right:none;
    position:relative;
}
.stats-bar .stat-total::before{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    width:3px;
    background:var(--pulp-orange);
}
.stats-bar .stat-label{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:2px;
    color:rgba(255,255,255,.65);
    margin:14px 0 0;
    font-weight:600;
}
@media (max-width:768px){
    .stats-bar{ padding:35px 0; }
    .stats-bar .stat-block{ border-right:none; border-bottom:1px solid rgba(255,255,255,.08); padding:18px 10px; }
    .stats-bar .stat-block:last-child{ border-bottom:none; }
}

/* ====== TITRES SECTIONS CINÉMA ====== */
.section-titre-cinema{
    color:var(--pulp-dark);
    font-size:clamp(26px, 3vw, 38px);
    font-weight:900;
    margin:0 0 8px;
    letter-spacing:-1px;
    position:relative;
    display:inline-block;
    line-height:1.1;
}
.section-titre-cinema span{ position:relative; z-index:1; }
.section-titre-cinema::after{
    content:"";
    position:absolute;
    left:0;
    bottom:6px;
    height:10px;
    width:100%;
    background:var(--pulp-orange-bg);
    z-index:0;
}
.section-sous-titre-cinema{
    color:#888;
    margin:0 0 30px;
    font-size:14px;
    font-weight:500;
}

/* ====== DESCRIPTION VENDEUSE (revue) ====== */
.projet-description-section{ margin-bottom:60px; padding-top:20px; }
.projet-titre-description{
    color:#333;
    font-size:16px;
    line-height:1.85;
}
.projet-titre-description p{ margin:0 0 18px; }
.projet-titre-description p:last-child{ margin-bottom:0; }
.projet-titre-description strong{
    color:var(--pulp-dark);
    font-weight:700;
}
/* Lettrine désactivée : trop chargée avec les intros en majuscules */
.projet-titre-description p:first-child strong{
    color:var(--pulp-dark);
    font-weight:800;
}

/* ====== FADE-UP AU SCROLL ====== */
.fade-up{
    opacity:0;
    transform:translateY(40px);
    transition:opacity .8s ease, transform .8s ease;
}
.fade-up.in-view{
    opacity:1;
    transform:translateY(0);
}

/* ====== COMPARATEUR XL ====== */
.comparator-xl{
    aspect-ratio:16 / 9;
    border-radius:16px;
}
.comparator-xl .cmp-handle{
    width:60px;
    height:60px;
}

/* ====== PERSONAS "IDÉAL POUR" ====== */
.persona-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:22px;
}
.persona-grid.persona-grid-2{
    grid-template-columns:repeat(2, 1fr);
}
@media (max-width:768px){
    .persona-grid.persona-grid-2{ grid-template-columns:1fr; }
}
.persona-card{
    background:#fff;
    padding:32px 26px;
    border-radius:14px;
    box-shadow:0 4px 18px rgba(0,0,0,.06);
    border:1px solid #f0f0f0;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    position:relative;
    overflow:hidden;
}
.persona-card:hover{
    transform:translateY(-6px);
    box-shadow:0 12px 32px rgba(0,0,0,.12);
    border-color:var(--pulp-orange-bg);
}
.persona-card .persona-icon{
    width:60px;
    height:60px;
    border-radius:16px;
    background:linear-gradient(135deg, var(--pulp-orange) 0%, #ff6d00 100%);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
    margin-bottom:18px;
    box-shadow:0 6px 18px rgba(232,73,16,.3);
}
.persona-card h3{
    font-size:18px;
    font-weight:800;
    color:var(--pulp-dark);
    margin:0 0 12px;
    letter-spacing:-.3px;
}
.persona-card p{
    font-size:13.5px;
    color:#555;
    line-height:1.65;
    margin:0;
}
.persona-card p strong{ color:var(--pulp-dark); font-weight:700; }
.persona-card-featured{
    background:linear-gradient(135deg, var(--pulp-dark) 0%, #1a2530 100%);
    border-color:transparent;
    color:#fff;
}
.persona-card-featured h3{ color:#fff; }
.persona-card-featured p{ color:rgba(255,255,255,.85); }
.persona-card-featured p strong{ color:var(--pulp-orange-light); }
.persona-card-featured .persona-icon{
    background:#fff;
    color:var(--pulp-orange);
    box-shadow:0 6px 18px rgba(255,255,255,.2);
}
.persona-card-featured::before{
    content:"";
}

/* ====== BANDEAU PRIX CLIMAX ====== */
.projet-prix-climax{
    margin:50px 0 60px;
    transform:scale(1);
    transition:transform .3s ease;
}
.projet-prix-climax:hover{ transform:scale(1.01); }

/* ====== DISCLAIMER & ASTÉRISQUES ====== */
.disclaimer-mark{
    color:var(--pulp-orange);
    font-weight:800;
    font-size:.85em;
    margin-left:2px;
    vertical-align:super;
    line-height:0;
    letter-spacing:0;
}

.projet-disclaimer{
    padding:18px 0 0;
    margin:30px 0 40px;
    font-size:10.5px;
    color:#aaa;
    line-height:1.55;
    border-top:1px solid #f0f0f0;
    font-style:italic;
}
.projet-disclaimer ul{
    list-style:none;
    padding:0;
    margin:0;
}
.projet-disclaimer li{
    padding:3px 0 3px 14px;
    position:relative;
    margin:0;
}
.projet-disclaimer li::before{
    content:"*";
    position:absolute;
    left:2px;
    top:4px;
    color:#bbb;
    font-weight:600;
    font-size:11px;
}
.projet-disclaimer strong{
    color:#888;
    font-weight:600;
}

/* ====== STICKY CTA BAR ====== */
/* Affichée uniquement sur tablette/mobile où le formulaire Lisa n'est plus sticky à droite */
.sticky-cta-bar{
    display:none;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    background:rgba(42,56,70,.97);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    color:#fff;
    padding:14px 0;
    z-index:1000;
    transform:translateY(100%);
    transition:transform .35s cubic-bezier(.5,1.5,.5,1);
    box-shadow:0 -8px 28px rgba(0,0,0,.18);
}
@media (max-width:1199px){
    .sticky-cta-bar{ display:block; }
}
.sticky-cta-bar.visible{ transform:translateY(0); }
.sticky-cta-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
}
.sticky-cta-info{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.sticky-cta-title{
    font-size:13px;
    color:rgba(255,255,255,.75);
    font-weight:500;
}
.sticky-cta-price{
    font-size:18px;
    font-weight:800;
    color:#fff;
}
.sticky-cta-price small{
    font-size:11px;
    font-weight:500;
    color:var(--pulp-orange-light);
    margin-left:6px;
}
.sticky-cta-actions{
    display:flex;
    gap:10px;
    align-items:center;
}
.sticky-cta-tel{
    color:#fff;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 16px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:8px;
    transition:all .2s;
}
.sticky-cta-tel:hover{
    background:rgba(255,255,255,.08);
    color:#fff;
    text-decoration:none;
}
.sticky-cta-tel i{ color:var(--pulp-orange-light); }
.sticky-cta-btn{
    background:var(--pulp-orange);
    color:#fff;
    text-decoration:none;
    padding:11px 22px;
    border-radius:8px;
    font-weight:700;
    font-size:14px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:all .2s;
    box-shadow:0 4px 14px rgba(232,73,16,.4);
}
.sticky-cta-btn:hover{
    background:#d13d08;
    color:#fff;
    text-decoration:none;
    transform:translateY(-1px);
    box-shadow:0 6px 18px rgba(232,73,16,.55);
}
@media (max-width:768px){
    .sticky-cta-inner{ gap:12px; }
    .sticky-cta-title{ font-size:11px; }
    .sticky-cta-price{ font-size:15px; }
    .sticky-cta-price small{ display:none; }
    .sticky-cta-tel{ padding:9px 12px; font-size:12px; }
    .sticky-cta-tel span{ display:none; }
    .sticky-cta-btn{ padding:9px 14px; font-size:12px; }
}

/* ====== MARGE BOTTOM POUR LAISSER PLACE A LA BARRE ====== */
.projet-page footer{ padding-bottom:80px; }

@media (max-width:600px){
    .hero-cinema{ height:80vh; min-height:480px; }
    .hero-cinema .hero-content{ padding:50px 6vw 80px; }
}

/* ------ BLOC INFOS CLÉS ------ */
.projet-infos{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:0;
    background:#fff;
    border-radius:12px;
    box-shadow:0 4px 18px rgba(0,0,0,.08);
    margin-bottom:50px;
    overflow:hidden;
}
.projet-infos .info-item{
    padding:24px 20px;
    text-align:center;
    border-right:1px solid #f0f0f0;
}
.projet-infos .info-item:last-child{ border-right:none; }
.projet-infos .info-icon{
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--pulp-orange-bg);
    color:var(--pulp-orange);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    margin-bottom:10px;
}
.projet-infos .info-label{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.5px;
    color:#999;
    margin:0 0 4px;
}
.projet-infos .info-value{
    font-size:18px;
    font-weight:700;
    color:var(--pulp-dark);
    margin:0;
    line-height:1.2;
}
.projet-infos .dpe-tag{
    display:inline-block;
    padding:3px 9px;
    border-radius:4px;
    font-weight:700;
    color:#fff;
    font-size:14px;
}
.dpe-A{background:#319834}.dpe-B{background:#33aa64}.dpe-C{background:#79b743}
.dpe-D{background:#f3d12b;color:#444}.dpe-E{background:#ea8e29}
.dpe-F{background:#cb3a25}.dpe-G{background:#9c2516}

/* ------ BANDEAU PRIX (Bien + Travaux = Total) ------ */
.projet-prix-bloc{
    background:linear-gradient(135deg,var(--pulp-orange) 0%,#d13d08 100%);
    border-radius:12px;
    padding:36px 40px;
    color:#fff;
    margin-bottom:50px;
    display:grid;
    grid-template-columns:1fr auto 1fr auto 1fr;
    gap:20px;
    align-items:center;
    box-shadow:0 8px 24px rgba(232,73,16,.25);
}
.projet-prix-bloc .prix-step{ text-align:center; opacity:.75; }
.projet-prix-bloc .prix-op{
    font-size:28px;
    font-weight:300;
    opacity:.6;
}
.projet-prix-bloc .step-label{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.5px;
    opacity:.85;
    margin:0 0 6px;
}
.projet-prix-bloc .step-value{
    font-size:24px;
    font-weight:700;
    margin:0;
    line-height:1;
}
.projet-prix-bloc .step-sub{
    font-size:11px;
    opacity:.7;
    margin:5px 0 0;
}
.projet-prix-bloc .prix-step.step-total{
    background:#fff;
    border-radius:14px;
    padding:24px 20px;
    opacity:1;
    box-shadow:0 12px 32px rgba(0,0,0,.18);
    transform:scale(1.08);
    position:relative;
}
.projet-prix-bloc .prix-step.step-total .step-label{
    color:var(--pulp-dark);
    opacity:1;
    font-weight:800;
    font-size:12px;
}
.projet-prix-bloc .prix-step.step-total .step-value{
    font-size:44px;
    font-weight:900;
    background:linear-gradient(135deg, var(--pulp-orange) 0%, #d13d08 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    letter-spacing:-1.5px;
}
.projet-prix-bloc .prix-step.step-total .step-sub{
    color:var(--pulp-orange);
    opacity:1;
    font-weight:700;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:1px;
}

/* ------ SECTION TITRE ------ */
.projet-section{ margin-bottom:60px; }
.projet-section .section-titre{
    color:var(--pulp-dark);
    font-size:24px;
    font-weight:800;
    margin:0 0 8px;
    display:flex;
    align-items:center;
    gap:12px;
}
.projet-section .section-titre::before{
    content:"";
    width:4px;
    height:24px;
    background:var(--pulp-orange);
    border-radius:2px;
}
.projet-section .section-sous-titre{
    color:#777;
    margin:0 0 26px;
    font-size:14px;
}

/* ------ DESCRIPTION ------ */
.projet-description{
    background:#fff;
    padding:30px 36px;
    border-radius:10px;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
    line-height:1.75;
    color:#444;
    font-size:14px;
}

/* ------ CARACTÉRISTIQUES DU BIEN (grid 3 colonnes avec icônes) ------ */
.projet-caracteristiques{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:16px;
}
.projet-caracteristiques .carac-item{
    background:#fff;
    padding:22px 22px;
    border-radius:14px;
    box-shadow:0 4px 16px rgba(0,0,0,.06);
    border:1px solid rgba(0,0,0,.04);
    display:flex;
    align-items:center;
    gap:16px;
    transition:transform .25s, box-shadow .25s, border-color .25s;
    position:relative;
    overflow:hidden;
}
.projet-caracteristiques .carac-item::before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    width:80px;
    height:80px;
    background:radial-gradient(circle at top right, var(--pulp-orange-bg) 0%, transparent 70%);
    pointer-events:none;
}
.projet-caracteristiques .carac-item:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 26px rgba(232,73,16,.12);
    border-color:rgba(232,73,16,.15);
}
.projet-caracteristiques .carac-icon{
    width:52px;
    height:52px;
    border-radius:14px;
    background:linear-gradient(135deg, var(--pulp-orange) 0%, #ff6d00 100%);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
    flex-shrink:0;
    box-shadow:0 6px 16px rgba(232,73,16,.3);
    transition:transform .3s;
}
.projet-caracteristiques .carac-item:hover .carac-icon{
    transform:scale(1.08) rotate(-4deg);
}
.projet-caracteristiques .carac-text{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}
.projet-caracteristiques .carac-label{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.8px;
    color:#999;
    font-weight:700;
}
.projet-caracteristiques .carac-value{
    font-size:14px;
    color:var(--pulp-dark);
    font-weight:700;
    line-height:1.35;
}

@media (max-width:991px){
    .projet-caracteristiques{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:600px){
    .projet-caracteristiques{ grid-template-columns:1fr; }
}

/* ------ COMPOSITION DES PIÈCES (table) ------ */
.projet-composition{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    background:#fff;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
    font-size:14px;
}
.projet-composition thead{
    background:var(--pulp-dark);
}
.projet-composition thead th{
    color:#fff;
    font-weight:700;
    text-transform:uppercase;
    font-size:11px;
    letter-spacing:.5px;
    padding:14px 20px;
    text-align:left;
}
.projet-composition tbody tr{
    border-bottom:1px solid #f0f0f0;
    transition:background .15s;
}
.projet-composition tbody tr:last-child{ border-bottom:none; }
.projet-composition tbody tr:hover{ background:var(--pulp-orange-bg); }
.projet-composition tbody td{
    padding:16px 20px;
    color:#444;
    vertical-align:middle;
}
.projet-composition tbody td strong{ color:var(--pulp-dark); }
.projet-composition .piece-tag{
    display:inline-block;
    background:var(--pulp-orange-bg);
    color:var(--pulp-orange);
    padding:3px 10px;
    border-radius:12px;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.3px;
}

@media (max-width:600px){
    .projet-composition thead th,
    .projet-composition tbody td{ padding:11px 12px; font-size:13px; }
    .projet-composition thead th{ font-size:10px; }
}


/* ------ LISTE TRAVAUX ------ */
.projet-travaux-liste{
    background:#fff;
    border-radius:10px;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
    padding:30px 36px;
    list-style:none;
    margin:0;
}
.projet-travaux-liste li{
    padding:14px 0 14px 36px;
    border-bottom:1px solid #f0f0f0;
    position:relative;
    color:#444;
    font-size:14px;
    line-height:1.5;
}
.projet-travaux-liste li:last-child{ border-bottom:none; }
.projet-travaux-liste li::before{
    content:"\f00c";
    font-family:"Font Awesome 5 Free";
    font-weight:900;
    position:absolute;
    left:0;
    top:50%;
    transform:translateY(-50%);
    width:24px;
    height:24px;
    border-radius:50%;
    background:var(--pulp-orange-bg);
    color:var(--pulp-orange);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
}

/* ------ COMPARATEUR AVANT / APRÈS ------ */
.comparator{
    position:relative;
    width:100%;
    aspect-ratio:16 / 10;
    overflow:hidden;
    border-radius:12px;
    background:#1a2530;
    box-shadow:0 6px 24px rgba(0,0,0,.15);
    user-select:none;
    cursor:ew-resize;
    touch-action:none;
}
.comparator img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    pointer-events:none;
    -webkit-user-drag:none;
}
.comparator .cmp-after{ z-index:1; }
.comparator .cmp-before{
    z-index:2;
    clip-path:inset(0 50% 0 0);
}
.comparator .cmp-divider{
    position:absolute;
    top:0;
    bottom:0;
    left:50%;
    width:3px;
    background:#fff;
    box-shadow:0 0 12px rgba(0,0,0,.4);
    transform:translateX(-50%);
    z-index:3;
    pointer-events:none;
}
.comparator .cmp-handle{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    width:48px;
    height:48px;
    background:#fff;
    border-radius:50%;
    box-shadow:0 4px 14px rgba(0,0,0,.35);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:2px;
    color:var(--pulp-orange);
    font-size:12px;
    pointer-events:none;
}
.comparator .cmp-handle i + i{ margin-left:2px; }
.comparator .cmp-label{
    position:absolute;
    top:18px;
    padding:7px 14px;
    border-radius:20px;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.5px;
    color:#fff;
    z-index:4;
    transition:opacity .2s;
    pointer-events:none;
}
.comparator .cmp-label-before{
    left:18px;
    background:rgba(197,57,42,.92);
}
.comparator .cmp-label-after{
    right:18px;
    background:rgba(42,140,58,.92);
}

/* Thumbs sous le comparateur pour changer de paire */
.comparator-thumbs{
    display:flex;
    gap:10px;
    margin-top:14px;
    overflow-x:auto;
    padding-bottom:4px;
    scrollbar-width:thin;
}
.comparator-thumbs::-webkit-scrollbar{ height:6px; }
.comparator-thumbs::-webkit-scrollbar-thumb{ background:#ddd; border-radius:3px; }
.cmp-thumb{
    flex:0 0 auto;
    width:110px;
    height:75px;
    border-radius:8px;
    overflow:hidden;
    position:relative;
    border:2px solid transparent;
    background:#f5f5f5;
    padding:0;
    cursor:pointer;
    transition:all .2s;
}
.cmp-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    opacity:.7;
    transition:opacity .2s;
}
.cmp-thumb:hover img{ opacity:1; }
.cmp-thumb.active{
    border-color:var(--pulp-orange);
    box-shadow:0 4px 14px rgba(232,73,16,.3);
}
.cmp-thumb.active img{ opacity:1; }
.cmp-thumb-num{
    position:absolute;
    top:6px;
    left:6px;
    background:rgba(0,0,0,.7);
    color:#fff;
    width:22px;
    height:22px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    font-weight:700;
}
/* Badge sur les thumbs "photo seule" (pas de paire avant/après) */
.cmp-thumb-single .cmp-thumb-badge{
    position:absolute;
    bottom:6px;
    right:6px;
    background:var(--pulp-dark);
    color:#fff;
    width:22px;
    height:22px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:10px;
}
.cmp-thumb-single.active .cmp-thumb-badge{
    background:var(--pulp-orange);
}

/* Mode single-photo : on cache les éléments du comparateur */
.comparator.single-mode .cmp-divider,
.comparator.single-mode .cmp-handle,
.comparator.single-mode .cmp-label-before,
.comparator.single-mode .cmp-label-after{
    display:none !important;
}
.comparator.single-mode{ cursor:default; }
.comparator.single-mode .cmp-before{ clip-path:none !important; }

/* Etat vide comparateur */
.comparator-empty{
    background:#fff;
    border:2px dashed #e0e0e0;
    border-radius:12px;
    padding:60px 30px;
    text-align:center;
    color:#999;
}
.comparator-empty i{ font-size:36px; color:#ccc; margin-bottom:10px; }
.comparator-empty p{ font-size:15px; font-weight:600; margin:8px 0 6px; color:#777; }
.comparator-empty small{ font-size:12px; color:#aaa; }
.comparator-empty code{
    background:#f5f5f5;
    padding:2px 7px;
    border-radius:4px;
    font-size:11px;
    color:var(--pulp-orange);
}

/* ------ COLONNE DROITE STICKY (encart contact) ------ */
.projet-row{ margin-top:10px; }
#contact-section{ scroll-margin-top:30px; }
html{ scroll-behavior:smooth; }

/* Nom + Prénom sur la même ligne */
.projet-form-row{
    display:flex;
    gap:8px;
}
.projet-form-row input{
    flex:1;
    min-width:0;
}

/* Textarea : compact, redimensionnable, sans scrollbar visible */
.projet-row .right_contact form textarea{
    height:90px;
    min-height:50px;
    resize:vertical;
    scrollbar-width:none;
}
.projet-row .right_contact form textarea::-webkit-scrollbar{
    width:0;
    height:0;
    display:none;
}

.projet-row .right_contact .confirm2{
    background:#e6f5e9;
    border:1px solid #2a8c3a;
    color:#2a8c3a;
    padding:18px 22px;
    border-radius:8px;
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-top:14px;
}
.projet-row .right_contact .confirm2 i{ font-size:20px; color:#2a8c3a; margin-top:2px; }
.projet-row .right_contact .confirm2 div{ font-size:13px; line-height:1.5; }

/* ------ TOP NAV (ariane + bouton retour) ------ */
.projet-top-nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
}
.projet-top-nav .ariane{ margin:0; flex:1; min-width:0; }
.projet-top-nav .btn-retour-liste{ margin-bottom:0; flex-shrink:0; }

/* ------ RETOUR LISTE ------ */
.btn-retour-liste{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 18px;
    background:#fff;
    border:1px solid var(--pulp-border);
    border-radius:7px;
    color:var(--pulp-dark);
    text-decoration:none;
    font-weight:600;
    font-size:13px;
    margin-bottom:30px;
    transition:all .2s;
}
.btn-retour-liste:hover{
    background:var(--pulp-orange-bg);
    color:var(--pulp-orange);
    border-color:var(--pulp-orange);
}
.btn-retour-liste i{ font-size:11px; }

/* ------ ETAT VIDE LISTE ------ */
.projets-empty{
    padding:80px 30px;
    text-align:center;
    background:#fff;
    border-radius:10px;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
    color:#777;
}
.projets-empty i{ font-size:42px; color:var(--pulp-orange); margin-bottom:14px; }
.projets-empty p{ font-size:15px; margin:8px 0 0; }

/* ------ RESPONSIVE ------ */
@media (max-width:1100px){
    .projet-prix-bloc{
        grid-template-columns:1fr;
        gap:18px;
        padding:30px 24px;
    }
    .projet-prix-bloc .prix-op{ transform:rotate(90deg); margin:0 auto; }
}
@media (max-width:600px){
    .projets-intro h1{ font-size:26px; }
    .projet-infos{ grid-template-columns:repeat(2,1fr); }
    .projet-infos .info-item{ border-right:1px solid #f0f0f0; }
    .projet-infos .info-item:nth-child(2n){ border-right:none; }
    .projet-travaux-liste{ padding:22px; }
}
