/* ==========================================================================
   L'immobilier Trop Magnifique : feuille de styles du site
   Base : maquette validée LOT-Design-01 (maquette-accueil.html), reprise telle
   quelle, puis composants ajoutés pour les autres pages (après la ligne
   « AJOUTS LOT-Dev-01 »). CSS écrit à la main : aucun build nécessaire.
   Les couleurs de marque sont surchargées par le global « Charte »
   (balise {{ charte:css }} dans le layout, avec garde-fou de contraste).
   ========================================================================== */
/* =========================================================
   TOKENS — pilotables par le CMS (voir CHARTE_COULEURS.md)
   ========================================================= */
:root{
  /* Marque */
  --c-taupe:        #B6B0B0; /* taupe d'origine : fonds avec texte --c-texte uniquement */
  --c-taupe-clair:  #E6E2DF; /* surfaces douces */
  --c-taupe-fonce:  #4A4444; /* fonds porteurs de texte blanc / jaune */
  --c-taupe-nuit:   #3A3535; /* pied de page, bloc état d'esprit */
  --c-jaune:        #F7CC2A; /* jaune du logo : boutons, accents, jamais en texte sur clair */
  --c-ocre:         #7A5F00; /* "jaune lisible" : petits libellés sur fond clair */
  /* Neutres */
  --c-texte:        #2F2E2E;
  --c-texte-doux:   #5C5656;
  --c-fond:         #FFFFFF;
  --c-fond-alt:     #F5F2EF;
  --c-ligne:        #D9D4D1; /* filets décoratifs uniquement */
  --c-blanc:        #FFFFFF;

  /* Typo */
  --f-titre: "Fraunces", Georgia, "Times New Roman", serif;
  --f-texte: "Figtree", "Segoe UI", Roboto, Arial, sans-serif;
  --f-script: "Pinyon Script", "Brush Script MT", cursive;

  /* Échelle (fluide) */
  --t-xs: .8125rem;
  --t-s: .9375rem;
  --t-m: 1.0625rem;
  --t-l: clamp(1.25rem, 1.1rem + .6vw, 1.5rem);
  --t-xl: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
  --t-xxl: clamp(2.25rem, 1.6rem + 2.8vw, 3.75rem);

  /* Espacement (base 8) */
  --s-1: .5rem; --s-2: 1rem; --s-3: 1.5rem; --s-4: 2rem; --s-6: 3rem; --s-8: 4rem; --s-12: 6rem;
  --section: clamp(3.5rem, 2rem + 6vw, 7rem);
  --gutter: clamp(1rem, .5rem + 2.5vw, 2.5rem);
  --max: 1200px;
  --radius: 4px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--c-fond);color:var(--c-texte);font-family:var(--f-texte);font-size:var(--t-m);line-height:1.6;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--f-titre);font-weight:500;line-height:1.15;margin:0;letter-spacing:-.01em}
p{margin:0}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--c-texte);outline-offset:3px}

/* Texte provisoire : marquage discret */
.ph{text-decoration:underline dotted var(--c-texte-doux);text-underline-offset:.2em;text-decoration-thickness:1px}

/* Libellé de section */
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:var(--t-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--c-ocre)}
.eyebrow::before{content:"";width:10px;height:10px;background:var(--c-jaune);flex:none}
.on-dark .eyebrow{color:var(--c-jaune)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.75rem 1.5rem;border-radius:var(--radius);font-weight:600;font-size:var(--t-s);text-decoration:none;border:2px solid transparent;transition:background-color .2s,border-color .2s,transform .2s}
.btn-jaune{background:var(--c-jaune);color:var(--c-texte)}
.btn-jaune:hover{background:var(--c-texte);color:var(--c-jaune)}
.btn-ligne{border-color:var(--c-texte);color:var(--c-texte);background:transparent}
.btn-ligne:hover{background:var(--c-texte);color:var(--c-blanc)}

/* ================= HEADER ================= */
.header{position:sticky;top:0;z-index:20;background:var(--c-fond);border-bottom:1px solid var(--c-ligne)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:76px}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--c-texte)}
.brand svg{width:40px;height:40px;flex:none}
.brand .sig{font-family:var(--f-script);font-size:1.9rem;line-height:1;white-space:nowrap;padding-top:.2rem}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:clamp(.75rem,1.6vw,1.75rem);align-items:center}
.nav a{text-decoration:none;font-size:var(--t-s);font-weight:500;color:var(--c-texte);padding:.4rem 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current]{border-bottom-color:var(--c-jaune)}
.nav .btn{padding:.6rem 1.1rem;min-height:44px;border-bottom:0}
.burger{display:none}
@media (max-width:980px){
  .nav-desk{display:none}
  .burger{display:block;position:relative}
  .burger summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;min-height:44px;padding:0 .9rem;border:2px solid var(--c-texte);border-radius:var(--radius);font-weight:600;font-size:var(--t-s)}
  .burger summary::-webkit-details-marker{display:none}
  .burger summary span.ico{width:18px;height:2px;background:var(--c-texte);position:relative}
  .burger summary span.ico::before,.burger summary span.ico::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--c-texte)}
  .burger summary span.ico::before{top:-6px}.burger summary span.ico::after{top:6px}
  .burger ul{position:absolute;right:0;top:calc(100% + 12px);background:var(--c-fond);border:1px solid var(--c-ligne);box-shadow:0 12px 30px rgba(47,46,46,.12);flex-direction:column;align-items:stretch;gap:0;min-width:230px;padding:.5rem}
  .burger li a{display:block;padding:.75rem 1rem;border:0}
  .burger li a[aria-current]{background:var(--c-fond-alt)}
}
@media (max-width:400px){.brand .sig{font-size:1.6rem}.brand svg{width:34px;height:34px}}

/* ================= HERO ================= */
.hero{background:var(--c-taupe);color:var(--c-texte);position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s-6);align-items:end;padding-top:var(--section)}
.hero-txt{padding-bottom:var(--section)}
.hero h1{font-size:var(--t-xxl);font-weight:500;margin:var(--s-2) 0 var(--s-3)}
.hero h1 em{font-style:italic;font-weight:400}
.hero .lead{font-size:var(--t-l);max-width:34ch;font-family:var(--f-titre);font-weight:400}
.hero .slogan{font-family:var(--f-script);font-size:clamp(2rem,1.5rem + 2vw,3.1rem);line-height:1.1;margin-top:var(--s-4);color:var(--c-texte)}
.hero .ctas{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-4)}
.hero .eyebrow{color:var(--c-texte)}
.hero-portrait{position:relative;align-self:end}
.portrait{aspect-ratio:4/5;width:100%;max-width:440px;margin-left:auto;border-radius:220px 220px 0 0;
  background:
    radial-gradient(120% 80% at 30% 15%, rgba(247,204,42,.55) 0%, rgba(247,204,42,0) 55%),
    linear-gradient(180deg, var(--c-taupe-clair) 0%, var(--c-taupe-fonce) 100%);
  display:flex;align-items:flex-start;justify-content:center;padding-top:var(--s-6)}
.ph-label{display:inline-flex;align-items:center;gap:.4rem;background:var(--c-taupe-nuit);color:var(--c-blanc);font-size:var(--t-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .7rem;border-radius:2px}
.ph-label::before{content:"";width:8px;height:8px;background:var(--c-jaune)}
.hero-tag{position:absolute;left:0;bottom:var(--s-6);background:var(--c-fond);color:var(--c-texte);padding:var(--s-2) var(--s-3);box-shadow:0 10px 30px rgba(47,46,46,.15);max-width:240px;font-size:var(--t-s);line-height:1.4}
.hero-tag strong{display:block;font-family:var(--f-titre);font-size:1.15rem;font-weight:600}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr;gap:var(--s-4)}
  .hero-txt{padding-bottom:0}
  .portrait{max-width:none;margin:0;aspect-ratio:5/4;border-radius:999px 999px 0 0}
  .hero-tag{left:auto;right:var(--s-2);bottom:var(--s-3)}
}
@media (max-width:480px){.portrait{aspect-ratio:1/1}.hero .ctas .btn{flex:1 1 100%}}

/* ================= SECTIONS ================= */
.section{padding-block:var(--section)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-6)}
.sec-head h2{font-size:var(--t-xl);margin-top:var(--s-2);max-width:20ch}
.sec-head p{color:var(--c-texte-doux);max-width:46ch}

/* Biens */
.biens{background:var(--c-fond)}
.grid-biens{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:var(--s-4) var(--s-3)}
.bien{display:flex;flex-direction:column;text-decoration:none;color:var(--c-texte)}
.bien-photo{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;
  background:linear-gradient(135deg,var(--c-taupe-clair) 0%,var(--c-taupe) 60%,var(--c-taupe-fonce) 100%);
  display:flex;align-items:flex-end;justify-content:flex-start;padding:var(--s-2)}
.bien:nth-child(2n) .bien-photo{background:linear-gradient(200deg,var(--c-taupe-clair) 0%,var(--c-taupe) 55%,var(--c-taupe-nuit) 100%)}
.bien:nth-child(3n) .bien-photo{background:linear-gradient(160deg,#EFE6C9 0%,var(--c-taupe) 60%,var(--c-taupe-fonce) 100%)}
.bien-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(58,53,53,.0),rgba(58,53,53,0));transition:background .3s}
.bien:hover .bien-photo::after{background:rgba(247,204,42,.18)}
.badge{position:absolute;top:var(--s-2);left:var(--s-2);background:var(--c-jaune);color:var(--c-texte);font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;padding:.25rem .6rem;border-radius:2px}
.bien-body{padding-top:var(--s-2);display:flex;flex-direction:column;gap:.35rem;flex:1}
.bien-type{font-size:var(--t-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-texte-doux)}
.bien h3{font-size:1.35rem;font-weight:500}
.bien:hover h3{text-decoration:underline;text-decoration-color:var(--c-jaune);text-decoration-thickness:3px;text-underline-offset:.25em}
.bien-meta{display:flex;justify-content:space-between;align-items:center;gap:var(--s-2);margin-top:auto;padding-top:var(--s-2);border-top:1px solid var(--c-ligne);font-size:var(--t-s)}
.bien-meta .lieu{color:var(--c-texte-doux)}
.bien-meta .prix{font-weight:600}
.biens-foot{margin-top:var(--s-6);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}
.biens-foot p{color:var(--c-texte-doux);font-size:var(--t-s)}
/* État vide (aucun bien synchronisé) : documenté, masqué dans la maquette */
.biens-vide{display:none;padding:var(--s-6);background:var(--c-fond-alt);text-align:center}

/* Services */
.services{background:var(--c-fond-alt)}
.services .layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--s-8)}
.services .intro{position:sticky;top:110px;align-self:start}
.services .intro h2{font-size:var(--t-xl);margin:var(--s-2) 0 var(--s-3)}
.services .intro p{color:var(--c-texte-doux);margin-bottom:var(--s-4)}
.svc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--c-ligne)}
.svc{padding:var(--s-3) var(--s-3) var(--s-3) 0;border-bottom:1px solid var(--c-ligne);display:grid;grid-template-columns:auto 1fr;gap:.25rem var(--s-2);align-content:start}
.svc:nth-child(2n){padding-left:var(--s-3);border-left:1px solid var(--c-ligne);padding-right:0}
.svc .num{font-family:var(--f-titre);font-size:var(--t-s);color:var(--c-ocre);font-weight:600;grid-row:span 2;padding-top:.15rem;min-width:1.6rem}
.svc h3{font-size:1.25rem}
.svc p{color:var(--c-texte-doux);font-size:var(--t-s)}
.svc-apero h3::after{content:"";display:inline-block;width:10px;height:10px;background:var(--c-jaune);margin-left:.5rem;vertical-align:middle}
@media (max-width:900px){.services .layout{grid-template-columns:1fr;gap:var(--s-4)}.services .intro{position:static}}
@media (max-width:600px){.svc-list{grid-template-columns:1fr}.svc,.svc:nth-child(2n){padding:var(--s-3) 0;border-left:0}}

/* État d'esprit */
.esprit{background:var(--c-taupe-nuit);color:var(--c-blanc)}
.esprit .layout{display:grid;grid-template-columns:auto 1fr;gap:var(--s-6);align-items:start}
.esprit .mono{width:72px;height:72px}
.esprit blockquote{margin:var(--s-3) 0 0;font-family:var(--f-titre);font-weight:400;font-size:clamp(1.5rem,1.1rem + 1.8vw,2.6rem);line-height:1.3;max-width:28ch}
.esprit blockquote .q{color:var(--c-jaune)}
.esprit .sign{margin-top:var(--s-4);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}
.esprit .sign .script{font-family:var(--f-script);font-size:2.2rem;line-height:1;color:var(--c-blanc)}
.esprit .sign a{color:var(--c-jaune);font-weight:600;text-underline-offset:.25em}
.esprit .txt{margin-top:var(--s-4);max-width:60ch;color:var(--c-taupe-clair)}
@media (max-width:700px){.esprit .layout{grid-template-columns:1fr;gap:var(--s-3)}.esprit .mono{width:56px;height:56px}}

/* Contact */
.contact .layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-8)}
.contact h2{font-size:var(--t-xl);margin:var(--s-2) 0 var(--s-3)}
.contact .lead{color:var(--c-texte-doux);margin-bottom:var(--s-4);max-width:42ch}
.coords{list-style:none;margin:0;padding:0;border-top:1px solid var(--c-ligne)}
.coords li{display:grid;grid-template-columns:7.5rem 1fr;gap:var(--s-2);padding:var(--s-2) 0;border-bottom:1px solid var(--c-ligne);align-items:baseline}
.coords .k{font-size:var(--t-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-texte-doux)}
.coords a{font-weight:600;text-decoration-color:var(--c-jaune);text-decoration-thickness:2px;text-underline-offset:.25em;word-break:break-word}
.contact .ctas{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-4)}
.form{background:var(--c-fond-alt);padding:clamp(1.25rem,.8rem + 2vw,2.5rem);border-radius:var(--radius);display:grid;gap:var(--s-3)}
.form h3{font-size:1.4rem}
.field{display:grid;gap:.35rem}
.field label{font-size:var(--t-s);font-weight:600}
.field input:not([type=radio]),.field select,.field textarea{font:inherit;font-size:1rem;color:var(--c-texte);background:var(--c-fond);border:1px solid var(--c-texte-doux);border-radius:var(--radius);padding:.75rem .9rem;min-height:48px;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--c-jaune);outline-offset:0;border-color:var(--c-texte)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}
.choice{display:flex;flex-wrap:wrap;gap:.5rem}
.choice label{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--c-texte-doux);border-radius:999px;padding:.45rem .9rem;font-weight:500;font-size:var(--t-s);cursor:pointer;background:var(--c-fond)}
.choice label{white-space:nowrap}
.choice input{accent-color:var(--c-texte);margin:0;width:16px;height:16px}
.form .note{font-size:var(--t-xs);color:var(--c-texte-doux)}
@media (max-width:900px){.contact .layout{grid-template-columns:1fr;gap:var(--s-6)}}
@media (max-width:480px){.row2{grid-template-columns:1fr}.coords li{grid-template-columns:1fr;gap:.1rem}}

/* ================= FOOTER ================= */
.footer{background:var(--c-taupe-fonce);color:var(--c-blanc);padding-block:var(--s-8) var(--s-4)}
.footer .slogan{font-family:var(--f-script);font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem);line-height:1.1;text-align:center;color:var(--c-blanc)}
.footer .slogan span{color:var(--c-jaune)}
.footer .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4);margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid rgba(255,255,255,.25)}
.footer h4,.footer .h4{font-family:var(--f-texte);line-height:1.6;margin:0 0 var(--s-1);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--c-jaune);font-weight:700}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;font-size:var(--t-s)}
.footer a{text-decoration:none}
.footer a:hover{text-decoration:underline;text-decoration-color:var(--c-jaune)}
.footer .legal{margin-top:var(--s-6);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2);font-size:var(--t-xs);color:var(--c-taupe-clair)}
@media (max-width:700px){.footer .cols{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ===== Images réelles (reprises du site actuel) ===== */
.brand .logo{height:60px;width:auto}
@media (max-width:400px){.brand .logo{height:48px}}
.portrait{background:#fff;padding:0;overflow:hidden;align-items:flex-end}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center top}
.bien-photo{background:var(--c-taupe-clair)}
.bien-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.bien:hover .bien-img{transform:scale(1.04)}
.bien-photo .badge{z-index:2}
.bien-photo::after{z-index:1}
.esprit .mono{width:67px;height:auto}
@media (max-width:860px){.hero-tag{position:static;max-width:none;box-shadow:none;border-top:3px solid var(--c-jaune)}}
.footer .slogan img{margin-inline:auto;width:min(100%,520px);height:auto}

/* ==========================================================================
   AJOUTS LOT-Dev-01 : composants des pages intérieures
   ========================================================================== */

/* Accessibilité */
.skip{position:absolute;left:var(--s-2);top:-100px;z-index:100;background:var(--c-jaune);color:var(--c-texte);padding:.75rem 1rem;font-weight:700;border-radius:var(--radius)}
.skip:focus{top:var(--s-2)}
.btn:focus-visible,.nav a:focus-visible{outline:3px solid var(--c-texte);outline-offset:3px}
.on-dark :focus-visible,.footer :focus-visible{outline-color:var(--c-jaune)}
button.btn{cursor:pointer;font-family:inherit}
.btn-sombre{background:var(--c-texte);color:var(--c-blanc)}
.btn-sombre:hover{background:var(--c-jaune);color:var(--c-texte)}
.on-dark .btn-ligne{border-color:var(--c-blanc);color:var(--c-blanc)}
.on-dark .btn-ligne:hover{background:var(--c-blanc);color:var(--c-texte)}

/* Navigation : bouton jaune dans le menu mobile */
@media (max-width:980px){.burger li a.btn{display:flex;margin-top:.5rem;border:2px solid transparent}}
.burger[open] summary{background:var(--c-texte);color:var(--c-blanc)}
.burger[open] summary span.ico,.burger[open] summary span.ico::before,.burger[open] summary span.ico::after{background:var(--c-blanc)}

/* En-tête des pages intérieures (taupe, texte anthracite : 6,33:1) */
.page-head{background:var(--c-taupe);color:var(--c-texte)}
.page-head .wrap{display:grid;grid-template-columns:1fr;gap:var(--s-6);align-items:center;padding-block:clamp(2.5rem,1.5rem + 4vw,5rem)}
.page-head.avec-image .wrap{grid-template-columns:1.2fr .8fr}
.page-head .eyebrow{color:var(--c-texte)}
.page-head h1{font-size:var(--t-xxl);margin:var(--s-2) 0 0;max-width:20ch}
.page-head .lead{font-family:var(--f-titre);font-size:var(--t-l);max-width:44ch;margin-top:var(--s-3)}
.page-head .head-img{border-radius:220px 220px 0 0;overflow:hidden;aspect-ratio:4/5;max-width:360px;justify-self:end;width:100%;background:var(--c-taupe-clair)}
.page-head .head-img img{width:100%;height:100%;object-fit:cover;object-position:center top}
@media (max-width:860px){.page-head.avec-image .wrap{grid-template-columns:1fr}.page-head .head-img{justify-self:start;max-width:280px}}

/* Fil d'Ariane */
.ariane{font-size:var(--t-s);margin-bottom:var(--s-2)}
.ariane ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.ariane li+li::before{content:"/";margin-right:.4rem;color:var(--c-texte-doux)}
.ariane a{text-underline-offset:.2em;text-decoration-color:var(--c-texte-doux)}

/* Texte riche (Bard) */
.prose{max-width:68ch}
.prose>*+*{margin-top:1em}
.prose h2{font-size:var(--t-xl);margin-top:1.4em}
.prose h3{font-size:var(--t-l);margin-top:1.2em}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose ul,.prose ol{padding-left:1.25em}
.prose li+li{margin-top:.35em}
.prose ul li::marker{color:var(--c-ocre)}
.prose a{font-weight:600;text-decoration-color:var(--c-jaune);text-decoration-thickness:2px;text-underline-offset:.2em}
.prose a:hover{text-decoration-color:var(--c-texte)}
.prose blockquote{margin:0;padding-left:var(--s-3);border-left:4px solid var(--c-jaune);font-family:var(--f-titre);font-size:var(--t-l)}

/* Blocs du constructeur */
.blocs>.bloc+.bloc{margin-top:var(--s-8)}
.blocs .bloc-pleine{margin-inline:calc(-1 * var(--gutter))}
.bloc-ti{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s-6);align-items:center}
.bloc-ti.img-gauche .bloc-ti-img{order:-1}
.bloc-ti-img{border-radius:var(--radius);overflow:hidden;background:var(--c-taupe-clair)}
.bloc-ti-img img{width:100%;height:auto}
@media (max-width:860px){.bloc-ti{grid-template-columns:1fr;gap:var(--s-4)}.bloc-ti.img-gauche .bloc-ti-img{order:0}.bloc-ti-img{max-width:440px}}
.bloc-citation{background:var(--c-taupe-nuit);color:var(--c-blanc);padding:clamp(2rem,1rem + 4vw,4rem);border-radius:var(--radius)}
.bloc-citation blockquote{margin:0;font-family:var(--f-titre);font-size:clamp(1.35rem,1.1rem + 1.2vw,2.1rem);line-height:1.35;max-width:32ch}
.bloc-citation .q{color:var(--c-jaune)}
.bloc-citation .script{display:block;margin-top:var(--s-3);font-family:var(--f-script);font-size:2rem;line-height:1;color:var(--c-blanc)}
.bloc-services h2{font-size:var(--t-xl);margin-bottom:var(--s-4)}
.bloc-cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-6);padding:clamp(1.75rem,1rem + 3vw,3rem);border-radius:var(--radius);background:var(--c-fond-alt);border-left:6px solid var(--c-jaune)}
.bloc-cta h2{font-size:var(--t-xl)}
.bloc-cta p{color:var(--c-texte-doux);margin-top:var(--s-1);max-width:52ch}
.bloc-cta.sombre{background:var(--c-taupe-nuit);color:var(--c-blanc)}
.bloc-cta.sombre p{color:var(--c-taupe-clair)}

/* Cartes de biens : statut, sans photo, vendu */
.badge-statut{position:absolute;top:var(--s-2);right:var(--s-2);z-index:2;background:var(--c-taupe-nuit);color:var(--c-blanc);font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .6rem;border-radius:2px}
.badge-statut.reserve{background:var(--c-blanc);color:var(--c-texte);box-shadow:inset 0 0 0 2px var(--c-texte)}
.bien-photo .sans-photo{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--c-taupe-clair) 0%,var(--c-taupe) 100%)}
.bien-photo .sans-photo img{width:56px;height:auto;opacity:.9}
.bien.vendu .bien-img{filter:grayscale(.85)}
.bien.vendu .prix{color:var(--c-texte-doux)}

/* Filtres de la liste */
.filtres{background:var(--c-fond-alt);border-radius:var(--radius);padding:var(--s-3);display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:var(--s-2);align-items:end;margin-bottom:var(--s-4)}
.filtres .field select,.filtres .field input{min-height:44px;padding:.55rem .7rem}
.filtres .actions{display:flex;gap:var(--s-1);flex-wrap:wrap}
.filtres .btn{min-height:44px;padding:.55rem 1.1rem}
.filtres-reset{font-size:var(--t-s);font-weight:600;align-self:center;text-underline-offset:.2em}
@media (max-width:1100px){.filtres{grid-template-columns:repeat(3,minmax(0,1fr))}.filtres .actions{grid-column:1/-1}}
@media (max-width:600px){.filtres{grid-template-columns:1fr 1fr;padding:var(--s-2)}}
@media (max-width:380px){.filtres{grid-template-columns:1fr}}
.resultats{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-4);color:var(--c-texte-doux);font-size:var(--t-s)}
.resultats strong{color:var(--c-texte)}
.biens-vide.visible{display:block}
.biens-vide p{max-width:52ch;margin:0 auto var(--s-3)}
.note-demo{margin-top:var(--s-4);font-size:var(--t-xs);color:var(--c-texte-doux)}

/* Fiche d'un bien */
.fiche-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:var(--s-3);margin-bottom:var(--s-4)}
.fiche-head h1{font-size:var(--t-xxl);max-width:22ch;margin-top:var(--s-1)}
.fiche-head .lieu{color:var(--c-texte-doux);margin-top:var(--s-1)}
.fiche-prix{text-align:right}
.fiche-prix .montant{display:block;font-family:var(--f-titre);font-size:var(--t-l);font-weight:600}
.fiche-prix .ref{font-size:var(--t-xs);color:var(--c-texte-doux);letter-spacing:.06em}
.fiche-statut{display:inline-block;background:var(--c-taupe-nuit);color:var(--c-blanc);font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .7rem;border-radius:2px;margin-bottom:var(--s-1)}
@media (max-width:600px){.fiche-prix{text-align:left}}

.galerie{display:grid;grid-template-columns:2fr 1fr;gap:var(--s-1);margin-bottom:var(--s-6)}
.galerie a{display:block;position:relative;overflow:hidden;border-radius:var(--radius);background:var(--c-taupe-clair)}
.galerie img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.galerie a:hover img{transform:scale(1.03)}
.galerie .g-main{grid-row:span 2}
.galerie .g-main img{position:absolute;inset:0}
.galerie .g-side{aspect-ratio:4/3}
.galerie .g-plus{position:absolute;right:var(--s-1);bottom:var(--s-1);background:var(--c-taupe-nuit);color:var(--c-blanc);font-size:var(--t-xs);font-weight:700;padding:.3rem .6rem;border-radius:2px}
.galerie.une{grid-template-columns:1fr}
.galerie.une .g-main{grid-row:auto;aspect-ratio:16/9;max-height:620px}
.galerie .g-hidden{display:none}
.galerie-vide{aspect-ratio:16/7;display:grid;place-items:center;background:linear-gradient(135deg,var(--c-taupe-clair),var(--c-taupe));border-radius:var(--radius);margin-bottom:var(--s-6)}
.galerie-vide img{width:72px;height:auto}
@media (max-width:700px){.galerie{grid-template-columns:1fr 1fr}.galerie .g-main{grid-column:1/-1;grid-row:auto;aspect-ratio:4/3}}

.fiche-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s-8);align-items:start}
.fiche-layout aside{position:sticky;top:100px;display:grid;gap:var(--s-4)}
@media (max-width:960px){.fiche-layout{grid-template-columns:1fr;gap:var(--s-6)}.fiche-layout aside{position:static}}
.fiche h2{font-size:var(--t-l);margin-bottom:var(--s-2)}
.fiche section+section{margin-top:var(--s-6)}
.fiche .accroche{font-family:var(--f-titre);font-size:var(--t-l);margin-bottom:var(--s-3)}
.carac{margin:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--c-ligne)}
.carac div{display:flex;justify-content:space-between;gap:var(--s-2);padding:.75rem 0;border-bottom:1px solid var(--c-ligne)}
.carac div:nth-child(2n+1){padding-right:var(--s-3)}
.carac div:nth-child(2n){padding-left:var(--s-3);border-left:1px solid var(--c-ligne)}
.carac dt{color:var(--c-texte-doux);font-size:var(--t-s)}
.carac dd{margin:0;font-weight:600;text-align:right}
@media (max-width:600px){.carac{grid-template-columns:1fr}.carac div:nth-child(n){padding-inline:0;border-left:0}}
.docs{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-1)}
.docs a{display:flex;align-items:center;gap:.75rem;padding:.8rem 1rem;border:1px solid var(--c-texte-doux);border-radius:var(--radius);text-decoration:none;font-weight:600}
.docs a:hover{background:var(--c-fond-alt)}
.docs .pdf{flex:none;font-size:var(--t-xs);font-weight:700;background:var(--c-jaune);color:var(--c-texte);padding:.15rem .4rem;border-radius:2px}
.carte{aspect-ratio:16/10;width:100%;border:0;border-radius:var(--radius);background:var(--c-taupe-clair);display:block}
.carte-lien{margin-top:var(--s-1);font-size:var(--t-s)}
.carte-lien a{font-weight:600;text-decoration-color:var(--c-jaune);text-decoration-thickness:2px;text-underline-offset:.2em}
.contact-fiche{background:var(--c-taupe-nuit);color:var(--c-blanc);padding:var(--s-4);border-radius:var(--radius)}
.contact-fiche h2{color:var(--c-blanc)}
.contact-fiche p{color:var(--c-taupe-clair);font-size:var(--t-s)}
.contact-fiche .ctas{display:flex;flex-wrap:wrap;gap:var(--s-1);margin-top:var(--s-3)}
.contact-fiche .script{font-family:var(--f-script);font-size:2rem;line-height:1;margin-bottom:var(--s-1)}
.fiche-form{margin-top:var(--s-8)}
.fiche-form .layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--s-6)}
.fiche-form h2{font-size:var(--t-xl)}
.fiche-form .lead{color:var(--c-texte-doux);margin-top:var(--s-2)}
@media (max-width:900px){.fiche-form .layout{grid-template-columns:1fr;gap:var(--s-3)}}
.retour{display:inline-flex;margin-top:var(--s-6);font-weight:600;text-underline-offset:.2em}

/* Visionneuse photos (dialog natif) */
.lightbox{border:0;padding:0;max-width:none;max-height:none;width:100%;height:100%;background:rgba(30,28,28,.94);color:var(--c-blanc)}
.lightbox::backdrop{background:rgba(30,28,28,.94)}
.lightbox[open]{display:grid;grid-template-rows:auto 1fr auto}
.lb-bar{display:flex;justify-content:space-between;align-items:center;padding:var(--s-2) var(--gutter);font-size:var(--t-s)}
.lb-fig{margin:0;display:grid;place-items:center;min-height:0;padding:0 var(--s-8)}
.lb-fig img{max-width:100%;max-height:calc(100vh - 150px);object-fit:contain}
.lb-fig figcaption{margin-top:var(--s-1);color:var(--c-taupe-clair);font-size:var(--t-s);text-align:center}
.lb-btn{background:var(--c-jaune);color:var(--c-texte);border:0;border-radius:var(--radius);min-width:48px;min-height:48px;font-size:1.4rem;font-weight:700;cursor:pointer}
.lb-btn:hover{background:var(--c-blanc)}
.lb-btn:focus-visible{outline:3px solid var(--c-blanc);outline-offset:3px}
.lb-nav{display:flex;justify-content:center;gap:var(--s-2);padding:var(--s-2)}
@media (max-width:600px){.lb-fig{padding:0 var(--s-1)}}

/* Formulaire : messages */
.form .alerte{padding:var(--s-2) var(--s-3);border-radius:var(--radius);font-weight:500}
.form .alerte.ok{background:var(--c-fond);border-left:6px solid var(--c-jaune)}
.form .alerte.err{background:var(--c-fond);border-left:6px solid #9B1C1C;color:#7A1414}
.form .alerte ul{margin:.5rem 0 0;padding-left:1.2rem;font-weight:400}
.field .erreur{color:#7A1414;font-size:var(--t-s);font-weight:600}
.field [aria-invalid=true]{border-color:#9B1C1C!important;border-width:2px!important}
.form .obligatoire{color:var(--c-texte-doux);font-weight:400}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.choice label:has(input:checked){background:var(--c-texte);color:var(--c-blanc);border-color:var(--c-texte)}
.choice label:has(input:focus-visible){outline:3px solid var(--c-jaune);outline-offset:2px}
.choice input{accent-color:var(--c-jaune)}
.form .bien-concerne{font-size:var(--t-s);background:var(--c-fond);padding:.6rem .9rem;border-radius:var(--radius);border:1px dashed var(--c-texte-doux)}

/* Page contact */
.coords .multi{white-space:pre-line}
.contact-page .layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-8)}
@media (max-width:900px){.contact-page .layout{grid-template-columns:1fr;gap:var(--s-6)}}
.horaires{margin-top:var(--s-4);padding:var(--s-3);background:var(--c-fond-alt);border-radius:var(--radius);font-size:var(--t-s);color:var(--c-texte-doux)}
.horaires strong{display:block;color:var(--c-texte);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.35rem}

/* Pied de page : liens de navigation, logo */
.footer .legal a{text-decoration:underline;text-underline-offset:.2em}
.footer .cols li{color:var(--c-blanc)}

/* 404 */
.page-404{text-align:center}
.page-404 .wrap{display:grid;justify-items:center;gap:var(--s-3)}
.page-404 h1{font-size:var(--t-xxl)}
.page-404 p{color:var(--c-texte-doux);max-width:46ch}

/* Petits écrans : rien ne déborde */
@media (max-width:400px){.btn{padding:.75rem 1.1rem}.coords li{grid-template-columns:1fr}}
.bien h2.h3{font-size:1.35rem;font-weight:500}
.bien:hover h2.h3{text-decoration:underline;text-decoration-color:var(--c-jaune);text-decoration-thickness:3px;text-underline-offset:.25em}
.esprit h2.eyebrow{font-family:var(--f-texte);line-height:1.6;margin:0}
@media (max-width:600px){.filtres .field:nth-child(5){grid-column:1/-1}}
figure.bloc,.bloc-ti-img{margin-left:0;margin-right:0;margin-bottom:0}
.blocs>.bloc:first-child{margin-top:0}
