/* Tabitoo.fr — registre creme de la charte (Fraunces / Manrope / Space Grotesk),
   vocabulaire « dossier technique » aligne sur le depot de la filiale :
   feuilles d'etude, filets cotes a l'encre, tampons, cartouche de plan.
   Boutons : rectangle 10px, aplat franc, ombre encre, levee de 2px au survol. */

:root{
  --fond:#f4efe4;
  --surface:#fbf8f1;
  --blanc:#ffffff;
  --texte:#26433d;
  --texte-2:#5c574c;
  --texte-3:#6d6656;
  --bord:#e6dfce;
  --bord-fort:#d6cdb6;
  --filet-champ:#8a7f68;   /* 3,44:1 sur crème — seuil WCAG 1.4.11 pour un bord de champ */
  --carte-bord:#26433d1a;
  --terracotta:#bc5d3c;
  --terracotta-fort:#a2492b;
  --terracotta-nuit:#8f4227;
  --ember-100:#f1d7c7;
  --ember-300:#dda184;
  --petrole:#2f5b54;
  --petrole-nuit:#223a37;
  --on-ember:#fbf5ee;
  --sur-aplat-2:#f6e3d8;
  --nuit:#07130f;
  --encre:var(--texte);
  --encre-2:#26433d73;
  --encre-3:#26433d40;

  --ombre-1:0 1px 2px #26433d0d, 0 2px 10px #26433d0f;
  --ombre-2:0 2px 8px #26433d0f, 0 14px 34px -10px #26433d29;
  --ombre-3:0 10px 24px -8px #26433d29, 0 30px 70px -20px #26433d38;

  --r-xs:6px;
  --r-sm:10px;
  --r-md:16px;

  --font-display:"Fraunces",ui-serif,Georgia,"Times New Roman",serif;
  --font-sans:"Manrope",ui-sans-serif,system-ui,sans-serif;
  --font-mono:"Space Grotesk",ui-monospace,SFMono-Regular,monospace;

  --container:1240px;
  --marge:clamp(20px,4vw,3.25rem);
  --entete-h:4.75rem;

  --ease:cubic-bezier(.4,0,.2,1);
  --ease-expo:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{
  overflow-x:clip;-webkit-text-size-adjust:100%;
  scroll-padding-top:calc(var(--entete-h) + 1.5rem);
  scrollbar-color:var(--bord-fort) transparent;
}
/* Les fiches portent une seconde barre collante sous l'en-tete. Sans ce
   supplement, le titre vise par une ancre se range dessous, hors de vue. */
html:has(.fiche-nav){scroll-padding-top:calc(var(--entete-h) + 3.25rem + 1.25rem)}
body{
  margin:0;
  background:var(--fond);
  color:var(--texte);
  font-family:var(--font-sans);
  font-size:clamp(1rem,.97rem + .15vw,1.125rem);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4,p,dl,dd,figure,figcaption,blockquote,ul,ol{margin:0}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.012em;line-height:1.04}
p{text-wrap:pretty}
p,li,dd,dt,figcaption,address,summary{overflow-wrap:break-word}
h1,h2,h3,h4{overflow-wrap:anywhere}
a{color:inherit}
::selection{background:var(--terracotta-fort);color:var(--on-ember)}
:focus-visible{outline:2px solid var(--petrole);outline-offset:3px;border-radius:3px}
.aplat :focus-visible{outline-color:var(--on-ember)}

.contenu{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--marge)}
.large{max-width:1440px}

/* ---------- Voix du document ---------- */
.imp-label{
  font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
}
.imp-note{font-family:var(--font-mono);font-size:.75rem;line-height:1.6;color:var(--texte-3)}
.imp-data{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* Filet cote : trait fin ferme par deux serifs verticaux. */
.rule-tech{position:relative;height:1px;background:var(--encre-2);margin-bottom:1.15rem;width:56px}
.rule-tech::before,.rule-tech::after{content:"";position:absolute;top:-3px;width:1px;height:7px;background:var(--encre-2)}
.rule-tech::before{left:0}
.rule-tech::after{right:0}

/* Tampon : mention apposee, jamais parfaitement d'aplomb. */
.stamp{
  display:inline-flex;align-items:center;gap:.375rem;
  padding:.3rem .6rem;border:1.5px solid currentColor;border-radius:var(--r-xs);
  font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  transform:rotate(-1.4deg);
}
.stamp-ember{color:var(--terracotta-fort)}
.stamp-petrole{color:var(--petrole)}

/* Feuille d'etude : papier a marge reglee. */
.feuille{
  --marge-feuille:2.75rem;
  position:relative;background:var(--surface);
  border:1px solid var(--bord);border-radius:var(--r-md);
}
.feuille::before{
  content:"";position:absolute;inset-block:1.15rem;left:var(--marge-feuille);width:1px;
  background:color-mix(in srgb,var(--terracotta) 24%,transparent);pointer-events:none;
}
.feuille-int{padding:1.6rem 1.9rem 1.5rem calc(var(--marge-feuille) + 1.15rem)}

/* Trame bleu de plan. */
.trame{
  background-image:
    linear-gradient(to right,#26433d14 1px,transparent 1px),
    linear-gradient(to bottom,#26433d14 1px,transparent 1px);
  background-size:22px 22px;
}

.acces-rapide{
  position:absolute;left:-9999px;top:0;
  background:var(--texte);color:var(--fond);
  padding:.65rem 1.1rem;border-radius:0 0 var(--r-sm) 0;z-index:120;
  font-weight:600;text-decoration:none;
}
.acces-rapide:focus-visible{left:0}


/* ---------- En-tete ---------- */
.entete{
  position:fixed;top:0;left:0;right:0;z-index:70;
  background:color-mix(in srgb,var(--fond) 88%,transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--carte-bord);
  transition:transform .45s var(--ease);
}
.entete.cachee{transform:translateY(-100%)}
.entete-int{display:flex;align-items:center;gap:clamp(.6rem,2vw,1.5rem);height:var(--entete-h);min-width:0}

.marque{display:inline-flex;align-items:center;gap:.6rem;min-width:0;overflow:hidden;text-decoration:none;color:var(--texte);padding-block:.55rem}
.marque .signe{width:29px;height:27px;flex:none}
.marque .nom{white-space:nowrap;
  font-family:var(--font-display);font-weight:600;font-size:1.02rem;
  letter-spacing:.17em;text-transform:uppercase;line-height:1;
  padding-top:.12em;
}
.marque .nom em{font-style:normal;color:var(--terracotta-fort)}

.entete-nav{display:flex;align-items:center;gap:1.6rem;margin-left:.75rem;min-width:0;overflow:hidden}
.entete-nav a{
  position:relative;white-space:nowrap;
  font-size:.875rem;font-weight:500;color:var(--texte-2);
  text-decoration:none;padding-block:.55rem;transition:color .15s;
}
/* La zone touchable est portee a 44 px par un calque, sans deplacer le filet
   de survol qui, lui, doit rester colle au mot. */
.entete-nav a::before{content:"";position:absolute;inset:-.4rem -.55rem;}
.entete-nav a::after{
  content:"";position:absolute;left:0;bottom:.1rem;height:1px;width:100%;
  background:var(--terracotta-fort);transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease-expo);
}
.entete-nav a:hover::after,.entete-nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.entete-nav a:hover{color:var(--texte)}
.entete-nav a[aria-current="page"]{color:var(--terracotta-fort);font-weight:600}

.entete-fin{margin-left:auto;display:flex;align-items:center;gap:.9rem;flex:none}
.entete-tel{
  display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  font-size:.8125rem;font-weight:700;letter-spacing:.02em;
  color:var(--texte);text-decoration:none;
  padding:.66rem .85rem;border:1px solid var(--bord-fort);border-radius:var(--r-sm);
  transition:border-color .2s,background-color .2s;
}
.entete-tel:hover{border-color:var(--texte);background:var(--surface)}
.entete-tel .combine{width:15px;height:15px;flex:none;display:none}

/* Bouton de menu (ecrans etroits) */
.menu-btn{
  display:none;appearance:none;cursor:pointer;
  align-items:center;justify-content:center;gap:.5rem;
  min-height:2.75rem;min-width:2.75rem;
  padding:.72rem .85rem;border:1px solid var(--bord-fort);border-radius:var(--r-sm);
  background:transparent;color:var(--texte);
  font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
}
.menu-btn .barres{display:inline-flex;flex-direction:column;gap:3px;width:14px}
.menu-btn .barres i{display:block;height:1.5px;background:currentColor;transition:transform .3s var(--ease),opacity .2s}
.menu-btn[aria-expanded="true"] .barres i:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .barres i:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] .barres i:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}

.panneau{
  position:fixed;inset:0;z-index:65;
  background:var(--fond);
  display:flex;flex-direction:column;justify-content:center;
  padding:calc(var(--entete-h) + 2rem) var(--marge) 2rem;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
}
.panneau[data-ouvert="true"]{opacity:1;visibility:visible;transform:none}
.panneau nav{display:flex;flex-direction:column;gap:.2rem}
.panneau nav a{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(1.9rem,1.2rem + 3.4vw,2.9rem);
  line-height:1.22;text-decoration:none;color:var(--texte);
  border-bottom:1px solid var(--bord);padding-block:.7rem;
}
.panneau nav a[aria-current="page"]{color:var(--terracotta-fort)}
.panneau .panneau-pied{margin-top:2.2rem;display:flex;flex-direction:column;gap:.55rem}
.panneau .panneau-pied a{text-decoration:none;color:var(--texte);padding-block:.45rem;display:inline-block}
.panneau .panneau-tel{font-family:var(--font-mono);font-weight:700;font-size:1.15rem;font-variant-numeric:tabular-nums}
body[data-fige="true"]{overflow:hidden}

/* ---------- Heros ---------- */
.heros{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:clip}
.heros-fond{position:absolute;inset:0;z-index:-2}
.heros-fond img{width:100%;height:100%;object-fit:cover}
.heros-ombre{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,#07130fe0 0%,#07130f8c 38%,#07130f38 70%,#07130f1a 100%)}
.heros-int{width:100%;padding-block:calc(var(--entete-h) + 1.5rem) clamp(5.5rem,11vh,7.5rem)}
.heros .imp-label{color:var(--ember-300)}
.heros h1{
  margin-top:1.1rem;
  font-size:clamp(2.6rem,1.5rem + 5.4vw,6.2rem);
  line-height:1;color:#f7f3e9;
  max-width:15em;
  text-shadow:0 1px 30px #07130f4d;
}
.heros h1 em,.page-tete h1 em{font-style:italic;font-weight:400}
.heros-phrase{
  margin-top:1.5rem;font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.05rem,.98rem + .5vw,1.4rem);line-height:1.55;
  color:#ded6c5;max-width:30em;
}
.heros-geste{display:inline-flex;margin-top:2rem}
.heros .lien-grand{color:#f7f3e9;border-color:#f7f3e945}
.heros .lien-grand:hover{color:var(--ember-300);border-color:var(--ember-300)}
.heros-bas{
  position:absolute;left:0;right:0;bottom:0;z-index:1;
  display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;
  padding:0 var(--marge) 1.1rem;
  pointer-events:none;
}
.heros-indice{display:flex;align-items:center;gap:.7rem;color:#ded6c5}
.heros-indice::after{content:"";width:48px;height:1px;background:#f7f3e945}
.heros-credit{color:#cfc7b6;text-align:right}

/* ---------- Tete de page interieure ---------- */
.page-tete{padding-block:calc(var(--entete-h) + clamp(3.5rem,9vh,6rem)) clamp(2.5rem,5vw,4rem)}
.page-tete .imp-label{color:var(--terracotta-fort)}
.page-tete h1{margin-top:.9rem;font-size:clamp(2.4rem,1.5rem + 3.9vw,4.6rem);line-height:1.03;max-width:14em}
.page-tete .intro{margin-top:1.5rem;max-width:38em;line-height:1.75;color:var(--texte-2);font-size:clamp(1.05rem,1rem + .3vw,1.2rem)}

/* ---------- Sections ---------- */
.section{padding-block:clamp(4rem,9vw,7.5rem)}
.section-tete .imp-label{color:var(--petrole)}
.section-tete h2{margin-top:.75rem;font-size:clamp(2rem,1.35rem + 2.8vw,3.5rem)}
/* Un h2 qui joue le role d'etiquette garde la voix du document, pas celle du titre. */
.section-tete h2.imp-label{margin-top:0;font-size:.6875rem;line-height:1.6;letter-spacing:.12em}
.section-tete .intro{margin-top:1.2rem;max-width:38em;line-height:1.75;color:var(--texte-2)}

.manifeste p{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.55rem,1.05rem + 2.3vw,2.9rem);
  line-height:1.34;letter-spacing:-.005em;
  max-width:24em;color:var(--texte);
}
.manifeste p strong{font-weight:600;color:var(--terracotta-fort)}
.mot{opacity:.16}

/* Panneau papier pose sur le creme */
.papier{
  background:var(--blanc);color:var(--texte);
  width:calc(100% - clamp(0.8rem,2.4vw,2.4rem)*2);
  margin-inline:auto;
  border-radius:clamp(18px,2.6vw,36px);
  border:1px solid var(--carte-bord);
  box-shadow:var(--ombre-2);
}
.papier p{color:var(--texte-2)}

/* Bande cinetique */
.defile{overflow:clip;padding-block:clamp(1.6rem,4vw,3rem)}
.defile-int{
  display:flex;gap:4.5rem;white-space:nowrap;will-change:transform;
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:clamp(3.2rem,7.5vw,7rem);line-height:1.12;
  color:transparent;-webkit-text-stroke:1.1px #26433d38;
}

.curseur{
  position:fixed;left:0;top:0;width:11px;height:11px;border-radius:50%;
  background:var(--terracotta-fort);pointer-events:none;z-index:100;
  transform:translate(-50%,-50%);opacity:0;
}
html:not(.anime) .curseur{display:none}
@media (pointer:coarse){.curseur{display:none}}

.voile-page{
  position:fixed;inset:0;z-index:105;background:var(--fond);
  transform:translateY(101%);pointer-events:none;
}

/* ---------- Rangees ---------- */
.rangee{
  display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(1.2rem,3.5vw,5rem);
  padding-block:clamp(2.2rem,4vw,3.4rem);
  border-bottom:1px solid var(--bord);
  position:relative;
}
.rangee:first-of-type{border-top:1px solid var(--bord)}
.rangee h3{font-size:clamp(1.85rem,1.3rem + 2.2vw,3.1rem);font-weight:400;color:var(--texte)}
.rangee h3 strong{font-weight:600}
.rangee .colonne-texte p{max-width:36em;line-height:1.75}
.rangee .colonne-texte p + p{margin-top:.9rem}
.rangee-tete{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem}

.survol-image{
  position:fixed;z-index:45;pointer-events:none;
  width:min(280px,22vw);aspect-ratio:4/5;border-radius:var(--r-sm);
  overflow:clip;opacity:0;transform:scale(.92);
  box-shadow:var(--ombre-3);
}
.survol-image img{width:100%;height:100%;object-fit:cover}

/* ---------- Liens ---------- */
.lien{
  color:var(--terracotta-fort);font-weight:600;
  text-decoration:underline;text-decoration-thickness:1px;
  text-decoration-color:#a2492b70;text-underline-offset:4px;
  transition:color .15s,text-decoration-color .15s;
}
.lien:hover{color:var(--texte);text-decoration-color:currentColor}

.lien-grand{
  display:inline-flex;align-items:center;gap:.75rem;
  font-family:var(--font-mono);font-size:.75rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--texte);text-decoration:none;
  padding-block:.72rem;border-bottom:1px solid var(--bord-fort);
  transition:border-color .2s,color .2s;
}
.lien-grand::after{content:"→";font-family:var(--font-sans);transition:transform .3s var(--ease-expo)}
.lien-grand:hover{border-color:var(--terracotta-fort);color:var(--terracotta-fort)}
.lien-grand:hover::after{transform:translateX(5px)}

/* ---------- Boutons : rectangle 10px, aplat franc, ombre encre, levee 2px ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85rem 1.5rem;border-radius:var(--r-sm);border:1px solid transparent;
  font-family:var(--font-sans);font-size:.9375rem;font-weight:600;letter-spacing:-.01em;
  text-decoration:none;cursor:pointer;text-align:center;max-width:100%;
  transition:transform .2s var(--ease-expo),box-shadow .2s var(--ease-expo),background-color .2s,border-color .2s,color .2s;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:none}
.btn-plein{background:var(--terracotta-fort);color:var(--on-ember);box-shadow:var(--ombre-2)}
.btn-plein:hover{background:var(--terracotta-nuit);box-shadow:var(--ombre-3)}
.btn-contour{background:var(--blanc);color:var(--texte);border-color:var(--carte-bord);box-shadow:var(--ombre-1)}
.btn-contour:hover{border-color:var(--encre-2);box-shadow:var(--ombre-2)}
.aplat .btn-clair{background:var(--fond);color:var(--terracotta-nuit);box-shadow:0 2px 0 #7a3720}
.aplat .btn-clair:hover{background:#fff;box-shadow:0 4px 0 #7a3720}
.aplat .btn-fantome{background:transparent;color:var(--on-ember);border-color:#fbf5ee66}
.aplat .btn-fantome:hover{border-color:var(--on-ember);background:#fbf5ee1a}

/* ---------- Bande photographique ---------- */
.bande-photo{position:relative;overflow:clip;height:clamp(320px,48vw,560px)}
.bande-photo img{width:100%;height:120%;object-fit:cover;will-change:transform}
.credit-pose{
  position:absolute;right:.8rem;bottom:.8rem;
  color:#ded6c5;background:#07130fa6;padding:.22rem .6rem;border-radius:var(--r-xs);
  font-family:var(--font-mono);font-size:.7rem;
}

/* ---------- Duo texte + image ---------- */
.duo{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));
  gap:clamp(2rem,5vw,5rem);align-items:center;
}
.duo .cadre{border-radius:var(--r-md);overflow:clip;position:relative;border:1px solid var(--carte-bord)}
.duo .cadre img{width:100%;height:auto}
.duo-haut{align-items:start}
.duo .texte p{color:var(--texte-2);line-height:1.8;max-width:34em}
.duo .texte p + p{margin-top:1rem}
.duo .texte .lien-page{display:inline-flex;margin-top:1.5rem}

/* ---------- Criteres d'achat (bordereau) ---------- */
.bordereau{margin-top:2.4rem;border-top:2px solid var(--encre)}
.bordereau .ligne{
  display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap;
  padding-block:1rem;border-bottom:1px solid var(--bord);
}
.bordereau dt{flex:0 0 9.5rem;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--petrole)}
.bordereau dd{flex:1 1 22ch;min-width:0;margin:0;color:var(--texte-2);line-height:1.7}
.bordereau dd strong{color:var(--texte);font-weight:600}

/* ---------- Etapes ---------- */
.etapes{counter-reset:etape}
.etape{
  display:grid;grid-template-columns:auto minmax(0,.7fr) minmax(0,1.3fr);
  gap:clamp(1rem,3vw,3.5rem);align-items:start;
  padding-block:clamp(1.8rem,3.2vw,2.6rem);
  border-bottom:1px solid var(--bord);
}
.etape:first-child{border-top:1px solid var(--bord)}
.etape::before{
  counter-increment:etape;content:counter(etape,decimal-leading-zero);
  font-family:var(--font-mono);font-size:.75rem;font-weight:700;letter-spacing:.1em;
  color:var(--terracotta-fort);padding-top:.55rem;
}
.etape h3{font-size:clamp(1.6rem,1.2rem + 1.7vw,2.5rem);font-weight:400;color:var(--texte)}
.etape h3 strong{font-weight:600}
.etape p{color:var(--texte-2);line-height:1.78;max-width:34em}

/* ---------- Convictions ---------- */
.convictions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr));gap:clamp(1.8rem,3.5vw,3.2rem);margin-top:2.6rem}
.conviction{border-top:2px solid var(--encre);padding-top:1.2rem}
.conviction h3{font-size:clamp(1.35rem,1.15rem + .8vw,1.8rem)}
.conviction p{margin-top:.7rem;line-height:1.72;color:var(--texte-2)}

/* ---------- Questions ---------- */
.questions{margin-top:2.4rem;border-top:1px solid var(--bord)}
.question{border-bottom:1px solid var(--bord)}
.question summary{
  list-style:none;cursor:pointer;padding-block:1.15rem;
  display:flex;align-items:flex-start;gap:1rem;
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(1.1rem,1rem + .5vw,1.35rem);line-height:1.35;
}
.question summary::-webkit-details-marker{display:none}
.question summary::after{
  content:"+";margin-left:auto;flex:none;
  font-family:var(--font-mono);font-weight:700;color:var(--terracotta-fort);
  transition:transform .25s var(--ease);
}
.question[open] summary::after{transform:rotate(45deg)}
.question p{padding-bottom:1.3rem;max-width:44em;color:var(--texte-2);line-height:1.78}
.question p + p{padding-bottom:0;margin-top:-.6rem;padding-top:0}

/* ---------- Parole ---------- */
.parole{border-left:3px solid var(--terracotta);padding-left:clamp(1.3rem,3vw,2.2rem)}
.parole blockquote p{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.55rem,1.15rem + 2vw,2.8rem);line-height:1.36;
  color:var(--texte);max-width:22em;
}
.parole figcaption{margin-top:1.4rem;color:var(--texte-3)}

/* ---------- Aplat terracotta ---------- */
.aplat{
  background:var(--terracotta-fort);color:var(--on-ember);
  width:calc(100% - clamp(0.8rem,2.4vw,2.4rem)*2);
  margin-inline:auto;margin-block:clamp(1rem,2.6vw,2rem);
  border-radius:clamp(18px,2.6vw,36px);
}
.aplat ::selection{background:var(--nuit);color:#f4efe4}
.aplat-int{padding-block:clamp(3.6rem,8vw,6.5rem)}
.aplat .imp-label{color:var(--sur-aplat-2)}
.aplat h2{margin-top:.7rem;font-size:clamp(2.1rem,1.4rem + 3.2vw,4.2rem);max-width:15em}
.aplat p{margin-top:1.1rem;color:#f7ece4;max-width:36em;line-height:1.75}
.aplat .actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.8rem}

/* ---------- Espace des biens ---------- */
.filtres{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2.2rem}
.filtres button{
  appearance:none;cursor:pointer;
  padding:.85rem 1.15rem;border-radius:var(--r-sm);
  font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  background:transparent;color:var(--texte-2);
  border:1px solid var(--bord-fort);
  transition:color .2s,border-color .2s,background-color .2s,transform .2s var(--ease-expo);
}
.filtres button:hover{color:var(--texte);border-color:var(--encre);transform:translateY(-1px)}
.filtres button[aria-pressed="true"]{background:var(--encre);color:var(--fond);border-color:var(--encre)}

.biens-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(17rem,100%),1fr));gap:clamp(1.2rem,2.4vw,2.2rem);margin-top:2.6rem}
.bien-carte{
  position:relative;display:block;text-decoration:none;
  border:1px solid var(--carte-bord);border-radius:var(--r-md);
  overflow:clip;background:var(--blanc);box-shadow:var(--ombre-1);
  transition:box-shadow .25s,border-color .25s,transform .25s var(--ease-expo);
}
.bien-carte:hover{border-color:var(--bord-fort);box-shadow:var(--ombre-2);transform:translateY(-2px)}
/* La carte rogne ce qui deborde : pose sur le lien interieur, l'anneau de
   focus disparaissait. Il rentre donc dans la carte par defaut, et se
   reporte sur la carte elle-meme des que :has() est la. */
.bien-lien:focus-visible{outline:2px solid var(--petrole);outline-offset:-3px}
@supports selector(:has(*)){
  .bien-lien:focus-visible{outline:0}
  .bien-carte:has(.bien-lien:focus-visible){outline:2px solid var(--petrole);outline-offset:3px}
}
.bien-visuel{position:relative;aspect-ratio:4/3;overflow:clip}
.bien-visuel img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-expo)}
.bien-carte:hover .bien-visuel img{transform:scale(1.05)}
.bien-statut{
  position:absolute;left:.85rem;top:.85rem;
  font-family:var(--font-mono);font-size:.66rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  background:#07130fdb;color:#f4efe4;
  padding:.34rem .62rem;border-radius:var(--r-xs);
}
.bien-exemple{
  position:absolute;right:.85rem;top:.85rem;
  background:color-mix(in srgb,var(--fond) 92%,transparent);
}
.bien-infos{display:flex;flex-direction:column;flex:1 1 auto;padding:1.1rem 1.2rem 1.2rem}
.bien-infos h3{font-size:1.3rem;font-weight:600;color:var(--texte)}
.bien-infos .imp-note{margin-top:.35rem}
.bien-carte.retiree{display:none}

/* ---------- Coordonnees ---------- */
.coordonnees .ligne{display:flex;align-items:baseline;gap:.9rem;padding-block:1rem}
.coordonnees .ligne + .ligne{border-top:1px solid var(--bord)}
.coordonnees dt{flex:none;color:var(--texte-3)}
.coordonnees dd{margin:0;font-weight:600;font-size:1.05rem;color:var(--texte);text-align:right;flex:1 1 auto}
.coordonnees dd.donnee{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700}
.coordonnees a{
  position:relative;text-decoration:none;color:var(--texte);
  border-bottom:1.5px solid var(--bord-fort);padding-bottom:1px;
  transition:border-color .15s;
}
.coordonnees a::after{content:"";position:absolute;inset:-.6rem -.35rem}
.coordonnees a:hover{border-color:var(--terracotta-fort)}

/* ---------- Pied : cartouche de plan ---------- */
.pied{border-top:2px solid var(--encre);background:var(--fond)}
.pied-int{display:flex;flex-wrap:wrap;gap:2.2rem 3rem;padding-block:3rem 2.4rem}
.pied-int > *{flex:1 1 11rem;min-width:0}
.pied-marque{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;flex:1 1 17rem;max-width:26rem}
.pied .marque .signe{width:38px;height:36px}
.pied .marque .nom{white-space:nowrap;font-size:1.2rem}
.pied .titre-colonne{
  font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--texte-3);
}
.pied ul{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column}
.pied ul a{display:inline-block;padding-block:.6rem;font-size:.92rem;color:var(--texte-2);text-decoration:none;transition:color .15s}
.pied ul a:hover{color:var(--texte)}
.pied address{font-style:normal;margin-top:.6rem;display:flex;flex-direction:column;font-size:.92rem;color:var(--texte-2)}
.pied address a,.pied address span{padding-block:.6rem}
.pied address a{display:inline-block;text-decoration:none;color:var(--texte-2);transition:color .15s}
.pied address a:hover{color:var(--texte)}
.pied address .tel{font-family:var(--font-mono);font-weight:700;color:var(--texte)}
.pied-note{font-size:.92rem;color:var(--texte-2);max-width:24em;line-height:1.65}
.pied .lien{text-decoration-thickness:1px}

.cartouche{border-top:1px solid var(--encre)}
.cartouche-int{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  font-family:var(--font-mono);
}
.cartouche-cell{padding:.85rem 1rem;border-inline-start:1px solid var(--carte-bord);min-width:0}
.cartouche-cell:first-child{border-inline-start:0;padding-inline-start:0}
.cartouche-cell dt{font-size:.625rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-3)}
.cartouche-cell dd{margin:.3rem 0 0;font-size:.78rem;font-weight:600;color:var(--texte)}

/* ---------- Etats d'animation ---------- */
.anime [data-reveal]{opacity:0;transform:translateY(24px)}
.anime [data-reveal-image]{clip-path:inset(0 0 100% 0)}
.anime [data-reveal-image] img{transform:scale(1.12)}

/* ---------- Ecrans bas (telephone en paysage, petits portables) ----------
   Le heros est cale sur la hauteur : sans cela le titre et l'appel passent
   sous la ligne de flottaison, et la composition « texte pose sur l'ombre »
   ne se lit plus. */

/* ---------- Bordereau de contact ----------
   Registre du dossier technique : pas de boîtes, des champs soulignés à l'encre,
   des étiquettes en voix de document. Rien n'est envoyé à un serveur : le
   formulaire compose un courriel dans le logiciel du visiteur. */
.formulaire{margin-top:2.2rem}
.formulaire fieldset{border:0;margin:0;padding:0}
.formulaire fieldset + fieldset{margin-top:2.6rem}
.formulaire legend{
  padding:0;margin-bottom:1.4rem;
  font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--petrole);
}
.formulaire legend::after{
  content:"";display:block;width:100%;height:1px;margin-top:.7rem;
  background:var(--encre);
}

.champs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr));gap:1.5rem 1.8rem}
.champ{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.champ-large{grid-column:1 / -1}
.champ label{
  font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--texte-3);
}
.champ .requis{color:var(--terracotta-fort);margin-left:.2em}
.champ input,.champ select,.champ textarea{
  width:100%;min-width:0;
  font-family:var(--font-sans);font-size:1rem;color:var(--texte);
  background:transparent;
  border:0;border-bottom:1.5px solid var(--filet-champ);
  border-radius:0;padding:.72rem 0 .68rem;
  transition:border-color .18s;
}
.champ textarea{resize:vertical;min-height:6.5rem;line-height:1.6}
.champ input:hover,.champ select:hover,.champ textarea:hover{border-bottom-color:var(--texte-2)}
.champ input:focus,.champ select:focus,.champ textarea:focus{
  outline:2px solid var(--petrole);outline-offset:4px;
  border-bottom-color:var(--encre);
}
.champ input::placeholder,.champ textarea::placeholder{color:#9c9078}
.champ select{
  appearance:none;cursor:pointer;padding-right:1.6rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' fill='none' stroke='%235c574c' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .1rem center;
}
.champ .aide{font-family:var(--font-mono);font-size:.7rem;color:var(--texte-3);line-height:1.5}
.champ input:user-invalid,.champ textarea:user-invalid{border-bottom-color:var(--terracotta-fort)}

.form-pied{
  margin-top:2.4rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;
  padding-top:1.6rem;border-top:1px solid var(--bord);
}
.form-note{font-family:var(--font-mono);font-size:.7rem;line-height:1.6;color:var(--texte-3);flex:1 1 18rem;margin:0}
.form-retour{
  margin-top:1.2rem;padding:.9rem 1.1rem;
  border-left:3px solid var(--petrole);background:var(--surface);
  font-size:.95rem;line-height:1.6;color:var(--texte);
}
.form-retour:empty{display:none}
.form-retour a{color:var(--terracotta-fort);font-weight:600}
.form-retour .btn{margin-top:.8rem}

/* Colonne des coordonnées : elle suit la lecture du formulaire. */
@media (min-width:61.3em){
  .contact-cote{position:sticky;top:calc(var(--entete-h) + 1.5rem);align-self:start}
}
.contact-duo{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(2.4rem,5vw,4.5rem);align-items:start}
@media (max-width:61.25em){.contact-duo{grid-template-columns:minmax(0,1fr)}}

/* ================================================================
   FICHE DE BIEN
   Registre du dossier technique applique a une annonce : bandeau de
   chiffres, bordereaux, reglettes de diagnostic, plan differe.
   Regle de fond : rien d'essentiel ne depend de JavaScript. La galerie
   montre toutes ses photos sans script, le plan et la visite se
   remplacent par un lien, le formulaire compose un courriel.
   ================================================================ */

.hors-vue{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;
}
.lien-bouton{
  appearance:none;background:none;border:0;cursor:pointer;
  display:inline-flex;align-items:center;min-height:2.75rem;padding:.35rem 0;
  font:inherit;color:var(--terracotta-fort);font-weight:600;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;
}
.lien-bouton:hover{color:var(--texte)}

/* ---------- Fil d'Ariane ---------- */
.fil{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;
  font-family:var(--font-mono);font-size:.7rem;color:var(--texte-3);
}
.fil a{display:inline-block;padding-block:.5rem;text-decoration:none;color:var(--texte-3);border-bottom:1px solid transparent}
.fil a:hover{color:var(--texte);border-bottom-color:var(--bord-fort)}
.fil span[aria-current]{color:var(--texte)}

/* ---------- Tete de fiche ---------- */
.fiche-tete{padding-block:calc(var(--entete-h) + clamp(2rem,5vh,3.4rem)) clamp(1.6rem,3vw,2.4rem)}
.fiche-tete-int{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(1.8rem,4vw,4rem);align-items:start;margin-top:1.6rem;
}
.fiche-eti{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.fiche-statut{color:var(--terracotta-fort)}
.fiche-tete h1{
  margin-top:1rem;font-size:clamp(2.1rem,1.4rem + 2.9vw,3.9rem);
  line-height:1.05;max-width:15em;
}
.fiche-tete h1 em{font-style:italic;font-weight:400}
.fiche-lieu{margin-top:.9rem;color:var(--petrole)}
.fiche-tete .intro{margin-top:1.3rem;max-width:36em;line-height:1.75;color:var(--texte-2)}
.fiche-liens{margin-top:1.6rem}

/* Le cartouche des conditions se lit comme une tete de bordereau : filet
   d'encre plein en haut, marge terracotta le long du bord, chiffres tabules. */
.fiche-prix{
  position:relative;
  background:var(--blanc);border:1px solid var(--carte-bord);
  border-top:2px solid var(--encre);
  border-radius:var(--r-md);
  box-shadow:var(--ombre-1);padding:1.5rem 1.6rem 1.6rem;
}
.fiche-prix::before{
  content:"";position:absolute;inset-block:1.1rem;left:.72rem;width:1px;
  background:color-mix(in srgb,var(--terracotta) 30%,transparent);pointer-events:none;
}
.fiche-prix-chiffre{font-size:clamp(1.7rem,1.3rem + 1.4vw,2.3rem);font-weight:700;line-height:1.1;color:var(--texte)}
.fiche-prix-cadence{margin-top:.3rem}
.fiche-prix-cles{margin-top:1.3rem;border-top:1px solid var(--bord)}
.fiche-prix-cles > div{display:flex;gap:1rem;align-items:baseline;padding-block:.7rem;border-bottom:1px solid var(--bord)}
.fiche-prix-cles dt{
  flex:none;font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--texte-3);
}
.fiche-prix-cles dd{margin:0;flex:1 1 auto;text-align:right;font-size:.92rem;color:var(--texte)}
.fiche-prix-btn{width:100%;margin-top:.8rem}
.fiche-prix-btn:first-of-type{margin-top:1.4rem}

/* ---------- Bandeau de chiffres ---------- */
.bandeau-chiffres{
  border-block:1px solid var(--encre);background:var(--surface);
  background-image:
    linear-gradient(to right,#26433d0f 1px,transparent 1px),
    linear-gradient(to bottom,#26433d0f 1px,transparent 1px);
  background-size:22px 22px;
}
.chiffres-int{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(8rem,45%),1fr))}
.chiffres-int > div{padding:1rem 1.1rem;border-inline-start:1px solid var(--carte-bord);min-width:0}
.chiffres-int > div:first-child{border-inline-start:0;padding-inline-start:0}
.chiffres-int dt{
  font-family:var(--font-mono);font-size:.625rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--texte-3);
}
.chiffres-int dd{
  margin:.35rem 0 0;font-family:var(--font-mono);font-weight:700;
  font-size:1.15rem;font-variant-numeric:tabular-nums;color:var(--texte);
}

/* ---------- Galerie ---------- */
.galerie{padding-block:clamp(1.6rem,3vw,2.6rem)}
.galerie-grille{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:minmax(0,1fr);gap:.5rem;
}
.galerie-vue{
  position:relative;appearance:none;padding:0;cursor:zoom-in;
  border:1px solid var(--carte-bord);border-radius:var(--r-sm);
  overflow:clip;background:var(--surface);aspect-ratio:4/3;
}
.galerie-vue-grande{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.galerie-vue img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-expo)}
.galerie-vue:hover img{transform:scale(1.04)}
.galerie-cap{
  position:absolute;left:0;right:0;bottom:0;text-align:left;
  padding:1.6rem .8rem .55rem;
  background:linear-gradient(to top,#07130fbf,#07130f00);
  color:#f4efe4;font-family:var(--font-mono);font-size:.68rem;line-height:1.4;
  opacity:0;transition:opacity .25s;
}
.galerie-vue:hover .galerie-cap,.galerie-vue:focus-visible .galerie-cap{opacity:1}
.galerie-vue-grande .galerie-cap{opacity:1;font-size:.75rem;padding:2.2rem 1rem .8rem}
/* Sans script, toutes les vues restent visibles : c'est la galerie de secours.
   Des que la visionneuse est montee, on n'en garde que cinq en mosaique. */
.galerie-grille[data-galerie="pret"] .galerie-vue:nth-child(n+6){display:none}
.galerie-pied{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:1rem;margin-top:1rem;
}
.galerie-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.galerie-actions .btn{padding:.78rem 1.15rem;font-size:.85rem}

/* ---------- Visionneuse ---------- */
.visionneuse{position:fixed;inset:0;z-index:110;display:flex}
.visionneuse[hidden]{display:none}
.vis-fond{position:absolute;inset:0;background:#07130ff2;backdrop-filter:blur(3px);border:0;cursor:zoom-out}
.vis-cadre{
  position:relative;margin:auto;width:min(1240px,100%);height:100%;
  display:grid;grid-template-rows:minmax(0,1fr) auto;
  padding:clamp(2.6rem,5vw,3.4rem) clamp(.8rem,3vw,3rem) 1rem;
}
.vis-scene{display:flex;flex-direction:column;min-height:0;gap:.8rem}
.vis-scene img{
  flex:1 1 auto;min-height:0;width:100%;height:100%;object-fit:contain;
  border-radius:var(--r-sm);background:#0b1a16;
}
.vis-scene figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;color:#ded6c5}
.vis-legende{font-family:var(--font-display);font-size:1.05rem}
.vis-credit{color:#a49b8b}
.vis-btn{
  position:absolute;z-index:2;appearance:none;cursor:pointer;
  width:2.9rem;height:2.9rem;border-radius:50%;
  border:1px solid #f4efe436;background:#07130fb3;color:#f4efe4;
  font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:background-color .2s,border-color .2s;
}
.vis-btn:hover{background:#f4efe4;color:#07130f;border-color:#f4efe4}
.vis-fermer{top:.7rem;right:.7rem}
.vis-prec{left:.7rem;top:50%;transform:translateY(-50%)}
.vis-suiv{right:.7rem;top:50%;transform:translateY(-50%)}
.vis-pied{display:flex;align-items:center;gap:1rem;padding-top:.9rem;min-width:0}
.vis-compte{color:#ded6c5;flex:none;font-size:.8rem}
.vis-vignettes{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.3rem;scrollbar-width:thin}
.vis-vignettes button{
  appearance:none;padding:0;cursor:pointer;flex:none;
  width:76px;height:56px;border-radius:var(--r-xs);overflow:clip;
  border:1px solid #f4efe436;background:none;opacity:.55;transition:opacity .2s,border-color .2s;
}
.vis-vignettes button:hover{opacity:1}
.vis-vignettes button[aria-current="true"]{opacity:1;border-color:var(--ember-300)}
.vis-vignettes img{width:100%;height:100%;object-fit:cover}

/* ---------- Barre de sections ----------
   Elle se cale sous l'en-tete tant qu'il est la, et remonte quand il
   s'efface : sinon la barre flotte a mi-hauteur, sans rien au-dessus. */
.fiche-nav{
  position:sticky;top:var(--entete-h);z-index:60;
  /* Aplat plein plutot qu'un flou de fond : a 94 % d'opacite le flou ne se
     voyait pas, et il coutait une passe sur toute la largeur a chaque image. */
  background:var(--fond);
  border-block:1px solid var(--carte-bord);
  transition:top .45s var(--ease);
}
.entete.cachee ~ #principal .fiche-nav{top:0}
.fiche-nav-int{display:flex;align-items:center;gap:1rem;min-width:0}
.fiche-nav-liens{display:flex;gap:1.4rem;overflow-x:auto;scrollbar-width:none}
.fiche-nav-liens::-webkit-scrollbar{display:none}
.fiche-nav-liens a{
  white-space:nowrap;text-decoration:none;color:var(--texte-2);
  font-family:var(--font-mono);font-size:.6875rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  padding-block:.95rem .8rem;border-bottom:1.5px solid transparent;
  transition:color .2s,border-color .2s;
}
.fiche-nav-liens a:hover{color:var(--texte)}
.fiche-nav-liens a[aria-current="true"]{color:var(--terracotta-fort);border-bottom-color:var(--terracotta-fort)}
.fiche-nav-cta{margin-left:auto;flex:none;padding:.55rem 1.1rem;font-size:.85rem}

/* ---------- Le bien ---------- */
.bien-corps{
  display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  gap:clamp(2rem,4vw,4rem);margin-top:2.4rem;align-items:start;
}
.bien-texte p{color:var(--texte-2);line-height:1.8;max-width:38em}
.bien-texte p + p{margin-top:1.1rem}
.jetons{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.jetons li{
  padding:.42rem .8rem;border:1px solid var(--bord-fort);border-radius:var(--r-xs);
  background:var(--surface);font-size:.86rem;color:var(--texte);
}
.vigilance{margin-top:clamp(2.4rem,4vw,3.4rem);border-left:3px solid var(--terracotta);padding-left:clamp(1rem,2.5vw,1.8rem)}
.vigilance h3{color:var(--terracotta-fort)}
.vigilance .bordereau{margin-top:1.2rem}

/* ---------- Bordereaux serres ---------- */
.bordereau-serre{margin-top:1rem;border-top-width:1px}
.bordereau-serre .ligne{padding-block:.7rem;align-items:baseline}
.bordereau-serre dt{flex:0 0 11rem;font-size:.625rem}
.bordereau-serre dd{font-size:.95rem;line-height:1.6}
.bordereau .ligne-forte dd{font-size:1.15rem}
.detail-grille{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(24rem,100%),1fr));
  gap:clamp(1.8rem,3.5vw,3rem);margin-top:2.4rem;
}
.detail-bloc h3{color:var(--petrole)}

/* ---------- Reglettes de diagnostic ---------- */
.reglettes{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),1fr));
  gap:clamp(1.8rem,3.5vw,3rem);margin-top:2.4rem;
}
.reglette-tete{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.6rem}
.reglette-tete .imp-label{color:var(--petrole)}
.reglette-val{font-size:1.25rem;font-weight:700;color:var(--texte)}
.reglette-val small{font-size:.7rem;font-weight:500;color:var(--texte-3);margin-left:.25rem}
/* 14 px reserves a droite : le repere de la classe depasse la barre, et la
   barre G occupe toute la largeur. Sans cette reserve il tombe hors cadre. */
.reglette-barres{margin-top:1rem;padding-right:14px;display:flex;flex-direction:column;gap:4px}
.reg{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding:.34rem .7rem;border-radius:3px;
  font-family:var(--font-mono);font-size:.7rem;line-height:1.3;
  color:#1a1a1a;
}
.reg b{font-size:.9rem;font-weight:700}
.reg span{opacity:.78;font-size:.65rem;white-space:nowrap}
.reg[data-l="A"]{width:46%}
.reg[data-l="B"]{width:55%}
.reg[data-l="C"]{width:64%}
.reg[data-l="D"]{width:73%}
.reg[data-l="E"]{width:82%}
.reg[data-l="F"]{width:91%}
.reg[data-l="G"]{width:100%}
.reglette-energie .reg[data-l="A"]{background:#319834;color:#fff}
.reglette-energie .reg[data-l="B"]{background:#33cc31}
.reglette-energie .reg[data-l="C"]{background:#cbfc34}
.reglette-energie .reg[data-l="D"]{background:#fbfe06}
.reglette-energie .reg[data-l="E"]{background:#fbcc05}
.reglette-energie .reg[data-l="F"]{background:#fc9935}
.reglette-energie .reg[data-l="G"]{background:#fc0205;color:#fff}
.reglette-ges .reg[data-l="A"]{background:#f3eefa}
.reglette-ges .reg[data-l="B"]{background:#e0d2f0}
.reglette-ges .reg[data-l="C"]{background:#c9b0e6}
.reglette-ges .reg[data-l="D"]{background:#ae8bd8}
.reglette-ges .reg[data-l="E"]{background:#9268c9;color:#fff}
.reglette-ges .reg[data-l="F"]{background:#7546b6;color:#fff}
.reglette-ges .reg[data-l="G"]{background:#5a2ba4;color:#fff}
/* La classe du bien : encadree a l'encre, avec le repere en pointe. */
.reg-actif{position:relative;outline:2px solid var(--encre);outline-offset:1px;font-weight:700}
.reg-actif span{opacity:1}
.reg-actif::after{
  content:"";position:absolute;right:-13px;top:50%;transform:translateY(-50%);
  border:6px solid transparent;border-right-color:var(--encre);
}
.budget-note{align-self:start}

/* ---------- Plan differe et visite virtuelle ---------- */
.plan-boite,.visite-boite{
  /* width:100% est indispensable : avec aspect-ratio seul, un min-height fait
     deduire la largeur de la hauteur, et le cadre deborde sur telephone. */
  width:100%;margin-top:2rem;
  border:1px solid var(--bord-fort);border-radius:var(--r-md);
  overflow:clip;background:var(--surface);
}
.plan-boite{aspect-ratio:16/8;min-height:280px}
.visite-boite{aspect-ratio:16/9;min-height:300px}
.plan-attente,.visite-attente{
  height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.9rem;text-align:center;padding:1.8rem clamp(1rem,4vw,3rem);
}
.plan-attente .imp-label,.visite-attente .imp-label{color:var(--petrole)}
.plan-attente p,.visite-attente p{max-width:40em;color:var(--texte-2);line-height:1.7}
.plan-boite iframe,.visite-boite iframe{width:100%;height:100%;border:0;display:block}
.plan-note{margin-top:.9rem;max-width:48em}

/* ---------- Tableau de desserte ---------- */
.quartier-duo{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(22rem,100%),1fr));
  gap:clamp(2rem,4vw,3.4rem);margin-top:clamp(2.4rem,4vw,3.4rem);
}
.tableau{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.92rem}
.tableau th,.tableau td{text-align:left;padding:.7rem .8rem .7rem 0;border-bottom:1px solid var(--bord);vertical-align:baseline}
.tableau thead th{
  font-family:var(--font-mono);font-size:.625rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--texte-3);
  border-bottom:2px solid var(--encre);
}
.tableau tbody th{font-weight:600;color:var(--texte);white-space:nowrap}
.tableau td{color:var(--texte-2)}
.tableau td:last-child{text-align:right;padding-right:0;white-space:nowrap}

/* ---------- Marque d'interet ---------- */
.interet-duo{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(2.4rem,5vw,4.5rem);align-items:start}
.interet-cote{margin-top:1rem}
@media (min-width:61.3em){.interet-cote{position:sticky;top:calc(var(--entete-h) + 4.5rem)}}
.interet-direct{margin-top:2rem}
.interet-direct .actions{margin-top:1.1rem;display:flex;flex-wrap:wrap;gap:.7rem}
.champ-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.champ input[readonly]{color:var(--texte-2);border-bottom-style:dashed;cursor:default}

/* ---------- Barre d'action des ecrans etroits ---------- */
.barre-action{
  position:fixed;left:0;right:0;bottom:0;z-index:64;display:none;
  background:var(--fond);border-top:1px solid var(--encre);
  padding:.7rem var(--marge) calc(.7rem + env(safe-area-inset-bottom));
  transform:translateY(110%);transition:transform .35s var(--ease-expo);
}
.barre-action[data-visible="true"]{transform:none}
.barre-int{display:flex;align-items:center;gap:1rem;max-width:var(--container);margin-inline:auto}
.barre-prix{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.barre-prix .imp-label{color:var(--texte-3)}
.barre-prix strong{font-size:1.1rem;font-weight:700}
.barre-action .btn{margin-left:auto;flex:none}

/* ---------- Cartes du parc ---------- */
.barre-filtres{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.2rem}
.barre-filtres .filtres{margin-top:2.2rem;flex:1 1 auto}
.champ-tri{flex:0 0 15rem;max-width:100%}
.biens-vide{margin-top:2.4rem;max-width:40em}
.note-tri{margin-top:.5rem;max-width:44em;color:var(--terracotta-fort)}
/* Les cartes d'une meme rangee ont la hauteur de la plus haute : sans cette
   colonne souple, « Voir la fiche » flottait a des hauteurs differentes. */
.bien-carte{position:relative;display:flex;flex-direction:column;background:var(--blanc)}
.bien-lien{display:flex;flex-direction:column;flex:1 1 auto;text-decoration:none;color:inherit}
.bien-compte{
  position:absolute;right:.85rem;bottom:.85rem;
  background:#07130fc4;color:#e8e0d0;border-radius:var(--r-xs);
  padding:.24rem .55rem;font-size:.66rem;
}
.bien-lieu{color:var(--petrole);font-size:.625rem}
.bien-infos h3{margin-top:.45rem;font-size:1.25rem;line-height:1.2}
.bien-prix{margin-top:.7rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem}
.bien-prix strong{
  font-family:var(--font-mono);font-size:1.05rem;font-weight:700;
  font-variant-numeric:tabular-nums;color:var(--texte);
}
.bien-chiffres{
  margin-top:.9rem;padding-top:.8rem;border-top:2px solid var(--encre);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;
}
.bien-chiffres dt{
  font-family:var(--font-mono);font-size:.58rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--texte-3);
}
.bien-chiffres dd{
  margin:.15rem 0 0;font-family:var(--font-mono);font-size:.82rem;
  font-weight:700;color:var(--texte);
}
.bien-suite{
  margin-top:auto;padding-top:1.1rem;display:flex;align-items:center;gap:.5rem;
  color:var(--terracotta-fort);font-size:.625rem;
}
.bien-suite::after{content:"→";font-family:var(--font-sans);transition:transform .3s var(--ease-expo)}
.bien-carte:hover .bien-suite::after{transform:translateX(4px)}

/* ---------- Adaptations de la fiche ---------- */
@media (max-width:75em){
  .galerie-vue-grande .galerie-cap{font-size:.68rem}
}
@media (max-width:61.25em){
  .fiche-tete-int{grid-template-columns:minmax(0,1fr)}
  .fiche-prix{max-width:32rem}
  .bien-corps{grid-template-columns:minmax(0,1fr)}
  .interet-duo{grid-template-columns:minmax(0,1fr)}
  .bordereau-serre dt{flex:0 0 9rem}
}
@media (max-width:47.5em){
  /* La barre basse est fixe : sans cette reserve, elle couvre le cartouche. */
  body:has(.barre-action){padding-bottom:calc(4.9rem + env(safe-area-inset-bottom))}
  /* Rangees libres. Avec grid-auto-rows:minmax(0,1fr) les deux rangees
     s'egalisent sur la plus haute et la mosaique tombait sur 134 px de vide. */
  .galerie-grille{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}
  .galerie-vue-grande{grid-column:1 / -1;grid-row:auto;aspect-ratio:4/3}
  .galerie-grille[data-galerie="pret"] .galerie-vue:nth-child(n+4){display:none}
  .fiche-nav-cta{display:none}
  /* La bande de sections deborde et sa barre de defilement est masquee :
     ce degrade dit qu'il reste des sections a droite. */
  .fiche-nav::after{
    content:"";position:absolute;top:0;bottom:0;right:0;width:2.6rem;
    pointer-events:none;background:linear-gradient(to left,var(--fond),transparent);
  }
  .barre-action{display:block}
  .bordereau-serre .ligne{flex-direction:column;gap:.2rem}
  .bordereau-serre dt{flex:none}
  .vis-vignettes{display:none}
  .tableau thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .tableau tr{display:grid;grid-template-columns:auto 1fr;gap:0 .8rem;padding-block:.6rem;border-bottom:1px solid var(--bord)}
  .tableau th,.tableau td{border:0;padding:.1rem 0}
  .tableau tbody th{grid-column:1;grid-row:1}
  .tableau td:nth-of-type(1){grid-column:2;grid-row:1;color:var(--texte)}
  .tableau td:nth-of-type(2){grid-column:1 / -1;grid-row:2}
  .tableau td:last-child{grid-column:1 / -1;grid-row:3;text-align:left;color:var(--texte-3)}
}
@media (max-width:32.5em){
  .bien-chiffres{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
  .chiffres-int > div{border-inline-start:0;padding-inline:0;border-top:1px solid var(--carte-bord)}
  .chiffres-int > div:first-child{border-top:0}
}

@media print{
  .fiche-nav,.barre-action,.visionneuse,.galerie-actions,.fiche-liens,
  .fiche-prix-btn,.plan-boite,.visite-boite,.interet-cote,.formulaire,
  .bien-compte,.bien-suite{display:none !important}
  .galerie-grille[data-galerie="pret"] .galerie-vue:nth-child(n+4){display:block}
  .galerie-vue{break-inside:avoid}
  .fiche-tete{padding-top:0}
  .detail-grille,.reglettes,.quartier-duo{break-inside:avoid}
  .reg{outline:none;border:1px solid #000;print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* ---------- Adaptations : du plus large au plus etroit, puis hauteur ---------- */
@media (max-width:61.25em){
  .duo .cadre{max-width:460px}
  .survol-image{display:none}
  .cartouche-int{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cartouche-cell:nth-child(odd){border-inline-start:0;padding-inline-start:0}
  .cartouche-cell:nth-child(n+3){border-top:1px solid var(--carte-bord)}
}

@media (max-width:53.75em){
  .rangee{grid-template-columns:minmax(0,1fr);gap:.9rem}
  .etape{grid-template-columns:auto minmax(0,1fr);gap:.4rem 1.2rem}
  .etape p{grid-column:2}
  .bordereau .ligne{flex-direction:column;gap:.35rem}
}

@media (max-width:47.5em){
  .entete-nav{display:none}
  .menu-btn{display:inline-flex}
  .entete-tel span{display:none}
  .entete-tel .combine{display:block}
  .entete-tel{padding:.72rem .82rem}
}

@media (max-width:40em){
  .heros-bas{flex-direction:column;align-items:flex-start;gap:.45rem}
  .heros-credit{text-align:left}
  .coordonnees .ligne{flex-direction:column;gap:.15rem}
  .coordonnees dd{text-align:left}
}

@media (max-width:32.5em){
  .cartouche-int{grid-template-columns:1fr}
  .cartouche-cell{border-inline-start:0;padding-inline-start:0;border-top:1px solid var(--carte-bord)}
  .cartouche-cell:first-child{border-top:0}
}

@media (max-width:26.25em){
  /* A 320 px, logo + telephone + « Menu » ne tiennent pas : le mot disparait,
     les trois barres suffisent (le bouton garde son aria-label). */
  .entete-int{gap:.75rem}
  .marque .nom{white-space:nowrap;font-size:.92rem;letter-spacing:.13em}
  .marque .signe{width:26px;height:24px}
  .entete-fin{gap:.5rem}
  .menu-btn{font-size:0;gap:0;padding:.72rem .78rem}
  .menu-btn .barres{width:15px}
}

@media (max-height:560px) and (min-width:30em){
  :root{--entete-h:3.75rem}
  .heros-int{padding-block:calc(var(--entete-h) + 1.1rem) 3.25rem}
  .heros h1{font-size:clamp(1.75rem,1rem + 3.2vw,2.6rem);margin-top:.7rem;max-width:18em}
  .heros-phrase{margin-top:.9rem;font-size:1rem;line-height:1.45;max-width:44em}
  .heros-geste{margin-top:1.1rem;padding-block:.4rem}
  .heros-bas{padding-bottom:.7rem}
  .page-tete{padding-block:calc(var(--entete-h) + 2.5rem) 2rem}
  .page-tete h1{font-size:clamp(1.9rem,1.1rem + 3.4vw,3rem)}
  .page-tete .intro{margin-top:1rem;font-size:1rem}
  .panneau{justify-content:flex-start;overflow-y:auto;padding-top:calc(var(--entete-h) + 1rem)}
  .panneau nav a{font-size:1.35rem;padding-block:.45rem}
  .panneau .panneau-pied{margin-top:1.2rem}
}

@media (max-height:400px) and (min-width:30em){
  .heros-phrase{display:none}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .btn:hover{transform:none}
}

@media print{
  .acces-rapide,.entete,.voile-page,.curseur,.heros-bas,.menu-btn,.panneau,.survol-image{display:none !important}
  body{background:#fff;color:#000}
  .aplat{background:#fff;color:#000}
  .papier{box-shadow:none}
}
