@font-face { font-family: "Outfit"; src: url("../assets/fonts/outfit-variable.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("../assets/fonts/manrope-latin-variable.woff2") format("woff2"); font-weight: 400 800; font-display: swap; }

:root {
  --blanc: #ffffff;
  --ciel-1: #f1f6fc; --ciel-2: #e1ebf6; --ciel-3: #cddcec; --ciel-4: #c0d3e7;
  --nuit: #0e1f3d; --nuit-2: #3f4f6b; --sur-nuit: #c6d4ea;
  --vif: #1652f0; --vif-survol: #0f45d6; --vif-appui: #0b3cbd; --vif-clair: #8fb8ff;
  --choix-actif: #e8f1fe; --choix-survol: #f3f8fd;
  --ligne: #d6e2ef; --ligne-champ: #74869f; --erreur: #b3261e; --erreur-fond: #fdf0ee;
  --ombre-dock: 0 1px 2px rgba(14,31,61,.06), 0 18px 36px -18px rgba(14,31,61,.25), 0 60px 120px -40px rgba(10,40,95,.6);
  --titre: "Outfit", system-ui, sans-serif; --texte: "Manrope", system-ui, sans-serif;
  --section: clamp(88px, 10vw, 152px); --section-serree: clamp(64px, 7vw, 104px);
  --max: 1280px; --cote: 40px; --gout: 24px; --entete: 84px;
  --r-1: 16px; --r-2: 26px; --r-rond: 999px;
  --marge-bloc: clamp(10px, 1.4vw, 20px); --r-bloc: clamp(26px, 3vw, 40px);   
  --t-titre: 600 clamp(36px, 3.6vw, 52px)/1.02 var(--titre);      
  --t-sous-titre: 600 clamp(24px, 2.3vw, 32px)/1.15 var(--titre); 
  --t-chiffre: 600 clamp(40px, 3.8vw, 56px)/1 var(--titre);       
  --t-chapo: 500 clamp(20px, 1.6vw, 22px)/1.5 var(--texte);       
  --t-texte: 500 19px/1.55 var(--texte);                           
  --t-petit: 500 17px/1.45 var(--texte);                           
  --sortie: cubic-bezier(.16, 1, .3, 1);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; scrollbar-color: var(--ciel-3) var(--blanc); }
body { margin: 0; overflow-x: clip; background: var(--blanc); color: var(--nuit); font: 400 19px/1.55 var(--texte); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: #cfe0ff; color: var(--nuit); }
input, textarea { caret-color: var(--vif); }
:focus-visible { outline: 3px solid var(--nuit); outline-offset: 3px; border-radius: 6px; }
.fonce :focus-visible, .pied :focus-visible, .s-rappel :focus-visible { outline-color: var(--blanc); }
a.visuellement-cache:focus { position: fixed !important; left: 16px; top: 16px; z-index: 60; width: auto; height: auto; clip: auto; padding: 12px 18px; border-radius: 12px; background: var(--blanc); color: var(--nuit); font-weight: 700; box-shadow: 0 8px 24px -12px rgba(14,31,61,.4); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0; }
.visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cadre { max-width: calc(var(--max) + 2 * var(--cote)); margin: 0 auto; padding: 0 var(--cote); }
.grille { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); }

.lots-tete, .jardin-tete { display: block; }
.lots-tete .phrase, .jardin-tete .phrase { margin: 20px 0 0; max-width: 52ch; }
.bloc { margin-inline: var(--marge-bloc); border-radius: var(--r-bloc); }
.bloc > .cadre { max-width: calc(var(--max) + 2 * (var(--cote) - var(--marge-bloc))); padding-inline: max(20px, calc(var(--cote) - var(--marge-bloc))); }
.bloc.dernier { margin-bottom: var(--marge-bloc); }
.h2 { margin: 0; font: var(--t-titre); letter-spacing: -.045em; color: var(--nuit); text-wrap: balance; max-width: 15ch; }
.h2 .vif { color: var(--vif); }
.fonce .h2, .s-rappel .h2 { color: var(--blanc); }
.fonce .h2 .vif, .s-rappel .h2 .vif { color: var(--vif-clair); }
.phrase { margin: 24px 0 0; font: var(--t-chapo); color: var(--nuit-2); max-width: 40ch; }
.fonce .phrase { color: var(--sur-nuit); }
.note { font: var(--t-petit); color: var(--nuit-2); }

.entete { position: sticky; top: 0; z-index: 20; background: var(--blanc); transition: box-shadow .3s; }   
.entete.defile { box-shadow: 0 1px 0 var(--ligne); }
.entete .cadre { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: var(--entete); }
.logo { display: block; width: 176px; border-radius: 6px; }
.logo img { width: 100%; height: auto; }
.contact { display: flex; align-items: center; gap: 14px; }
.contact .logih { order: 2; margin-left: 14px; }   
.logih { width: 108px; height: auto; filter: brightness(0); opacity: .6; }
.entete .bouton.petit { display: none; }
.hors-action .entete .bouton.petit { display: inline-flex; animation: entete-entre .45s var(--sortie) both; }
@keyframes entete-entre { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.bouton {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 60px; padding: 7px 7px 7px 28px;
  border: 0; border-radius: var(--r-rond); cursor: pointer; text-decoration: none; white-space: nowrap; text-align: left;
  background: var(--vif); color: var(--blanc);
  font: 600 18px/1.3 var(--texte); letter-spacing: -.005em;
  transition: background-color .35s var(--sortie), transform .35s var(--sortie), box-shadow .35s var(--sortie);
}
.bouton:not(:has(> svg)) { justify-content: center; padding: 8px 28px; }
.bouton > svg { flex: none; width: 46px; height: 46px; padding: 13px; border-radius: 50%; background: var(--blanc); color: var(--vif); transition: transform .55s var(--sortie), color .35s var(--sortie); }
.bouton:hover { background-color: var(--vif-survol); box-shadow: 0 16px 30px -16px rgba(16,66,214,.75); }
.bouton:hover > svg { transform: translateX(3px); color: var(--vif-survol); }
.bouton:active { background-color: var(--vif-appui); transform: scale(.985); }
.bouton[disabled] { opacity: .6; cursor: progress; }
.bouton.petit { min-height: 48px; padding: 6px 22px; font-size: 16px; box-shadow: none; }
.bouton.secondaire { background: var(--blanc); color: var(--nuit); box-shadow: inset 0 0 0 1.5px var(--nuit); }
.bouton.secondaire:hover { background: var(--ciel-1); }
.fonce .bouton, .s-rappel .bouton { background: var(--blanc); color: var(--nuit); }
.fonce .bouton > svg, .s-rappel .bouton > svg { background: var(--vif); color: var(--blanc); }
.fonce .bouton:hover, .s-rappel .bouton:hover { background: var(--ciel-1); }
.tel { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 22px 0 18px; border-radius: var(--r-rond); box-shadow: inset 0 0 0 1.5px var(--ligne-champ); color: var(--nuit); font: 600 16px/1.2 var(--texte); text-decoration: none; white-space: nowrap; transition: background-color .3s var(--sortie), box-shadow .3s var(--sortie), transform .3s var(--sortie); }
.tel svg { flex: none; width: 19px; height: 19px; color: var(--vif); }
.tel:hover { background: var(--choix-survol); box-shadow: inset 0 0 0 1.5px var(--vif); }
.tel:active { transform: scale(.985); }
.tel.grand { min-height: 60px; padding: 0 28px 0 24px; font-size: 18px; }
.fonce .tel, .s-rappel .tel, .pied .tel { color: var(--blanc); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.55); }
.fonce .tel svg, .s-rappel .tel svg, .pied .tel svg { color: var(--vif-clair); }
.fonce .tel:hover, .s-rappel .tel:hover, .pied .tel:hover { background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1.5px var(--blanc); }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 16px; }
.envoi-erreur .tel { display: flex; width: fit-content; margin-top: 10px; background: var(--blanc); }
.lien-bouton { border: 0; background: none; padding: 0; min-height: 44px; color: var(--vif); font: 700 17px/1 var(--texte); text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }

.titre-anime .mot { display: inline-block; }
.anime .titre-anime .mot { animation: monte 1s var(--sortie) both; animation-delay: calc(120ms + var(--i) * 75ms); }
@keyframes monte { from { opacity: 0; transform: translateY(.42em); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }
.anime-fini .titre-anime .mot { animation: none !important; }

.accroche { max-width: 54ch; margin: 22px 0 0; font: var(--t-chapo); color: var(--nuit-2); text-wrap: pretty; }
.pose { position: absolute; z-index: 3; left: 28px; max-width: calc(100% - 56px); margin: 0; border-radius: 20px; color: var(--nuit);
  background: var(--blanc); box-shadow: 0 1px 2px rgba(14,31,61,.08), 0 22px 44px -22px rgba(14,31,61,.55), inset 0 0 0 1px rgba(14,31,61,.06);
  transition: opacity .45s var(--sortie), visibility .45s, translate .6s var(--sortie); }
.pose b { display: block; font: 600 19px/1.2 var(--titre); letter-spacing: -.02em; }
.pose p > span { display: block; margin-top: 3px; font: 500 16px/1.4 var(--texte); color: var(--nuit-2); text-wrap: balance; }
.pose-cles { bottom: 28px; width: min(400px, calc(100% - 56px)); padding: 18px 22px 18px; }
.etapes-mini { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.etapes-mini li { position: relative; padding: 22px 8px 0 0; font: 600 14px/1.3 var(--texte); color: var(--nuit-2); }
.etapes-mini li::before { content: ""; position: absolute; z-index: 1; left: 0; top: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--blanc); box-shadow: inset 0 0 0 2.5px var(--vif); }
.etapes-mini li:not(:last-child)::after { content: ""; position: absolute; left: 12px; right: 0; top: 5px; height: 2px; background: var(--ciel-3); }
.etapes-mini li:last-child { color: var(--nuit); }
.etapes-mini li:last-child::before { background: var(--vif); box-shadow: 0 0 0 4px rgba(22,82,240,.16); }

.haut { padding: clamp(10px, 2.4vh, 30px) 0 clamp(8px, 2vw, 24px); text-align: center; }
.haut h1 { margin: 0 auto; font: 600 min(4.6vw, 7.8vh, 68px)/1 var(--titre); letter-spacing: -.045em; color: var(--nuit); }
.haut h1 .ligne { display: block; }
.haut h1 .accent { color: var(--vif); }   
.haut .accroche { margin: 18px auto 0; max-width: 60ch; text-wrap: balance; }
.dispo-haut { display: flex; width: fit-content; max-width: 100%; align-items: center; gap: 10px; margin: 16px auto 0; padding: 8px 16px 8px 12px; border-radius: var(--r-rond); background: var(--choix-actif); color: var(--nuit); font: 600 16px/1.3 var(--texte); text-align: left; }
.dispo-haut b { font-weight: 800; color: var(--vif); white-space: nowrap; }
.dispo-point { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--vif); box-shadow: 0 0 0 4px rgba(22, 82, 240, .18); }
.haut-carte { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr); gap: 10px; max-width: 1120px; margin: clamp(20px, 3.4vh, 40px) auto 0; padding: 10px; border-radius: 32px; background: var(--ciel-1); text-align: left; }
.haut-photo { position: relative; margin: 0; min-height: 100%; overflow: hidden; isolation: isolate; border-radius: 24px; background: var(--ciel-2); }
.haut-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 62%; }
.legende { position: absolute; z-index: 3; left: 16px; top: 16px; max-width: calc(100% - 32px); margin: 0; padding: 9px 16px; border-radius: var(--r-rond); background: var(--blanc); color: var(--nuit); font: 600 15px/1.3 var(--texte); transition: opacity .4s var(--sortie); }
.haut .panneau { padding: 22px 22px 20px; border-radius: 0; background: none; box-shadow: none; }
.haut .panneau::before { display: none; }
.haut .panneau-tete { margin-bottom: 8px; }
.haut .segments { margin-bottom: 20px; }
.haut .segments i { background: var(--ciel-3); }
.haut .segments i.fait { background: var(--nuit); }
.tuiles.lignes { grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; }
.tuiles.lignes .tuile-photo > span { grid-template-columns: 96px minmax(0, 1fr) auto; column-gap: 16px; align-items: center; padding: 7px 18px 7px 7px; border-radius: 16px; background: var(--blanc); box-shadow: none; }
.tuiles.lignes .tuile-photo img { width: 96px; height: 72px; border-radius: 11px; }
.tuiles.lignes .t-texte { min-width: 0; }
.tuiles.lignes .t-nom { font: 600 20px/1.15 var(--titre); letter-spacing: -.025em; }
.tuiles.lignes .t-detail { margin-top: 3px; font: 500 15px/1.35 var(--texte); color: var(--nuit-2); }
.tuiles.lignes .t-prix { margin: 0; font: 600 14px/1.1 var(--texte); color: var(--nuit-2); text-align: right; white-space: nowrap; }
.tuiles.lignes .t-prix b { display: inline-block; margin-top: 3px; font: 600 20px/1 var(--titre); letter-spacing: -.02em; color: var(--vif); }
.tuiles.lignes .t-prix small { font: 600 13px/1 var(--texte); color: var(--nuit-2); }
.tuiles.lignes .t-prix { display: grid; justify-items: end; }
.tuiles.lignes .t-prix b + small { margin-top: 2px; }
.tuiles.lignes .tuile:hover > span { background: var(--choix-survol); box-shadow: inset 0 0 0 1.5px var(--ciel-4); }
.tuiles.lignes .tuile > input:checked + span { background: var(--choix-actif); box-shadow: inset 0 0 0 2px var(--vif); }
@media (min-width: 960px) {
  .haut-photo > .cote-image { position: absolute; inset: 0; z-index: 2; display: block; }
  .haut-photo > .cote-image .vitrail { display: block; position: absolute; inset: 0; }
  .haut-photo > .cote-image .vitrail::after { display: none; }
  .haut-photo > .cote-image .vitrail figcaption { left: 16px; right: auto; top: 16px; bottom: auto; max-width: calc(100% - 32px); padding: 9px 16px; border-radius: var(--r-rond); background: var(--blanc); color: var(--nuit); font: 600 15px/1.3 var(--texte); }
  .haut-photo > .cote-image .vitrail figcaption:empty { display: none; }
  .haut-photo > .cote-image .fiche { display: block; position: absolute; z-index: 3; left: 16px; right: 16px; bottom: 16px; max-width: 400px; border-radius: 20px; }   
  .haut-photo:has(> .cote-image:not([hidden])) > .legende { opacity: 0; }
  .haut .panneau.a-vitrail > .choix-lot { display: none; }   
}
.haut-photo > .pose-cles { display: block; left: 16px; bottom: 16px; width: min(470px, calc(100% - 32px)); padding: 14px 18px; box-shadow: none; }
.haut-photo > .pose-cles p > span { text-wrap: wrap; }
.haut-photo > .pose-cles .etapes-mini { margin-top: 10px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
.haut-photo > .pose-cles .etapes-mini li { padding-top: 20px; white-space: nowrap; }
.haut .panneau-tete .surtitre { font: 600 16px/1 var(--texte); color: var(--nuit-2); }
.haut .complement { background: var(--blanc); }
.haut-photo:has(> .cote-image:not([hidden])) > .pose-cles { opacity: 0; visibility: hidden; }
@media (max-width: 959px) { .haut-photo > .pose-cles { display: none; } }
.haut.investir .accroche { max-width: 880px; }
.fiche-ligne { margin: 0 0 14px; padding: 10px 14px; border-radius: var(--r-1); background: var(--blanc); font: 500 16px/1.45 var(--texte); color: var(--nuit-2); }
.fiche-ligne b { font-weight: 700; color: var(--nuit); }
.fiche-ligne[hidden] { display: none; }
@media (min-width: 960px) { .fiche-ligne { display: none !important; } }
.dispositif-actions { justify-content: center; margin-top: 40px; }
.haut.investir .haut-photo > .cote-image .vitrail img { object-position: 50% 82%; }
@media (max-width: 480px) { .haut.investir .panneau-tete:has(.retour:not([hidden])) .surtitre { visibility: hidden; } }
@media (max-width: 760px) { .mosaique figcaption .sur-large { display: none; } }
.haut-carte:has([data-ecran="fin"]:not([hidden])) { grid-template-columns: minmax(0, 1fr); max-width: 880px; }
.haut-carte:has([data-ecran="fin"]:not([hidden])) .haut-photo { display: none; }
@media (min-width: 960px) and (max-height: 940px) {
  .haut h1 { font-size: min(4.2vw, 7vh, 60px); }
  .haut .accroche { margin-top: 12px; font-size: 18px; }
  .haut-carte { margin-top: clamp(16px, 2.6vh, 26px); }
  .haut .panneau { padding: 14px 18px 14px; }
  .haut .panneau-tete { min-height: 36px; margin-bottom: 4px; }
  .haut .segments { margin-bottom: 12px; }
  .haut .depart .d-question { margin-bottom: 12px; }
  .tuiles.lignes { gap: 8px; }
  .tuiles.lignes .tuile-photo img { width: 84px; height: 60px; }
  .haut .depart .bouton { margin-top: 12px; }
  .dispo-haut { margin-top: 10px; padding: 6px 14px 6px 11px; }
}
@media (min-width: 960px) and (max-height: 820px) {
  .haut .depart .d-sous { display: none; }
  .haut h1 { font-size: min(4.2vw, 6.6vh, 60px); }
  .haut .accroche { margin-top: 8px; }
  .dispo-haut { margin-top: 8px; padding: 5px 14px 5px 10px; font-size: 15px; }
  .haut-carte { margin-top: 12px; }
}
@media (min-width: 960px) and (max-height: 740px) {   
  .haut h1 { font-size: min(4.2vw, 6.2vh, 60px); }
  .haut-carte { margin-top: 8px; }
  .tuiles.lignes .tuile-photo img { width: 76px; height: 54px; }
}
@media (max-width: 959px) {
  .haut .panneau > .cote-image .vitrail::after { display: none; }
  .haut .panneau > .cote-image .vitrail figcaption { left: 10px; right: auto; top: 10px; bottom: auto; max-width: calc(100% - 20px); padding: 7px 13px; border-radius: var(--r-rond); background: var(--blanc); color: var(--nuit); font: 600 14px/1.3 var(--texte); }
  .haut .panneau > .cote-image .vitrail figcaption:empty { display: none; }
  .haut-carte { grid-template-columns: minmax(0, 1fr); padding: 8px; border-radius: 26px; }
  .haut-photo { min-height: 0; height: clamp(170px, 32vw, 280px); border-radius: 19px; }
  .haut-carte:has(.panneau.a-vitrail) .haut-photo { display: none; }   
  .haut .panneau { padding: 16px 10px 10px; }
}
@media (max-width: 760px) {
  .haut h1 { font-size: 33px; line-height: 1.04; text-wrap: balance; }
  .haut h1 .ligne { display: inline; }
  .haut .accroche { margin-top: 12px; font-size: 17px; line-height: 1.5; }
  .haut-carte { margin-top: 20px; }
  .haut-photo { height: 150px; }
  .legende { left: 10px; top: 10px; padding: 7px 13px; font-size: 14px; }
  .legende .sur-large { display: none; }
  .haut .panneau { padding-top: 12px; }
  .haut .panneau-tete { min-height: 32px; margin-bottom: 4px; }
  .haut .segments { margin-bottom: 14px; }
  .haut .depart .question { font-size: 24px; line-height: 1.25; }
  .haut .depart .d-sous { font-size: 16px; line-height: 1.45; }
  .tuiles.lignes .tuile-photo > span { grid-template-columns: 76px minmax(0, 1fr); column-gap: 14px; padding: 6px 12px 6px 6px; }
  .tuiles.lignes .tuile-photo img { grid-row: 1 / span 2; width: 76px; height: 66px; }
  .tuiles.lignes .t-nom { font-size: 18px; }
  .tuiles.lignes .t-detail { font-size: 14px; }
  .tuiles.lignes .t-prix { display: block; grid-column: 2; margin-top: 4px; text-align: left; }
  .tuiles.lignes .t-prix b { display: inline; margin: 0 0 0 2px; font-size: 18px; }
  .tuiles.lignes .t-prix b:first-child { margin-left: 0; }
}
@media (prefers-reduced-motion: no-preference) {
  .anime .haut .accroche { animation: apparait 1s var(--sortie) .55s both; }
  .anime .haut .dispo-haut { animation: apparait 1s var(--sortie) .6s both; }
  .anime-fini .haut .dispo-haut { animation: none; }
  .anime .haut-carte { animation: carte-monte 1.1s var(--sortie) .5s both; }
  .anime .haut-photo > img { animation: scene-recule 2.3s var(--sortie) .1s both; }
  .anime .tuiles.lignes .tuile { animation: apparait .8s var(--sortie) both; }
  .anime .haut-photo > .pose-cles { animation: poser .9s var(--sortie) 1.1s both; }
  .anime .tuiles.lignes .tuile:nth-child(1) { animation-delay: .78s; }
  .anime .tuiles.lignes .tuile:nth-child(2) { animation-delay: .86s; }
  .anime .tuiles.lignes .tuile:nth-child(3) { animation-delay: .94s; }
  .anime-fini .haut .accroche, .anime-fini .haut-carte, .anime-fini .haut-photo > img, .anime-fini .tuiles.lignes .tuile { animation: none; }
  .haut-photo > .cote-image:not([hidden]) .fiche { animation: poser .8s var(--sortie) both; }
  @keyframes carte-monte { from { transform: translateY(28px); } to { transform: none; } }
}

.panneau { position: relative; background: var(--blanc); color: var(--nuit); border-radius: var(--r-2); box-shadow: var(--ombre-dock); padding: 28px 32px 26px; }
.panneau::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(14,31,61,.06); }
.panneau-tete { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; min-height: 44px; margin-bottom: 12px; }
.panneau-tete .surtitre { margin: 0; font: 700 16px/1.2 var(--texte); color: var(--vif); }
.retour { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 8px 0 0; border: 0; background: none; color: var(--nuit); font: 700 18px/1 var(--texte); cursor: pointer; }
.retour svg { width: 20px; height: 20px; }
.retour[hidden] { display: none; }
.compteur { font: 600 16px/1 var(--texte); color: var(--nuit-2); text-align: right; font-variant-numeric: tabular-nums; }
.segments { display: flex; gap: 5px; margin: 0 0 26px; }
.segments[hidden] { display: none; }
.segments i { flex: 1; height: 4px; border-radius: 4px; background: var(--ligne); transition: background .3s; }
.segments i.fait { background: var(--nuit); }
.ecran { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; }
.ecran[hidden] { display: none !important; }
.anime .ecran.entre { animation: glisse .3s var(--sortie) both; }
@keyframes glisse { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
.question { margin: 0 0 8px; padding: 0; font: 600 clamp(26px, 2.1vw, 30px)/1.32 var(--titre); letter-spacing: -.03em; color: var(--nuit); text-wrap: balance; }
.question:focus { outline: none; }
.aide { margin: 0 0 20px; font: 500 17px/1.5 var(--texte); color: var(--nuit-2); }

.depart .d-question { margin-bottom: 14px; }
.depart .d-question .question { margin: 0; }
.depart .d-sous { margin-top: 6px; font: 500 17px/1.5 var(--texte); color: var(--nuit-2); }
.depart .tuiles { margin: 0; }
.depart .tuile.grande .t-nom span { display: block; margin-top: 2px; }   
.depart .bouton { margin-top: 16px; width: 100%; }
.depart .erreur { margin: 10px 0 0; }
.depart .tuile.grande > span { grid-template-columns: auto minmax(0, 1fr); }   
.depart .tuile.grande > span::before { display: none; }

.vitrail { display: none; position: relative; margin: 0; overflow: hidden; background: var(--ciel-2); isolation: isolate; }
.vitrail[hidden], .cote-image[hidden] { display: none !important; }
.cote-image .vitrail { display: block; }
.vitrail img { display: none; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vitrail img.vue, .vitrail img.avant { display: block; }
.vitrail img.vue { z-index: 1; animation: fondu-vitrail .9s var(--sortie) both; }
@keyframes fondu-vitrail { from { opacity: 0; transform: scale(1.035); } to { opacity: 1; transform: none; } }
.vitrail::after { content: ""; position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(180deg, rgba(14,31,61,0), rgba(14,31,61,.6)); pointer-events: none; }
.vitrail figcaption { position: absolute; z-index: 3; left: 18px; right: 18px; bottom: 16px; font: 600 15px/1.35 var(--texte); color: var(--blanc); text-wrap: balance; }
.fiche { position: relative; z-index: 2; padding: 18px 22px 20px; background: var(--blanc); }
.fiche-sur { margin: 0; font: 700 14px/1.2 var(--texte); letter-spacing: .02em; color: var(--vif); }
.fiche-lot { margin: 6px 0 10px; font: 600 18px/1.3 var(--titre); letter-spacing: -.01em; color: var(--nuit); }
.fiche-lot b { font-weight: 600; color: var(--vif); white-space: nowrap; }
.fiche-liste { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--ligne); display: grid; gap: 8px; }
.fiche-liste li { position: relative; padding-left: 28px; font: 600 15px/1.35 var(--texte); color: var(--nuit-2); transition: color .4s var(--sortie); }
.fiche-liste li::before { content: ""; position: absolute; left: 0; top: .1em; width: 18px; height: 18px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--ciel-3); transition: background-color .4s var(--sortie), box-shadow .4s var(--sortie); }
.fiche-liste li.pret { color: var(--nuit); }
.fiche-liste li.pret::before { background: var(--vif) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat; box-shadow: none; }
@media (max-width: 1179px) {
  .panneau > .vitrail:not([hidden]), .panneau > .cote-image .vitrail { display: block; height: clamp(124px, 30vw, 190px); border-radius: calc(var(--r-2) - 10px); }
  .panneau > .vitrail, .panneau > .cote-image { margin: -6px -4px 14px; }
  .vitrail img { object-position: 50% 44%; }
  .vitrail img[data-vue="rosier"] { object-position: 50% 68%; }
  .vitrail img[data-vue="potager"] { object-position: 50% 72%; }
  .vitrail figcaption { left: 14px; right: 14px; bottom: 10px; font-size: 14px; }
  .fiche { display: none; }
  .choix-lot { padding: 8px 12px; font-size: 16px; }
}
@media (min-width: 1180px) {
  .panneau.a-vitrail > .choix-lot { display: none; }   
}

.tuiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 8px 0 0; }
.tuiles.une { grid-template-columns: 1fr; }
.tuiles.trois { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tuiles + .tuiles { margin-top: 10px; }
.tuile { position: relative; display: block; }
.tuile > input { position: absolute; z-index: 1; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.tuile > span { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; column-gap: 14px; align-items: center; min-height: 64px; padding: 12px 16px; border-radius: var(--r-1); background: var(--blanc); box-shadow: inset 0 0 0 1px var(--ligne); font: 600 19px/1.3 var(--texte); color: var(--nuit); transition: background-color .45s var(--sortie), box-shadow .45s var(--sortie); }
.tuile > span::before { content: ""; width: 24px; height: 24px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--ligne-champ); background: radial-gradient(circle, var(--vif) 0 5.5px, transparent 6px) center / 0 0 no-repeat; transition: box-shadow .4s var(--sortie), background-size .5s var(--sortie); }
.tuile:hover > span { background: var(--choix-survol); box-shadow: inset 0 0 0 1.5px var(--ligne-champ); }
.tuile:hover > span::before { box-shadow: inset 0 0 0 2px var(--nuit); }
.tuile > input:checked + span { background: var(--choix-actif); box-shadow: inset 0 0 0 2px var(--vif); }
.tuile > input:checked + span::before { box-shadow: inset 0 0 0 2px var(--vif); background-size: 100% 100%; }
.tuile > input:focus-visible + span { outline: 3px solid var(--nuit); outline-offset: 3px; }
.tuile > input:disabled + span { opacity: .55; }
.tuile small { font: 500 16px/1.3 var(--texte); color: var(--nuit-2); text-align: right; }
.t-nom { display: block; font: 700 19px/1.2 var(--texte); color: var(--nuit); }
.t-nom span { font-weight: 500; color: var(--nuit-2); }
.t-prix { display: block; margin-top: 4px; font: 500 16px/1.25 var(--texte); color: var(--nuit-2); }   
.t-prix b { font: 600 20px/1 var(--titre); letter-spacing: -.02em; color: var(--nuit); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tuile.grande > span { grid-template-columns: 24px auto minmax(0, 1fr); min-height: 84px; }
.tuile.secondaire > span { min-height: 56px; box-shadow: inset 0 0 0 1px var(--ligne-champ); background: transparent; }
.tuile.lot > span { grid-template-columns: 24px minmax(0, 1fr) auto; }
.panneau { container: panneau / inline-size; }
.tuile-photo > span { grid-template-columns: 88px minmax(0, 1fr); column-gap: 14px; padding: 9px 12px 9px 9px; min-height: 0; height: 100%; }
.tuile-photo > span::before { display: none; }
.tuile-photo img { display: block; width: 88px; height: 80px; object-fit: cover; border-radius: 12px; transition: transform .6s var(--sortie); }
.tuile-photo:hover img { transform: scale(1.04); }
.tuile-photo .t-nom { font: var(--t-sous-titre); font-size: 22px; letter-spacing: -.03em; }
.t-detail { display: block; margin-top: 2px; font: 500 15px/1.3 var(--texte); color: var(--nuit-2); }
.tuile-photo .t-prix { font-size: 15px; }
.tuile-photo .t-prix b { font-size: 19px; }
@container panneau (max-width: 540px) { .tuiles:has(.tuile-photo) { grid-template-columns: 1fr; } }
@media (max-width: 380px) {
  .tuile-photo > span { grid-template-columns: 72px minmax(0, 1fr); column-gap: 12px; }
  .tuile-photo img { width: 72px; height: 64px; }
  .tuile-photo .t-prix b { font-size: 18px; }
}
.tuile.lot .t-prix { margin: 0; text-align: right; }

.accord { margin: 16px 0 0; font: 500 16px/1.5 var(--texte); color: var(--nuit-2); }
.accord a, .mention-envoi a { color: var(--vif); }
.champs { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.champ { margin: 0 0 16px; }
.champ label { display: block; margin: 0 0 6px; font: 700 18px/1.3 var(--texte); color: var(--nuit); }
.champ input { width: 100%; min-height: 60px; padding: 0 16px; border: 0; border-radius: var(--r-1); box-shadow: inset 0 0 0 1.5px var(--ligne-champ); background: var(--blanc); font: 500 20px/1.2 var(--texte); color: var(--nuit); transition: box-shadow .3s var(--sortie); }
.champ input:hover { box-shadow: inset 0 0 0 1.5px var(--nuit); }
.champ input:focus { outline: 3px solid var(--vif); outline-offset: 2px; box-shadow: inset 0 0 0 1.5px var(--vif); }
.champ input[aria-invalid="true"] { box-shadow: inset 0 0 0 2px var(--erreur); background: var(--erreur-fond); }
.erreur { margin: 6px 0 0; font: 700 17px/1.4 var(--texte); color: var(--erreur); }
.erreur:empty { display: none; }
.suggestion { margin: 6px 0 0; font-size: 17px; }
.suggestion button { border: 0; background: none; padding: 0; color: var(--vif); font: 700 17px/1.4 var(--texte); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.case { display: grid; grid-template-columns: 28px 1fr; gap: 12px; align-items: start; margin: 4px 0 14px; font: 500 17px/1.45 var(--texte); }
.case input { width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--vif); }
.case.appel { margin: 4px 0 0; padding: 14px 16px; border-radius: var(--r-1); background: var(--ciel-1); font-weight: 600; cursor: pointer; }
.champ[hidden] { display: none !important; }
.pied-ecran { margin-top: auto; padding-top: 18px; }
.pied-ecran .bouton { width: 100%; }
.mention-envoi { margin: 12px 0 0; font: 500 16px/1.45 var(--texte); color: var(--nuit-2); }
.envoi-erreur { margin: 12px 0 0; padding: 12px 16px; border-radius: var(--r-1); background: var(--erreur-fond); color: #8c1d18; font: 600 17px/1.4 var(--texte); }
.choix-lot { margin: 0 0 16px; padding: 10px 14px; border-radius: var(--r-1); background: var(--ciel-1); font: 600 17px/1.4 var(--texte); color: var(--nuit); }
.choix-lot:not([hidden]) { display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; row-gap: 0; }
.choix-lot:not([hidden]) > span { flex: 1; min-width: 0; font-weight: 500; }
.choix-lot b { font-weight: 700; }
.choix-lot .lien-bouton { flex: none; min-height: 0; padding: 12px 0; margin-block: -12px; }
.piege { position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden; }

.fin h3 { margin: 0 0 12px; font: 600 34px/1.1 var(--titre); letter-spacing: -.03em; color: var(--nuit); }
.fin p { margin: 0 0 12px; font-size: 19px; }
.fin .ref { font-size: 17px; color: var(--nuit-2); }
.fin-ref, .insecable { white-space: nowrap; }
.fin .bouton { margin: 6px 0 4px; }
.complement { margin: 18px 0 6px; padding: 18px 20px; border-radius: var(--r-1); background: var(--ciel-1); }
.complement fieldset { border: 0; margin: 0; padding: 0; }
.complement legend { padding: 0; margin: 0 0 10px; font: 700 17px/1.4 var(--texte); color: var(--nuit); }
.complement .tuile > span { min-height: 52px; font-size: 17px; }
.complement-merci { margin-top: 10px; font: 700 17px/1.4 var(--texte); color: var(--vif); }

.dossier { margin: 16px 0; padding: 26px 28px; border-radius: var(--r-1); background: var(--blanc); box-shadow: inset 0 0 0 1px var(--ligne); }
.dossier-tete img { width: 120px; height: auto; }
.dossier-tete h3 { margin: 14px 0 4px; font: 600 26px/1.15 var(--titre); letter-spacing: -.02em; color: var(--nuit); }
.dossier-pour { font: 500 17px/1.4 var(--texte); color: var(--nuit-2); }
.dossier-ref { margin-top: 2px; font: 600 15px/1.4 var(--texte); color: var(--nuit-2); }
.dossier-partie { padding: 18px 0 6px; border-top: 1px solid var(--ligne); margin-top: 16px; }
.dossier-partie h4 { margin: 0 0 10px; font: 600 20px/1.2 var(--titre); letter-spacing: -.01em; color: var(--nuit); }
.dossier-partie p { margin: 0 0 8px; font-size: 17px; line-height: 1.5; }
.dossier-fort { font-weight: 700; }
.dossier-montant b { display: block; font: 600 32px/1.1 var(--titre); letter-spacing: -.02em; color: var(--vif); font-variant-numeric: tabular-nums; }
.dossier-montant span { display: block; font-size: 15px; color: var(--nuit-2); }
.dossier-calendrier, .dossier-lots, .dossier-distances { list-style: none; margin: 0 0 10px; padding: 0; }
.dossier-calendrier li, .dossier-lots li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--ligne); font-size: 17px; }
.dossier-calendrier small { display: block; font: 500 15px/1.4 var(--texte); color: var(--nuit-2); }
.dossier-calendrier b, .dossier-lots b { font: 600 20px/1.2 var(--titre); color: var(--nuit); text-align: right; font-variant-numeric: tabular-nums; }   
.dossier-calendrier li > span, .dossier-lots li > span { min-width: 0; }
.dossier-distances li { display: flex; gap: 14px; padding: 4px 0; font-size: 17px; }
.dossier-distances b { min-width: 4.4em; font: 600 20px/1.3 var(--titre); color: var(--nuit); font-variant-numeric: tabular-nums; }
.dossier-note { font-size: 15px !important; color: var(--nuit-2); }
.dossier-envoi { overflow-wrap: anywhere; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ligne); font: 600 16px/1.4 var(--texte); color: var(--nuit-2); }
.dossier-pied { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--ligne); }
.dossier-pied p { margin: 0 0 6px; font-size: 13px; line-height: 1.5; color: var(--nuit-2); }
.trait { height: 10px; border-radius: 5px; background: var(--ciel-2); margin: 10px 0; }
.dossier-partie[data-vide] h4 { color: var(--nuit-2); }

.s-vendre, .s-jardin, .s-bourg, .s-questions, .s-rappel, .s-preaux, .s-residence, .pied { content-visibility: auto; contain-intrinsic-size: auto 900px; }   

.s-jardin { padding: var(--section) 0 var(--section-serree); }
.trio img { display: block; width: 100%; height: 100%; object-fit: cover; }
.duo-chiffres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gout); margin-top: 56px; }
.chiffre-carte { display: flex; flex-direction: column; justify-content: space-between; gap: 28px; min-height: 260px; padding: clamp(28px, 3.2vw, 44px); border-radius: var(--r-2); background: var(--ciel-1); }
.chiffre-carte-n { margin: 0; font: 600 clamp(64px, 7vw, 104px)/.9 var(--titre); letter-spacing: -.045em; color: var(--vif); font-variant-numeric: tabular-nums; }
.chiffre-carte-n small { margin-left: .12em; font: 600 .36em/1 var(--texte); letter-spacing: 0; color: var(--nuit); }
.chiffre-carte-t { margin: 0; max-width: 30ch; font: var(--t-texte); color: var(--nuit-2); }
.chiffre-carte-t b { display: block; margin-bottom: 4px; font: var(--t-sous-titre); letter-spacing: -.03em; color: var(--nuit); }
.chiffre-carte.exterieur { position: relative; justify-content: flex-start; gap: 0; min-height: 0; margin: 0; padding: 0; overflow: hidden; }
.ext-dessin { background: var(--ciel-2); }
.ext-svg { display: block; width: 100%; height: auto; }
.exterieur figcaption { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px 28px; flex-wrap: wrap; padding: clamp(24px, 2.8vw, 38px); }
.exterieur .chiffre-carte-n { font-size: clamp(56px, 5.6vw, 88px); }
.exterieur .chiffre-carte-t { max-width: 22ch; }
.ext-svg .mur { fill: var(--blanc); }
.ext-svg .retrait { fill: #e9eff8; }
.ext-svg .dalle { fill: #dfe7f2; }
.ext-svg .verre-fonce { fill: #2c4f8f; }
.ext-svg .verre-clair { fill: rgba(167,196,240,.38); }
.ext-svg .reflet { fill: rgba(255,255,255,.13); }
.ext-svg .reflet-clair { fill: none; stroke: rgba(255,255,255,.75); stroke-width: 1.2; }
.ext-svg .menuiserie { fill: none; stroke: var(--blanc); stroke-width: 2.2; }
.ext-svg .ombre-laterale { fill: rgba(14,31,61,.08); }
.ext-svg .rideau { fill: none; stroke: #4a6eb0; stroke-width: 6; stroke-linecap: round; opacity: .8; }
.ext-svg .lampe { fill: none; stroke: #5a7fbf; stroke-width: 1.6; stroke-linecap: round; }
.ext-svg .poignee { fill: var(--blanc); }
.ext-svg .terrasse { fill: #d5dfec; }
.ext-svg .joints { fill: none; stroke: #b8c7dc; stroke-width: 1; }
.ext-svg .coussin, .ext-svg .plateau, .ext-svg .tasse { fill: var(--blanc); stroke: var(--nuit-2); stroke-width: .9; }
.ext-svg .vase, .ext-svg .pot, .ext-svg .lampe-murale { fill: var(--nuit-2); }
.ext-svg .fleur { fill: var(--vif-clair); }
.ext-svg .feuille { fill: #a9c6f5; }
.ext-svg .feuille.fonce { fill: #7fa2db; }
.ext-svg .fleurette, .ext-svg .rose, .ext-svg .pomme { fill: var(--blanc); stroke: #7fa2db; stroke-width: 1; }
.ext-svg .oiseaux { fill: none; stroke: #8ea6c9; stroke-width: 1.2; stroke-linecap: round; }
.ext-svg .lointain { fill: #cddcf0; }
.ext-svg .herbe { fill: none; stroke: #9ebbe9; stroke-width: 1.1; stroke-linecap: round; }
.ext-svg .toile { fill: var(--blanc); }
.ext-svg .toile-lignes { fill: none; stroke: #c3d2e8; stroke-width: 1; }
.ext-svg .houppier { fill: #a9c6f5; }
.ext-svg .houppier-ombre { fill: #8fb0e8; opacity: .55; }
.ext-svg .haie { fill: #9ebbe9; }
.ext-svg .haie-texture { fill: none; stroke: #7fa0d6; stroke-width: 1.1; stroke-linecap: round; }
.ext-svg .trace { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }
.ext-svg .contour, .ext-svg .sol { stroke: #9fb2cc; stroke-width: 1.2; }
.ext-svg .meuble { stroke: var(--nuit-2); stroke-width: 1.6; }
.ext-svg .tronc { stroke: var(--nuit-2); stroke-width: 2; }
.ext-svg .tige { stroke: #6f8fc8; stroke-width: 1.4; }
.ext-svg .rail { stroke: var(--nuit-2); stroke-width: 2.2; }
@media (prefers-reduced-motion: no-preference) {
  .js-revele .ext-dessin:not(.vu) .trace { stroke-dashoffset: 1; }
  .js-revele .ext-dessin:not(.vu) .remplit { opacity: 0; }
  .ext-dessin.vu .remplit { transition: opacity .9s var(--sortie) .1s; }
  .ext-dessin.vu .trace { transition: stroke-dashoffset 1.6s var(--sortie) .4s; }
}
@media (max-width: 760px) {
  .exterieur figcaption { flex-direction: column; align-items: flex-start; }
}
.trio-bloc { margin-top: var(--section-serree); }
.trio-titre { margin: 0 0 32px; max-width: 28ch; font: var(--t-sous-titre); letter-spacing: -.03em; color: var(--nuit); text-wrap: balance; }
.trio-titre .vif { color: var(--vif); }
.trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gout); }
.trio figure { position: relative; margin: 0; }
.trio .photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--r-2); background: var(--ciel-2); }
.trio figcaption, .mosaique figcaption { position: absolute; z-index: 2; left: 18px; top: 18px; right: auto; bottom: auto; max-width: calc(100% - 36px); margin: 0; padding: 10px 18px;
  border-radius: var(--r-rond); background: var(--blanc); color: var(--nuit); font: 600 15px/1.3 var(--texte); letter-spacing: 0; }
.trio figcaption b { font-weight: 600; }

.titre-revele .mot { display: inline-block; }
.js-revele .titre-revele .mot { opacity: 0; translate: 0 .4em; filter: blur(8px); }
.js-revele .titre-revele.vu .mot { animation: mot-monte 1s var(--sortie) calc(var(--i, 0) * 45ms) both; }
@keyframes mot-monte { from { opacity: 0; translate: 0 .4em; filter: blur(8px); } to { opacity: 1; translate: 0 0; filter: blur(0); } }
.js-revele .monte { opacity: 0; translate: 0 32px; }
.js-revele .monte.vu { opacity: 1; translate: 0 0; transition: opacity 1s var(--sortie) var(--retard, 0s), translate 1.2s var(--sortie) var(--retard, 0s); }
.js-revele .rideau > img { clip-path: inset(100% 0 0 0); scale: 1.22; }   
.js-revele .rideau.vu > img { clip-path: inset(0); scale: 1; transition: clip-path 1.4s var(--sortie) var(--retard, 0s), scale 2s var(--sortie) var(--retard, 0s); }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .derive { scale: 1.1; animation: derive linear both; animation-timeline: view(); animation-range: cover; }
    .js-revele .rideau > img.derive { scale: 1.3; }
    .js-revele .rideau.vu > img.derive { scale: 1.1; }
  }
}
@keyframes derive { from { translate: 0 -4.5%; } to { translate: 0 4.5%; } }
.mosaique { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gout); align-items: stretch; }
.mosaique figure { margin: 0; position: relative; display: flex; flex-direction: column; }
.mosaique .photo { position: relative; flex: 1; overflow: hidden; border-radius: var(--r-2); }
.mosaique img { display: block; width: 100%; height: 100%; object-fit: cover; }


.carte-bourg, .carte-region { margin: 0; overflow: clip; border-radius: var(--r-2); }   
.carte-scene { --carte-f: 1; --carte-o: 0%; position: relative; overflow: hidden; isolation: isolate; aspect-ratio: 16 / 9; border-radius: var(--r-2); background: var(--nuit); container-type: inline-size; }
.carte-scene.region { aspect-ratio: 1440 / 1252; }
.carte-scene > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 100% 50%; }
.carte-traces { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; }
.carte-traces .terrain { fill: rgba(143,184,255,.4); stroke: var(--vif-clair); stroke-width: 1.4; stroke-linejoin: round; }
.carte-traces .trace-fond { fill: none; stroke: rgba(14,31,61,.5); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }
.carte-traces .trace { fill: none; stroke: var(--blanc); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }
.carte-scene.region .trace-fond { stroke-width: 6; }
.carte-scene.region .trace { stroke-width: 2.6; }
.carte-noms { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.carte-noms > * { position: absolute; left: calc((var(--x) - var(--carte-o)) / var(--carte-f)); top: var(--y); translate: -50% -50%; white-space: nowrap; }
.carte-ville { font: 600 17px/1 var(--titre); font-size: max(13px, 2.3cqw); letter-spacing: .01em; color: var(--blanc); text-shadow: 0 1px 2px rgba(0,0,0,.6), 0 0 16px rgba(0,0,0,.5); }
.carte-ville.grande { font-size: 22px; font-size: max(15px, 3.3cqw); }
.carte-scene.bourg .carte-ville.grande { font-size: max(16px, 2.5cqw); }
.carte-rue { rotate: var(--a, 0deg); translate: -50% calc(-50% - 1em); font: 700 13px/1 var(--texte); font-size: max(13px, 1.08cqw); letter-spacing: .03em; color: rgba(255,255,255,.95); text-shadow: 0 1px 2px rgba(0,0,0,.75), 0 0 10px rgba(0,0,0,.55); }
.carte-route { font: 800 11px/1 var(--texte); font-size: max(9px, 1.45cqw); color: var(--nuit); background: rgba(255,255,255,.92); padding: .35em .55em; border-radius: 6px; }
@container (max-width: 520px) {
  .carte-noms > .secondaire { display: none; }   
  .carte-scene.bourg .carte-ville.grande { top: 15%; }
  .carte-scene.bourg .carte-rue:last-child { display: none; }   
  .carte-scene.bourg .carte-noms > .carte-rue:nth-child(2) { left: calc((55% - var(--carte-o)) / var(--carte-f)); }   
}
@container (max-width: 319px) { .carte-scene.bourg .carte-noms > .carte-rue:nth-child(2) { display: none; } }   
.carte-osm { position: absolute; right: 0; bottom: 0; z-index: 5; padding: 3px 8px; border-top-left-radius: 8px; background: rgba(255,255,255,.78); font: 500 11px/1.3 var(--texte); color: rgba(14,31,61,.72); }
.repere { position: absolute; z-index: 3; left: calc((var(--x) - var(--carte-o)) / var(--carte-f)); top: var(--y); translate: -50% -50%; display: grid; place-items: center; width: 34px; height: 34px; width: max(26px, 2.5cqw); height: max(26px, 2.5cqw); border-radius: 50%;
  background: var(--blanc); color: var(--nuit); font: 700 16px/1 var(--texte); font-size: max(13px, 1.2cqw); box-shadow: 0 0 0 4px rgba(14,31,61,.35), 0 12px 24px -10px rgba(0,0,0,.7); }
.repere-residence { z-index: 4; width: 24px; height: 24px; width: max(20px, 2cqw); height: max(20px, 2cqw); background: var(--vif); box-shadow: 0 0 0 4px var(--blanc), 0 12px 24px -10px rgba(0,0,0,.7); }
.carte-scene.region .repere-residence { width: max(18px, 3cqw); height: max(18px, 3cqw); }
.repere.lieu { width: 14px; height: 14px; width: max(12px, 2cqw); height: max(12px, 2cqw); background: none; box-shadow: none; }
.repere.lieu::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--blanc); box-shadow: 0 0 0 4px rgba(14,31,61,.42), 0 8px 16px -8px rgba(0,0,0,.6); }
.repere-residence::before { content: ""; position: absolute; inset: -12px; z-index: -1; border-radius: 50%; background: rgba(143,184,255,.42); animation: pouls 2.6s var(--sortie) infinite; }
@keyframes pouls { from { scale: .5; opacity: 1; } to { scale: 1.9; opacity: 0; } }
.repere-nom { position: absolute; right: -16px; bottom: calc(100% + 14px); white-space: nowrap; padding: .6em 1em; border-radius: var(--r-rond); background: var(--blanc); color: var(--nuit);
  font: 700 15px/1 var(--texte); font-size: max(13px, 1.15cqw); }
.carte-scene.region .repere-nom { font-size: max(13px, 1.9cqw); }
.repere-nom.centre { right: auto; left: 50%; translate: -50% 0; }
.repere-nom.vers-droite { right: auto; left: -16px; }
.repere-nom.dessous { bottom: auto; top: calc(100% + 12px); }
@media (prefers-reduced-motion: no-preference) {
  .js-revele .carte-scene:not(.vu) :is(.trace, .trace-fond) { stroke-dashoffset: 1; }
  .js-revele .carte-scene.vu :is(.trace, .trace-fond) { transition: stroke-dashoffset 1.9s cubic-bezier(.45, 0, .25, 1) .75s; }
  .js-revele .carte-scene.vu .deux { transition-delay: 1.35s; }
  .js-revele .carte-scene:not(.vu) :is(.terrain, .carte-noms) { opacity: 0; }
  .js-revele .carte-scene.vu :is(.terrain, .carte-noms) { transition: opacity .9s var(--sortie) .5s; }
  .js-revele .carte-scene:not(.vu) .repere { opacity: 0; scale: .4; }
  .js-revele .carte-scene.vu .repere { transition: opacity .5s var(--sortie), scale .7s var(--sortie); transition-delay: calc(.75s + var(--k, 0) * .45s); }
  .js-revele .carte-scene.region.vu .repere.lieu { transition-delay: calc(1.6s + var(--k, 0) * .7s); }
}
@media (prefers-reduced-motion: reduce) { .repere-residence::before { animation: none; opacity: .6; } }

.s-bourg { padding: var(--section-serree) 0; background: var(--ciel-1); }
.bourg-scene { position: relative; }
.bourg-fiche { position: absolute; z-index: 6; left: 24px; top: 24px; bottom: 24px; width: min(420px, 35%); display: flex; flex-direction: column; justify-content: center; padding: clamp(26px, 2.6vw, 40px);
  border-radius: 22px; background: var(--blanc); }
.bourg-titre { margin: 0; }
.geant { display: block; font: 600 clamp(96px, 14vw, 200px)/.85 var(--titre); letter-spacing: -.05em; color: var(--vif); font-variant-numeric: tabular-nums; }
.geant small { font: 600 .32em/1 var(--texte); letter-spacing: 0; margin-left: .1em; }
.bourg-fiche .geant { font-size: clamp(84px, 8.2vw, 124px); }
.suite-geant { display: block; margin: 14px 0 28px; max-width: 16ch; font: var(--t-sous-titre); letter-spacing: -.03em; color: var(--nuit); }
.chemin { list-style: none; margin: 0 0 20px; padding: 0 0 0 46px; position: relative; display: grid; gap: 14px; counter-reset: lieu; }
.chemin li:not(:last-child)::after { content: ""; position: absolute; left: -32px; top: 14px; width: 2px; height: calc(100% + 14px); background: var(--vif); transform-origin: top; }
.js-revele .chemin:not(.vu) li::after { transform: scaleY(0); }
.chemin.vu li::after { transition: transform .45s var(--sortie); }
.chemin.vu li:nth-child(2)::after { transition-delay: .4s; }
.chemin.vu li:nth-child(3)::after { transition-delay: .8s; }
.chemin li { position: relative; display: flex; align-items: baseline; gap: 16px; counter-increment: lieu; }
.chemin li::before { content: counter(lieu); position: absolute; z-index: 1; left: -46px; top: -1px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--nuit); color: var(--blanc); font: 700 14px/1 var(--texte); box-shadow: 0 0 0 4px var(--blanc); }
.chemin b { min-width: 3.4em; font: 600 clamp(22px, 1.9vw, 26px)/1.15 var(--titre); letter-spacing: -.03em; color: var(--nuit); font-variant-numeric: tabular-nums; }
.chemin span { font: var(--t-texte); }
.bourg-fiche .note { margin: 0; }
.trajets { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gout); }
.trajets li { display: flex; flex-direction: column; gap: 4px; padding: 24px 28px; border-radius: var(--r-2); background: var(--blanc); }
.trajets b { font: var(--t-sous-titre); letter-spacing: -.03em; color: var(--nuit); }
.trajets span { font: var(--t-texte); color: var(--nuit-2); }
.bourg-note { margin-top: 14px; }
@media (max-width: 1179px) {
  .carte-scene.bourg { aspect-ratio: 3 / 2; --carte-f: .84375; --carte-o: 15.625%; }
  .bourg-fiche { position: static; width: auto; margin-bottom: 16px; }
}
@media (max-width: 960px) { .trajets { grid-template-columns: 1fr; gap: 12px; } }
@media (max-width: 760px) {
  .carte-scene.bourg { aspect-ratio: 1.1; --carte-f: .61875; --carte-o: 38.125%; }
  .bourg-fiche { padding: 24px 22px; }
  .trajets li { padding: 18px 20px; }
}
@media (max-width: 380px) {   
  .bourg-fiche { padding: 22px 18px; }
  .chemin { padding-left: 40px; }
  .chemin li::before { left: -40px; }
  .chemin li:not(:last-child)::after { left: -26px; }
  .chemin li { gap: 12px; }
  .chemin b { min-width: 3.1em; font-size: 21px; }
}

.s-lots { padding: var(--section) 0; }
.lots-tete { margin-bottom: 56px; }
.offres { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gout); }
.offre { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-2); background: var(--ciel-1);
  transition: translate .5s var(--sortie), box-shadow .5s var(--sortie); }
.offre:hover { translate: 0 -4px; box-shadow: 0 26px 50px -30px rgba(14,31,61,.45); }
.offre .photo { position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: var(--ciel-2); }
.offre img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--sortie); }   
.offre:hover .photo img { transform: scale(1.045); }
.offre img[src*="plain-pied"] { object-position: 50% 78%; }   
.offre img[src*="loggias-facade"] { object-position: 42% 34%; }   
.offre img[src*="sejour-800"] { object-position: 46% 55%; }   
.offre-texte { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 26px 30px 30px; }
.offre .bouton { white-space: normal; }
.offre { cursor: pointer; }   
@media (min-width: 961px) {
  .offres { grid-template-columns: minmax(0, 11fr) minmax(0, 13fr); grid-template-rows: 1fr 1fr; }
  .offre-une { grid-row: 1 / span 2; }
  .offre-une .photo { flex: 1; aspect-ratio: auto; min-height: 300px; }
  .offre-une .offre-texte { flex: none; }   
  .offre:not(.offre-une) { flex-direction: row; }
  .offre:not(.offre-une) .photo { flex: 0 0 42%; aspect-ratio: auto; }
  .offre .offre-prix { margin-top: auto; }
}
.offre h3 { margin: 0; font: var(--t-sous-titre); letter-spacing: -.03em; color: var(--nuit); text-wrap: balance; }
.offre-detail { margin: 8px 0 18px; max-width: 36ch; font: var(--t-texte); color: var(--nuit-2); }
.offre-prix { margin: 0; font: var(--t-texte); color: var(--nuit-2); }
.offre-prix b { font: var(--t-sous-titre); letter-spacing: -.03em; color: var(--nuit); font-variant-numeric: tabular-nums; }
.offre-dispo { margin: 8px 0 22px; font: var(--t-petit); font-weight: 600; color: var(--nuit-2); }
.s-lots .note { margin-top: 18px; }

.fonce { background: var(--nuit); color: var(--blanc); }
.s-vendre > .cadre { padding-block: clamp(72px, 8vw, 128px); }
.vendre-tete { text-align: center; }
.s-vendre .h2 { max-width: none; margin-inline: auto; }
.h2-suite { margin: 6px 0 0; font: var(--t-sous-titre); font-size: clamp(26px, 2.6vw, 38px); letter-spacing: -.035em; color: var(--vif); text-wrap: balance; }
.fonce .h2-suite { margin-inline: auto; color: var(--vif-clair); }
.vendre-tete .phrase { margin: 22px auto 0; max-width: 46ch; }
.vendre-choix { display: inline-flex; align-items: center; gap: 4px; margin-top: 32px; padding: 6px; border-radius: var(--r-rond); background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
.ex-pour { padding: 0 10px 0 16px; font: 600 16px/1.2 var(--texte); color: var(--sur-nuit); white-space: nowrap; }
.vendre-choix label { position: relative; display: block; cursor: pointer; }
.vendre-choix input { position: absolute; inset: 0; z-index: 1; margin: 0; opacity: 0; cursor: pointer; }
.vendre-choix label > span { display: block; padding: 12px 20px; border-radius: var(--r-rond); font: 600 16px/20px var(--texte); color: var(--sur-nuit); white-space: nowrap; transition: background-color .35s var(--sortie), color .35s var(--sortie); }
.vendre-choix label > span b { margin-left: 4px; font-weight: 700; color: var(--blanc); font-variant-numeric: tabular-nums; transition: color .35s var(--sortie); }
.vendre-choix label:hover > span { background: rgba(255,255,255,.08); }
.vendre-choix input:checked + span { background: var(--blanc); color: var(--nuit); }
.vendre-choix input:checked + span b { color: var(--vif); }
.vendre-choix input:focus-visible + span { outline: 3px solid var(--blanc); outline-offset: 2px; }
.echeancier { list-style: none; max-width: 1080px; margin: 56px auto 0; padding: 0;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: auto auto auto auto; }
.echeancier li { display: grid; grid-row: 1 / span 4; grid-template-rows: subgrid; justify-items: center; text-align: center; }
.ech-texte { display: contents; }
.ech-dessin { display: block; width: 100%; height: auto; overflow: visible; }
.ech-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.ech-etape { margin: 0; padding: 18px 10px 0; }
.ech-etape b { display: block; font: 700 17px/1.3 var(--texte); color: var(--blanc); }
.ech-etape span { display: block; margin-top: 2px; font: 500 15px/1.35 var(--texte); color: var(--sur-nuit); text-wrap: balance; }
.ech-montant { margin: 16px 0 0; }
.ech-montant b { display: block; font: 600 clamp(22px, 2.1vw, 30px)/1.05 var(--titre); letter-spacing: -.03em; color: var(--blanc); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ech-montant span { display: block; margin-top: 5px; font: 600 14px/1.3 var(--texte); color: var(--sur-nuit); }
.ech-barre { display: block; width: min(150px, 80%); height: 6px; margin-top: 12px; border-radius: 3px; background: rgba(255,255,255,.1); overflow: hidden; }
.ech-barre i { display: block; width: calc(var(--p) * 1%); height: 100%; border-radius: inherit; transform-origin: 0 50%;
  background: linear-gradient(90deg, rgba(143,184,255,.4) 0 calc(var(--avant) / var(--p) * 100%), var(--vif-clair) 0); }
.ech-dessin .sol { fill: none; stroke: rgba(198,212,234,.5); stroke-width: 1.4; }
.ech-dessin .fantome { fill: none; stroke: rgba(198,212,234,.48); stroke-width: 1.1; stroke-dasharray: 2.5 3; }
.ech-dessin .cote { fill: none; stroke: rgba(198,212,234,.6); stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
.ech-dessin .fond { fill: url(#ech-hachures); stroke: var(--vif-clair); stroke-width: 1.1; }
.ech-dessin .grue { fill: none; stroke: rgba(198,212,234,.55); stroke-width: 1; stroke-linejoin: round; }
.ech-dessin .trace { fill: none; stroke: #e3ecf8; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }
.ech-dessin .toit { fill: #7fa5e8; }
.ech-dessin .baie { fill: none; stroke: rgba(227,236,248,.62); stroke-width: 1; }
.ech-dessin .facade { fill: #f2f6fd; }
.ech-dessin .loggia { fill: #d3dff1; }
.ech-dessin .lames { fill: none; stroke: #a9bddb; stroke-width: .9; }
.ech-dessin .vitre { fill: #2f5596; stroke: #f2f6fd; stroke-width: .9; }
.ech-dessin .garde-corps { fill: rgba(143,184,255,.62); stroke: #9fb5d6; stroke-width: .8; }
.ech-dessin .porte-ouverte { fill: var(--blanc); stroke: var(--vif-clair); stroke-width: 1; }
.ech-dessin .tronc { fill: none; stroke: rgba(198,212,234,.6); stroke-width: 1.4; stroke-linecap: round; }
.ech-dessin .houppier { fill: rgba(143,184,255,.26); stroke: rgba(198,212,234,.55); stroke-width: 1; }
.ech-dessin .cle-halo { fill: rgba(143,184,255,.22); }
.ech-dessin .cle-fond { fill: var(--blanc); }
.ech-dessin .cle-trait { fill: none; stroke: var(--vif); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ech-dessin .cle { transform-box: view-box; transform-origin: 100px 22px; }
.vendre-duree { position: relative; max-width: 1080px; margin: 22px auto 0; padding-top: 34px; text-align: center; }
.vendre-duree::before { content: ""; position: absolute; top: 0; left: 10%; right: 10%; height: 18px; border: 1.5px solid rgba(143,184,255,.5); border-top: 0; border-radius: 0 0 14px 14px; }
.vendre-duree span { display: inline-block; font: 600 17px/1.4 var(--texte); color: var(--blanc); }
.vendre-actions { justify-content: center; margin-top: 48px; }
@media (prefers-reduced-motion: no-preference) {
  .js-revele .echeancier:not(.vu) .trace { stroke-dashoffset: 1; }
  .js-revele .echeancier:not(.vu) :is(.fantome, .cote, .fond, .grue, .baie, .remplit) { opacity: 0; }
  .js-revele .echeancier:not(.vu) .toit { fill-opacity: 0; }
  .js-revele .echeancier:not(.vu) .cle { opacity: 0; transform: scale(.3); }
  .js-revele .echeancier:not(.vu) :is(.ech-etape, .ech-montant, .ech-barre) { opacity: 0; translate: 0 10px; }
  .js-revele .echeancier:not(.vu) .ech-barre i { transform: scaleX(0); }
  .echeancier.vu .trace { transition: stroke-dashoffset 1.2s var(--sortie) calc(.2s + var(--k, 0) * .3s); }
  .echeancier.vu :is(.fantome, .cote, .fond, .grue) { transition: opacity .8s var(--sortie) calc(.1s + var(--k, 0) * .3s); }
  .echeancier.vu :is(.baie, .remplit) { transition: opacity .9s var(--sortie) calc(.75s + var(--k, 0) * .3s); }
  .echeancier.vu .toit { transition: fill-opacity .9s var(--sortie) calc(.6s + var(--k, 0) * .3s); }
  .echeancier.vu .cle { transition: opacity .5s var(--sortie) calc(1.6s + var(--k, 0) * .3s), transform .8s cubic-bezier(.34, 1.56, .64, 1) calc(1.6s + var(--k, 0) * .3s); }
  .echeancier.vu :is(.ech-etape, .ech-montant, .ech-barre) { transition: opacity .6s var(--sortie) calc(.5s + var(--k, 0) * .2s), translate .8s var(--sortie) calc(.5s + var(--k, 0) * .2s); }
  .echeancier.vu .ech-barre i { transition: transform 1s var(--sortie) calc(.9s + var(--k, 0) * .2s); }
}
@media (max-width: 760px) {
  .vendre-choix { display: grid; grid-template-columns: 1fr; width: 100%; max-width: 400px; border-radius: 24px; }
  .ex-pour { padding: 8px 0 6px; text-align: center; }
  .vendre-choix label > span { text-align: center; }
  .echeancier { grid-template-columns: 1fr; grid-template-rows: none; row-gap: 16px; margin-top: 36px; }
  .echeancier li { grid-row: auto; grid-template-rows: none; grid-template-columns: 112px minmax(0, 1fr); align-items: center; justify-items: stretch; column-gap: 16px; text-align: left; }
  .ech-texte { display: block; }
  .ech-etape { padding: 0; }
  .ech-montant { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 8px; margin-top: 8px; }
  .ech-montant b { font-size: 22px; }
  .ech-montant span { margin: 0; }
  .ech-barre { width: 100%; margin-top: 8px; }
  .vendre-duree { margin-top: 26px; padding-top: 0; }
  .vendre-duree::before { display: none; }
  .vendre-actions { margin-top: 36px; }
  .vendre-actions .bouton, .vendre-actions .tel { width: 100%; }
}

.s-questions { padding: var(--section-serree) 0; background: var(--ciel-1); }
.s-bourg + .s-questions { background: var(--blanc); }   
.questions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); align-items: start; }
.questions .questions-tete { grid-column: 1 / span 5; grid-row: 1 / span 12; position: sticky; top: calc(var(--entete) + 40px); }
.questions .h2 { margin: 0; }
.questions-appel { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 32px 0 0; font: var(--t-texte); font-weight: 600; color: var(--nuit-2); }
.questions details { grid-column: 7 / span 6; margin-bottom: 10px; padding: 0 26px; border-radius: 22px; background: var(--blanc); }
.s-bourg + .s-questions .questions details { background: var(--ciel-1); }
.questions summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 18px; align-items: center; min-height: 72px; padding: 12px 0; font: var(--t-sous-titre); font-size: clamp(22px, 1.9vw, 26px); line-height: 1.34; letter-spacing: -.015em; color: var(--nuit); }
.questions summary::-webkit-details-marker { display: none; }
.questions summary::after { content: ""; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231652f0' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 18px no-repeat; transition: transform .4s var(--sortie), background-color .3s var(--sortie); }
.questions summary:hover::after { background-color: var(--choix-actif); }
.questions details[open] summary::after { transform: rotate(135deg); }
.questions details p { margin: 0 0 24px; font: var(--t-texte); color: var(--nuit-2); max-width: 60ch; }

.s-rappel { position: relative; padding: var(--section) 0; background: var(--nuit); color: var(--blanc); overflow: hidden; }
.s-rappel > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 55%; }
.s-rappel::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(14,31,61,.74); }   
.s-rappel .cadre { position: relative; z-index: 2; }
.s-rappel .texte { max-width: 780px; margin: 0 auto; text-align: center; }
.s-rappel .h2 { max-width: 16ch; margin-inline: auto; }
.s-rappel .phrase { margin-inline: auto; color: var(--sur-nuit); }
.s-rappel .actions { justify-content: center; margin-top: 36px; }
.s-rappel .rassure { margin: 18px 0 0; font: var(--t-petit); font-weight: 600; color: var(--blanc); }

.res-lot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; margin: 0 0 18px; font: 600 17px/1.35 var(--texte); color: var(--nuit-2); }
.heros { margin: 0 0 24px; padding: 0; }
.heros b { display: block; font: 600 clamp(56px, 5vw, 72px)/1 var(--titre); letter-spacing: -.04em; color: var(--vif); font-variant-numeric: tabular-nums; }
.heros span { display: block; margin-top: 8px; font: 500 19px/1.4 var(--texte); color: var(--nuit); max-width: 34ch; }
.jauge-titre { margin: 0 0 12px; font: 700 17px/1.35 var(--texte); color: var(--nuit); }
.jauges { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 10px; }
.jauges li { display: grid; grid-template-columns: 128px 1fr auto; align-items: center; gap: 12px; font: 600 17px/1.2 var(--texte); }
.jauges .barre { height: 14px; border-radius: 7px; background: var(--ciel-2); overflow: hidden; }
.jauges .barre i { display: block; height: 100%; width: var(--l, 50%); border-radius: 7px; background: var(--ligne-champ); transition: width .6s var(--sortie); }
.jauges li:first-child .barre i { background: var(--vif); }
.jauges .val { font: 600 26px/1 var(--titre); letter-spacing: -.02em; color: var(--nuit); font-variant-numeric: tabular-nums; min-width: 3.6em; text-align: right; }
.jauges .val small { font: 600 15px/1 var(--texte); letter-spacing: 0; color: var(--nuit-2); }
.res-faits { list-style: none; margin: 22px 0 16px; padding: 18px 0 0; border-top: 1px solid var(--ligne); display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.res-faits li { display: grid; align-content: start; gap: 2px; font: 500 16px/1.35 var(--texte); color: var(--nuit-2); }
.res-faits b { font: 600 26px/1.1 var(--titre); letter-spacing: -.02em; color: var(--nuit); font-variant-numeric: tabular-nums; }
.res-faits b small { font: 600 15px/1 var(--texte); letter-spacing: 0; color: var(--nuit-2); }
.etiquettes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.etiquette { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px 0 14px; border-radius: 12px; border: 0; box-shadow: inset 0 0 0 1px var(--ligne-champ); background: var(--blanc); font: 600 15px/1 var(--texte); color: var(--nuit); cursor: pointer; transition: box-shadow .3s var(--sortie), background .3s var(--sortie); }
.etiquette:hover { box-shadow: inset 0 0 0 1.5px var(--vif); background: var(--choix-survol); }
.etiquette svg { width: 16px; height: 16px; color: var(--vif); }
.teaser { margin: 6px 0 20px; padding: 16px 18px 14px; border-radius: var(--r-1); background: var(--ciel-1); box-shadow: inset 0 0 0 1px var(--ligne); }
.teaser-hyp { margin: 0 0 10px; font: 600 15px/1.45 var(--texte); color: var(--nuit-2); }
.teaser-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font: 600 17px/1.4 var(--texte); color: var(--nuit); }
.teaser-liste li { position: relative; padding-left: 32px; }
.teaser-liste li::before { content: ""; position: absolute; left: 0; top: .08em; width: 21px; height: 21px; border-radius: 50%; background: var(--vif) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.resultat-fin { margin: 20px 0 10px; }
.etude-pour { margin: -4px 0 8px; font: 600 17px/1.4 var(--texte); color: var(--nuit-2); }
.comparer { margin: 14px 0 0; }
.comparer summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; font: 700 16px/1.3 var(--texte); color: var(--vif); text-decoration: underline; text-underline-offset: 4px; }
.comparer ul { list-style: none; margin: 6px 0 8px; padding: 0; display: grid; gap: 6px; }
.comparer li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 12px; border-radius: 12px; background: var(--ciel-1); font: 500 16px/1.35 var(--texte); }
.comparer li.jb { box-shadow: inset 0 0 0 2px var(--vif); font-weight: 700; }
.comparer b { font: 600 18px/1.2 var(--titre); color: var(--nuit); font-variant-numeric: tabular-nums; white-space: nowrap; }
.comparer b small { font: 600 14px/1 var(--texte); color: var(--nuit-2); }
.pied-carte { margin: 4px 0 0; padding-top: 14px; border-top: 1px solid var(--ligne); display: grid; gap: 4px; font: 500 15px/1.45 var(--texte); color: var(--nuit-2); }
.pied-carte button { border: 0; background: none; padding: 0; color: var(--vif); font: 700 15px/1.45 var(--texte); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.calcul { margin: 12px 0 0; padding: 14px 16px; border-radius: 12px; background: var(--ciel-1); font: 500 16px/1.5 var(--texte); color: var(--nuit-2); display: grid; gap: 8px; }
.calcul[hidden] { display: none; }
.liste-lots { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.liste-lots button { width: 100%; display: flex; justify-content: space-between; gap: 12px; min-height: 56px; padding: 10px 16px; border: 0; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--ligne-champ); background: var(--blanc); font: 600 17px/1.3 var(--texte); color: var(--nuit); text-align: left; cursor: pointer; }
.liste-lots button:hover, .liste-lots button[aria-current="true"] { box-shadow: inset 0 0 0 2px var(--vif); background: var(--choix-actif); }
.liste-lots h4 { margin: 12px 0 4px; font: 700 16px/1.3 var(--texte); color: var(--vif); }
.autre-montant[hidden] { display: none; }
.autre-montant { margin-top: 14px; }
.etude { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--ligne); }
.etude-tete { margin: 0; font: 600 15px/1.45 var(--texte); color: var(--nuit-2); }
.etude h4 { margin: 22px 0 10px; font: 600 22px/1.2 var(--titre); letter-spacing: -.02em; color: var(--nuit); }
.etude p, .etude li { font-size: 17px; color: var(--nuit); }
.etude ul { margin: 0; padding-left: 20px; }
.tableau-defile { overflow-x: auto; }
.tableau-defile table { border-collapse: collapse; width: 100%; min-width: 620px; font: 500 16px/1.3 var(--texte); font-variant-numeric: tabular-nums; }
.tableau-defile th, .tableau-defile td { padding: 9px 8px; border-bottom: 1px solid var(--ligne); text-align: right; white-space: nowrap; }
.tableau-defile th:first-child, .tableau-defile td:first-child { text-align: left; }
.tableau-defile th { font-weight: 700; color: var(--nuit-2); }
.etude .mentions { margin-top: 16px; display: grid; gap: 8px; font-size: 16px; color: var(--nuit-2); }

.s-dispositif { padding: var(--section) 0; }
.s-dispositif .h2 { max-width: none; }
.s-dispositif .h2 .vif { display: block; }   
.bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto; gap: var(--gout); margin-top: 56px; }
.bento > article { border-radius: var(--r-2); padding: clamp(28px, 3.2vw, 46px); }
.bento h3 { margin: 0 0 16px; font: var(--t-sous-titre); letter-spacing: -.03em; color: var(--nuit); }   
.bento-a { grid-column: 1 / span 7; grid-row: 1 / span 2; display: flex; flex-direction: column; background: var(--nuit); color: var(--blanc); }
.bento-a h3 { color: var(--blanc); }
.bento-a .geant { color: var(--blanc); font-size: clamp(104px, 12.5vw, 184px); }
.bento-a .geant small { color: var(--vif-clair); }
.bento-a .bento-texte { margin-top: 20px; max-width: 36ch; font: var(--t-chapo); color: var(--sur-nuit); }
.cumul { margin-top: auto; padding-top: 34px; }
.cumul-total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0; }
.cumul-total b { font: 600 clamp(32px, 3.2vw, 44px)/1 var(--titre); letter-spacing: -.035em; color: var(--blanc); font-variant-numeric: tabular-nums; }
.cumul-total span { font: var(--t-petit); color: var(--sur-nuit); }
.annees { --h-cumul: clamp(120px, 12vw, 176px); position: relative; list-style: none; margin: 0; padding: 46px 0 0;
  display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: clamp(5px, .7vw, 10px); align-items: end; }
.annees li { position: relative; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-end; }
.annees i { display: block; height: calc(var(--h-cumul) * (var(--k) + 1) / 9); border-radius: 8px 8px 3px 3px; transform-origin: 50% 100%;
  background: linear-gradient(0deg, rgba(143,184,255,.26) 0 calc(100% * var(--k) / (var(--k) + 1)), var(--vif-clair) 0); }
.annees .an { display: block; margin-top: 9px; font: 700 15px/1 var(--texte); color: var(--sur-nuit); text-align: center; font-variant-numeric: tabular-nums; }
.annees .gain { position: absolute; left: 50%; bottom: calc(var(--h-cumul) * (var(--k) + 1) / 9 + 32px); translate: -50% 0; z-index: 1;
  padding: 6px 10px; border-radius: var(--r-rond); background: var(--blanc); color: var(--nuit); font: 700 13px/1 var(--texte); white-space: nowrap; opacity: 0; }
.annees li:first-child .gain { left: 0; translate: 0 0; }
.annees li:nth-last-child(-n+2) .gain { left: auto; right: 0; translate: 0 0; }
.annees li:last-child .gain { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .js-revele .annees:not(.vu) i { transform: scaleY(0); }
  .js-revele .annees:not(.vu) .an { opacity: .35; }
  .js-revele .annees:not(.vu) li:last-child .gain { opacity: 0; }
  .js-revele .cumul:has(.annees:not(.vu)) .cumul-total b { opacity: 0; }
  .cumul-total b { transition: opacity .4s var(--sortie); }
  .annees.vu i { transition: transform .8s cubic-bezier(.34, 1.36, .64, 1) calc(.3s + var(--k) * .34s); }
  .annees.vu .an { transition: opacity .4s var(--sortie) calc(.3s + var(--k) * .34s); }
  .annees.vu .gain { animation: gain-pop 1.05s var(--sortie) calc(.42s + var(--k) * .34s) both; }
  .annees.vu li:last-child .gain { animation-name: gain-reste; }
  .annees.vu li:last-child i { animation: onde 1.1s var(--sortie) calc(.3s + 8 * .34s + .55s) both; }
  .cumul-total b.fini { animation: bond .7s cubic-bezier(.34, 1.56, .64, 1) both; }
  @keyframes gain-pop { 0% { opacity: 0; transform: translateY(10px) scale(.9); } 22% { opacity: 1; transform: none; } 72% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(-6px); } }
  @keyframes gain-reste { 0% { opacity: 0; transform: translateY(10px) scale(.9); } 100% { opacity: 1; transform: none; } }
  @keyframes onde { from { box-shadow: 0 0 0 0 rgba(143,184,255,.65); } to { box-shadow: 0 0 0 14px rgba(143,184,255,0); } }
  @keyframes bond { 0% { scale: 1; } 40% { scale: 1.07; } 100% { scale: 1; } }
}
.bento-b, .bento-c { grid-column: 8 / span 5; background: var(--ciel-1); }
.bento-b { grid-row: 1; }
.bento-c { grid-row: 2; }
.bento-chiffre { margin: 0 0 12px; font: var(--t-texte); color: var(--nuit-2); }
.bento-chiffre b { display: block; margin-bottom: 4px; font: var(--t-chiffre); letter-spacing: -.035em; color: var(--nuit); font-variant-numeric: tabular-nums; }
.bento-b .bento-texte { font: var(--t-texte); color: var(--nuit); }
.engagements { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.engagements li { position: relative; padding-left: 36px; font: var(--t-texte); color: var(--nuit); }
.engagements li::before { content: ""; position: absolute; left: 0; top: .12em; width: 24px; height: 24px; border-radius: 50%; background: var(--vif) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat; }
.bento .perdu { margin-top: 16px; font: var(--t-texte); font-weight: 700; color: var(--nuit); }
.s-preaux { padding: var(--section) 0; background: var(--ciel-1); }
.s-preaux .h2 { max-width: 21ch; }
.preaux-bento { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--gout); align-items: stretch; margin-top: 56px; }
.preaux-bento .carte-region { margin: 0; }
@media (min-width: 1180px) { .preaux-bento .faits-pile { height: 0; min-height: 100%; } }   
.faits-pile { list-style: none; margin: 0; padding: 0; display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: var(--gout); }
.faits-pile li { display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 22px 28px; border-radius: var(--r-2); background: var(--blanc); }
.faits-pile b { font: var(--t-chiffre); letter-spacing: -.04em; color: var(--vif); font-variant-numeric: tabular-nums; }
.faits-pile span { font: var(--t-texte); color: var(--nuit); }
.s-residence { padding: var(--section) 0; }
.s-residence .h2 { max-width: 18ch; margin-bottom: 56px; }
.s-residence .mosaique figure { display: flex; flex-direction: column; }
.s-residence .m-grand { grid-column: 1 / span 8; grid-row: 1 / span 2; }
.s-residence .m-grand .photo { min-height: 320px; }
.s-residence .m-petit { grid-column: 9 / span 4; }
.s-residence .m-petit .photo { flex: none; aspect-ratio: 4 / 3; }

.pied { background: var(--nuit); color: var(--sur-nuit); padding: 72px 0 40px; font-size: 17px; }
.pied .vente-pied { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gout); row-gap: 24px; padding-bottom: 40px; }
.pied .vente-pied .t { grid-column: 1 / span 8; }
.pied .vente-pied .a { grid-column: 9 / span 4; align-self: end; justify-self: end; }
.pied .vente-pied h2 { margin: 0 0 12px; font: var(--t-sous-titre); letter-spacing: -.03em; color: var(--blanc); }
.pied .vente-pied address { font-style: normal; font: var(--t-texte); color: var(--blanc); }
.pied .vente-pied .h { margin-top: 6px; font: var(--t-texte); }
.pied .liens { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 32px; padding: 28px 0; }
.pied .liens img { width: 150px; height: auto; }
.pied nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 28px; }
.pied nav a, .pied .lien { display: inline-flex; align-items: center; min-height: 44px; color: var(--blanc); text-decoration: none; transition: color .25s var(--sortie); }
.pied nav a:hover, .pied .lien:hover, .pied .signature-adomia a:hover { color: var(--vif-clair); }
.pied .lien { border: 0; background: none; padding: 0; font: inherit; cursor: pointer; }
.pied .legal-court { margin: 0; font: 500 13px/1.6 var(--texte); color: rgba(198,212,234,.72); max-width: 110ch; }
.pied .signature-adomia { margin-top: 14px; font: 500 13px/1.6 var(--texte); color: rgba(198,212,234,.72); }   
.pied .signature-adomia a { color: var(--blanc); text-decoration: none; transition: color .25s var(--sortie); }
@media (max-width: 760px) {
  .pied .liens { flex-direction: column; align-items: flex-start; gap: 14px; }
  .pied nav ul { flex-direction: column; gap: 0; }   
}

.cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 40; max-width: 780px; margin: 0 auto; background: var(--blanc); color: var(--nuit); border-radius: 20px; padding: 20px 22px; box-shadow: 0 14px 32px -12px rgba(14,31,61,.4), 0 2px 6px rgba(14,31,61,.12); display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.cookies[hidden] { display: none; }
.cookies p { flex: 1 1 320px; font-size: 17px; line-height: 1.45; }
.cookies a { color: var(--vif); font-weight: 700; }
.cookies .boutons { display: flex; gap: 10px; }
.cookies .bouton { min-height: 48px; padding: 0 22px; font-size: 18px; box-shadow: none; }
.cookies [data-consent="accepte"] { background: var(--vif); color: var(--blanc); }
.cookies [data-consent="accepte"]:hover { background: var(--vif-survol); }
.cookies [data-consent="refuse"] { background: var(--blanc); color: var(--vif); box-shadow: inset 0 0 0 2px var(--vif); }
.cookies [data-consent="refuse"]:hover { background: var(--ciel-1); }

.barre-mobile { display: none; }

.legale { padding: 72px 0 96px; }
.legale h1 { margin: 0 0 32px; font: 600 clamp(36px, 4vw, 56px)/1.05 var(--titre); letter-spacing: -.035em; color: var(--nuit); text-wrap: balance; }
.legale h2 { margin: 40px 0 12px; font: 600 26px/1.2 var(--titre); letter-spacing: -.02em; color: var(--nuit); }
.legale p, .legale li { font-size: 19px; max-width: 62ch; }
.legale p + p { margin-top: 12px; }
.legale a:not(.bouton) { color: var(--vif); }
.introuvable .legale { min-height: 56vh; }
.introuvable-actions { margin-top: 32px; }

@media (prefers-reduced-motion: no-preference) {
  .anime .accroche { animation: apparait 1s var(--sortie) .62s both; }
  .anime-fini .accroche, .anime-fini .pose { animation: none; }
  @keyframes apparait { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  @keyframes poser { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
  @keyframes scene-recule { from { scale: 1.12; } to { scale: 1; } }
  .js-revele .devoile { clip-path: inset(0 0 0 0 round var(--rayon, var(--r-2))); transition: clip-path 1.4s var(--sortie), transform 2s var(--sortie); }
  .js-revele .devoile:not(.vu) { clip-path: inset(100% 0 0 0 round var(--rayon, var(--r-2))); transform: scale(1.14); }
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) and (min-width: 961px) {
    .parallaxe { animation: glisse-image linear both; animation-timeline: view(); animation-range: cover; }
    @keyframes glisse-image { from { transform: translateY(-5%) scale(1.12); } to { transform: translateY(5%) scale(1.12); } }
  }
}
@supports selector(::details-content) {
  @media (prefers-reduced-motion: no-preference) {
    .questions { interpolate-size: allow-keywords; }
    .questions details::details-content { block-size: 0; overflow: clip; transition: block-size .5s var(--sortie), content-visibility .5s allow-discrete; }
    .questions details[open]::details-content { block-size: auto; }
  }
}

@media (max-width: 1180px) {
  .jauges li { grid-template-columns: 112px 1fr auto; }
}

@media (max-width: 960px) {
  :root { --cote: 20px; --gout: 16px; --entete: 68px; }
  body { font-size: 18px; }
  .pied { padding-bottom: calc(40px + 84px + env(safe-area-inset-bottom)); }   
  :root { --t-texte: 500 18px/1.55 var(--texte); }
  .logo { width: 136px; }
  .logih, .entete .bouton.petit, .hors-action .entete .bouton.petit { display: none; }
  .entete .tel { width: 48px; min-height: 48px; padding: 0; }
  .entete .tel span, .barre-mobile .tel span { display: none; }   
  .h2 { max-width: none; }
  .lots-tete, .jardin-tete { display: block; }
  .lots-tete .phrase, .jardin-tete .phrase { margin-top: 18px; }
  .mosaique { grid-template-columns: 1fr; }
  .s-residence .m-grand, .s-residence .m-petit { grid-column: 1; grid-row: auto; }
  .s-residence .mosaique .photo { flex: none; aspect-ratio: 4 / 3; }
  .questions { grid-column: 1 / -1; grid-row: auto; }
  .bento, .preaux-bento { grid-template-columns: 1fr; }
  .bento-a, .bento-b, .bento-c { grid-column: 1; grid-row: auto; }
  .annees .an { font-size: 13px; }
  .annees .gain { padding: 5px 8px; font-size: 12px; }
  .faits-pile { grid-template-rows: none; }
  .questions { display: block; }
  .questions .questions-tete { position: static; margin-bottom: 28px; }
  .questions summary { min-height: 64px; font: 700 18px/1.4 var(--texte); letter-spacing: 0; }
  .questions details { padding: 0 18px; }
  .s-rappel::before { background: rgba(14,31,61,.8); }
  .panneau { padding: 20px 18px 20px; }
  .champs { grid-template-columns: 1fr; }
  .jauges li { grid-template-columns: 1fr auto; }
  .jauges .barre { grid-column: 1 / -1; grid-row: 2; }
  .s-residence .m-grand .photo { flex: none; min-height: 0; aspect-ratio: 4 / 3; }
  .pied .vente-pied .t, .pied .vente-pied .a { grid-column: 1 / -1; justify-self: start; }
  .cookies { left: 10px; right: 10px; bottom: 10px; padding: 16px; }
  .cookies .boutons { width: 100%; }
  .cookies .bouton { flex: 1; }
  .barre-mobile { display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: var(--blanc); box-shadow: 0 -1px 0 var(--ligne), 0 -12px 24px -16px rgba(14,31,61,.35); transform: translateY(110%); transition: transform .35s var(--sortie); }
  .barre-mobile.visible { transform: none; }
  .barre-mobile.cache-cookies { transform: translateY(110%) !important; }
  .barre-mobile .bouton { flex: 1; min-height: 56px; padding-inline: 16px; font-size: 16px; }
  .barre-mobile .tel { flex: none; width: 56px; min-height: 56px; padding: 0; }
  .duo-chiffres { grid-template-columns: 1fr; }
  .chiffre-carte { min-height: 0; }
  .offre-texte { padding: 22px 20px 24px; }
  .offre .bouton { width: 100%; }
  .trio { grid-template-columns: 1fr 1fr; }
  .trio figure:first-child { grid-column: 1 / -1; }
  .trio figure:first-child .photo { aspect-ratio: 16 / 10; }
  .trio figcaption, .mosaique figcaption { left: 12px; top: 12px; max-width: calc(100% - 24px); padding: 8px 14px; font-size: 15px; }
}
@media (max-width: 560px) {
  .bouton { gap: 12px; padding-left: 22px; font-size: 16px; white-space: normal; }   
  .bouton > svg { width: 40px; height: 40px; padding: 11px; }
  .s-rappel .bouton, .s-rappel .tel { width: 100%; }
  .tuiles.deux, .tuiles.trois { grid-template-columns: 1fr; gap: 8px; }
  .tuile.grande > span { min-height: 78px; }
  .dossier { padding: 20px 16px; }
}
@media (max-width: 380px) {
  .bouton { gap: 8px; padding-left: 18px; font-size: 15px; }   
  .bouton > svg { width: 34px; height: 34px; padding: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  .vitrail img.vue { animation: none; }
  html { scroll-behavior: auto; }
  .titre-anime .mot, .ecran.entre { animation: none !important; }
  .chemin::before, .echeancier i, .jauges .barre i, .annees i { transition: none !important; }
  .js-revele .chemin:not(.vu)::before, .js-revele .echeancier i { transform: none; }
}

@media print {
  @page { margin: 15mm; }
  .js-revele .titre-revele .mot, .js-revele .monte { opacity: 1 !important; translate: none !important; filter: none !important; }
  .js-revele .rideau > img, .js-revele .devoile { clip-path: none !important; scale: 1 !important; transform: none !important; }
  body:has(.imprimable:not(:empty)) { background: #fff !important; padding: 0 !important; font-size: 11pt; }
  body:has(.imprimable:not(:empty)) *:not(:has(.imprimable)):not(.imprimable):not(.imprimable *) { display: none !important; }
  body:has(.imprimable:not(:empty)) :is(main, section, .cadre, .grille, .haut-carte, .panneau, .ecran.fin) { display: block !important; margin: 0 !important; padding: 0 !important; max-width: none !important; min-height: 0 !important; background: none !important; box-shadow: none !important; color: #000 !important; }
  .imprimable, .dossier { margin: 0; padding: 0; border: 0; box-shadow: none; }
  .etude h4, .dossier-partie h4 { break-after: avoid; }
  .etude tr, .dossier-partie li { break-inside: avoid; }
  .tableau-defile { overflow: visible; }
  .tableau-defile table { min-width: 0; font-size: 9.5pt; }
}

.pied-bande { border-top: 1px solid rgba(255,255,255,.14); }
.pied-bande .legal-court { padding-top: 22px; }
