.inner-page{background:var(--paper)}.inner-page h1,.inner-page h2,.inner-page h3{font-family:var(--serif);font-weight:400}.inner-page p{font-family:var(--sans);font-size:var(--fs-body);line-height:1.75}.inner-page .lu-nav,.inner-page .lu-menu{font-family:var(--serif);font-size:16px;letter-spacing:.015em}.inner-page .handwritten{font-family:inherit}.inner-page .page-head{background:var(--ink);color:var(--paper);padding-top:35px;padding-bottom:70px}.inner-page .page-head p{color:var(--sable-clair)}.inner-page .page-head .lu-kicker,.inner-page .crumb{color:var(--bronze-clair)}.inner-page .crumb{font-family:var(--sans)}.inner-page .page-head h1{max-width:1000px}.inner-page .detail-hero{background:var(--ink);gap:60px;padding-top:40px;padding-bottom:65px;border:0}.inner-page .detail-hero .page-head{padding:0}.inner-page .detail-hero .page-image{padding:15px;background:var(--blanc)}.inner-page .interior-hero .page-image{padding:0}.inner-page main>.page-image{margin-top:50px}.inner-page .editorial{background:var(--paper)}.inner-page .section-pad:has(.plans){background:var(--sable-clair)}.inner-page .section-pad:has(.plans)+.section-pad{background:var(--blanc)}.inner-page .section-pad h2{}.inner-page .lu-features{background:var(--bronze-clair);color:var(--ink);padding-top:80px;padding-bottom:80px}.inner-page .lu-map{background:var(--sable-clair)}.inner-page .gallery-filters button[aria-pressed=true]{background:var(--ink)}.inner-page .lu-contact{background:var(--sable-clair);padding-top:75px;padding-bottom:80px}.inner-page input,.inner-page select,.inner-page textarea{background:var(--blanc)}.inner-page .next-steps{background:var(--ink);color:white;padding-top:60px;padding-bottom:60px}.inner-page .next-steps .lu-button{background:var(--sable-clair);color:var(--ink);border-color:var(--sable-clair)}.inner-page .lu-footer{background:var(--nuit);border-top:1px solid color-mix(in srgb,var(--blanc) 15%,transparent)}.inner-page .pending{font-family:var(--sans)!important;font-size:14px!important;color:var(--danger)!important}.inner-page .listing{background:var(--sable-clair);padding-top:65px}.inner-page .card-copy{padding:28px;background:var(--blanc)}.inner-page .listing h3{}.inner-page .listing article:nth-child(n+3) h3{}.inner-page .card-copy p{font-size:var(--fs-body)}.inner-page .gallery figure{background:var(--blanc)}.inner-page figcaption{padding:16px}.inner-page .gallery .image-button{overflow:hidden}
@media(max-width:1000px){.inner-page .lu-nav{font-size:16px;gap:20px}.inner-page .detail-hero{gap:32px}}
@media(max-width:760px){.inner-page .lu-nav{font-size:20px}.inner-page .page-head{padding:25px 7% 50px}.inner-page .page-head h1{}.inner-page .detail-hero{padding:30px 7% 45px}.inner-page .page-head p,.inner-page p{}.inner-page .next-steps h3{}.inner-page .listing{padding-top:45px}.inner-page .lu-contact{padding-top:50px}.inner-page .card-copy{padding:24px}.inner-page .lu-features{padding-top:55px;padding-bottom:55px}}
@media(prefers-reduced-motion:reduce){.inner-page .property-card,.inner-page .plans .image-button{transform:none!important}}

.inner-page .property-card{background:var(--blanc)}.inner-page .card-visual{position:relative;overflow:hidden;aspect-ratio:1.35;background:var(--ink)}.inner-page .card-visual .photo-link{display:block;width:100%;height:100%;overflow:hidden}.inner-page .card-visual img{display:block;width:100%;height:100%;object-fit:cover;padding:0}.inner-page .listing article:last-child>a{display:block}.inner-page .listing article:last-child .card-copy{padding:30px 7% 32px}.inner-page .photo-controls{position:absolute;bottom:15px;left:15px;right:15px;display:flex;align-items:center;gap:6px;color:white;pointer-events:none}.inner-page .photo-controls button{pointer-events:auto;width:44px;height:44px;border:1px solid color-mix(in srgb,var(--blanc) 50%,transparent);background:color-mix(in srgb,var(--ink-fonce) 79%,transparent);color:white;font:24px var(--serif);display:grid;place-items:center;border-radius:50%;--hover-bg:var(--ink)}.inner-page .photo-controls button[data-photo-action=pause]{margin-left:auto;font:16px var(--sans)}.inner-page .photo-count{font:12px var(--sans);letter-spacing:.08em;background:color-mix(in srgb,var(--ink-fonce) 85%,transparent);padding:8px 10px;border-radius:20px}.inner-page .card-copy .image-pending{color:var(--danger);font:12px/1.5 var(--sans)!important;margin:15px 0 0}
/* Le Projet : slider de la résidence en en-tête */
.inner-page .card-visual.page-slider{aspect-ratio:16/9;height:auto}
@media(max-width:760px){.inner-page .card-visual.page-slider{aspect-ratio:4/3}}
.inner-page .page-head p{font-size:var(--fs-lead)}

/* Étape 6b : Le Projet selon la charte de la plaquette (body.projet) */
/* En-tête (esprit p07) : photo de la terrasse, titre en haut à gauche, introduction en bas à droite dans un cercle */
.projet .projet-entete{display:flex;flex-direction:column;min-height:clamp(640px,88svh,860px);padding-bottom:96px;color:var(--blanc);background:linear-gradient(180deg,color-mix(in srgb,var(--nuit) 72%,transparent) 0,color-mix(in srgb,var(--nuit) 18%,transparent) 45%,color-mix(in srgb,var(--nuit) 12%,transparent) 55%,color-mix(in srgb,var(--nuit) 78%,transparent) 100%),radial-gradient(ellipse 42% 48% at 80% 74%,color-mix(in srgb,var(--nuit) 55%,transparent),transparent),url(residence/terrasse-famille.jpg) 50% 60%/cover var(--nuit)}
.projet .projet-entete :is(.crumb,.lu-kicker){color:var(--sable-clair)}
.projet .projet-entete h1{color:var(--blanc)}
.projet .projet-intro{position:relative;align-self:flex-end;max-width:440px;margin-top:auto;padding-top:48px}
.projet .projet-intro p{position:relative;z-index:2;margin-top:16px;color:var(--sable-clair);font-size:var(--fs-body)}
.projet .projet-intro .projet-intro-lead{color:var(--blanc);font-size:var(--fs-lead)}
.projet .projet-intro-cercle{--cercle-taille:480px;--cercle-x:22%;--cercle-y:60%}

/* Architecture (esprit p05) : photo pleine largeur, texte à gauche, cercle qui traverse le texte */
.projet .projet-signature{display:flex;align-items:center;min-height:clamp(560px,52vw,780px);padding:96px 7%;background:var(--nuit);--cercle-taille:88%;--cercle-x:calc(7% + 330px);--cercle-y:58%}
.projet .projet-signature>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.projet .projet-signature::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--nuit) 80%,transparent) 0,color-mix(in srgb,var(--nuit) 45%,transparent) 42%,transparent 72%);pointer-events:none}
.projet .projet-signature>div{position:relative;z-index:2;max-width:420px}
.projet .projet-signature h2{color:var(--blanc)}
.projet .projet-signature .lu-kicker{color:var(--sable-clair)}
.projet .projet-signature p{color:var(--sable-clair)}

/* Des espaces à vivre (esprit p09 à p14) : cercle sur un point d'intérêt des intérieurs de la plaquette */
.projet .projet-espaces .image-button{position:relative;isolation:isolate}
.projet .galerie-cercle{--cercle-taille:88%}
.projet .galerie-cercle--sejour{--cercle-x:79%;--cercle-y:56%}
.projet .galerie-cercle--chambre{--cercle-x:18%;--cercle-y:52%}
.projet .galerie-cercle--salon{--cercle-x:80%;--cercle-y:56%}
.projet .galerie-cercle--bain{--cercle-x:78%;--cercle-y:50%}
.projet .galerie-cercle--cuisine{--cercle-x:17%;--cercle-y:52%}

/* Une vision responsable (esprit p06) : voile pétrole sur la photo du rooftop, 8 engagements en cartes encadrées 4 × 2 */
.projet .projet-engagements{--voile-x:0%;--voile-largeur:calc(7% + 960px);padding:112px 7%;color:var(--blanc);background:url(residence/rooftop.jpg) 70% 50%/cover var(--nuit)}
.projet .projet-engagements>*{max-width:880px}
.projet .projet-engagements .lu-kicker{color:var(--sable-clair)}
.projet .projet-engagements h2{color:var(--blanc)}
.projet .projet-engagements h2 .handwritten{color:var(--sable)}
.projet .projet-engagements>p{color:var(--sable-clair)}
.projet .engagements-cartes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:48px 0 0}
.projet .engagements-cartes li{display:flex;align-items:center;justify-content:center;min-height:128px;padding:24px 16px;border:1px solid var(--sauge);text-align:center;font:500 16px/1.4 var(--sans);color:var(--blanc)}

@media(max-width:1000px){
  .projet .projet-engagements{--voile-largeur:100%}
  .projet .projet-engagements::before{background:linear-gradient(180deg,color-mix(in srgb,var(--petrole) 90%,transparent),color-mix(in srgb,var(--petrole) 78%,transparent))}
}
@media(max-width:760px){
  .projet .projet-entete{min-height:max(640px,88svh);padding-bottom:64px;background:linear-gradient(180deg,color-mix(in srgb,var(--nuit) 72%,transparent) 0,color-mix(in srgb,var(--nuit) 15%,transparent) 30%,color-mix(in srgb,var(--nuit) 70%,transparent) 55%,color-mix(in srgb,var(--nuit) 90%,transparent) 100%),url(residence/terrasse-famille.jpg) 58% 50%/cover var(--nuit)}
  .projet .projet-intro{align-self:stretch}
  .projet .projet-intro-cercle{--cercle-taille:520px;--cercle-x:50%;--cercle-y:55%}
  .projet .projet-signature{align-items:flex-end;min-height:640px;padding:64px 7%;--cercle-taille:90%;--cercle-x:50%;--cercle-y:58%}
  .projet .projet-signature::after{background:linear-gradient(180deg,color-mix(in srgb,var(--nuit) 20%,transparent) 0,color-mix(in srgb,var(--nuit) 82%,transparent) 55%)}
  .projet .projet-engagements{padding:64px 7%}
  .projet .engagements-cartes{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:32px}
  .projet .engagements-cartes li{min-height:112px;padding:16px 12px}
}

/* Étape 6c : Les Résidences et fiches produits selon les pages 15 à 19 de la plaquette */
.residences .card-copy .lu-fiche{margin:8px 0 24px}

/* Fiche technique (et repères de L’Adresse) : libellés pétrole, valeurs bronze en 24 px (CLAUDE.md), filets sauge */
:is(.fiche,.adresse) .specs.lu-fiche{border-top:1px solid var(--sauge)}
:is(.fiche,.adresse) .specs.lu-fiche th,:is(.fiche,.adresse) .specs.lu-fiche td{padding:16px 16px 16px 0;background:none;border-bottom:1px solid var(--sauge);vertical-align:baseline}
:is(.fiche,.adresse) .specs.lu-fiche th{width:42%;color:var(--petrole);font:600 14px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase}
:is(.fiche,.adresse) .specs.lu-fiche td{color:var(--bronze);font:400 24px/1.3 var(--serif)}
:is(.fiche,.adresse) .specs.lu-fiche td.pending{color:var(--danger);font:400 14px/1.5 var(--sans)}
.adresse .adresse-reperes-liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;border-top:1px solid var(--sauge)}.adresse .adresse-reperes-liste li{padding:16px 0;border-bottom:1px solid var(--sauge);color:var(--petrole);font:600 14px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase}
@media(max-width:760px){.adresse .adresse-reperes-liste{grid-template-columns:1fr}}

/* Plans : plan 2D et plan couleur à gauche, 3D sur fond sable reliée par un arc sauge, colonne d'icônes à droite */
.fiche .section-pad.fiche-section-plans{background:var(--blanc)}
.fiche .fiche-plans{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr) 168px;gap:0;align-items:stretch;margin-top:120px}
.fiche .fiche-plans-2d{display:grid;gap:32px;align-content:start;padding-right:48px}
.fiche .fiche-plans img{width:100%;height:auto;max-height:none;object-fit:contain;background:none}
.fiche .fiche-plans-texte p{margin:16px 0}
.fiche .fiche-plan-attente{display:grid;place-items:center;aspect-ratio:3/2;padding:24px;border:1px dashed var(--sauge);text-align:center}
.fiche .fiche-3d{display:grid;place-items:center;padding:56px 40px;background:var(--sable)}
.fiche .fiche-3d .image-button{background:var(--sable)}
.fiche .fiche-3d img{max-height:640px;mix-blend-mode:multiply;filter:brightness(1.04)}
.fiche .fiche-3d .fiche-3d-detouree img{mix-blend-mode:normal;filter:none}
.fiche .fiche-icones{justify-content:center;gap:40px;padding:40px 16px}
.fiche .fiche-icones li{flex-direction:column;gap:12px;text-align:center}
.fiche .fiche-arc{--arc-de:22%;--arc-a:37%;--arc-hauteur:88px}

/* Rendus du lot : 2 colonnes, 3 pour le Studio */
.fiche .fiche-rendus{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.fiche .fiche-rendus:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.fiche .fiche-rendus img{height:360px;object-fit:cover}

@media(max-width:1000px){
  .fiche .fiche-plans{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:104px}
  .fiche .fiche-plans-2d{padding-right:32px}
  .fiche .fiche-icones{grid-column:1/-1;justify-content:space-around}
  .fiche .fiche-arc{--arc-de:25%;--arc-a:25%}
  .fiche .fiche-rendus img{height:280px}
}
@media(max-width:760px){
  :is(.fiche,.adresse) .specs.lu-fiche tr{display:grid;gap:4px;padding:12px 0;border-bottom:1px solid var(--sauge)}
  :is(.fiche,.adresse) .specs.lu-fiche th,:is(.fiche,.adresse) .specs.lu-fiche td{width:auto;padding:0;border:0}
  .fiche .fiche-plans{grid-template-columns:1fr;margin-top:32px}
  .fiche .fiche-plans-2d{padding:0 0 32px}
  .fiche .fiche-3d{padding:32px 16px}
  .fiche .fiche-icones{flex-direction:row;gap:16px;padding:24px 12px}
  .fiche .fiche-icones li{flex:1 1 0;font-size:14px}
  .fiche .fiche-rendus,.fiche .fiche-rendus:has(>:nth-child(3):last-child){grid-template-columns:1fr}
  .fiche .fiche-rendus img{height:auto;aspect-ratio:4/3}
}

/* Étape 6d : L’Adresse selon les pages 3, 4 et 8 de la plaquette (body.adresse) */
/* En-tête (esprit p03, gauche) : vue de nuit de Casa Anfa, titre en bas à gauche, cercle qui traverse le titre */
.adresse .adresse-entete{display:flex;flex-direction:column;min-height:clamp(640px,88svh,860px);padding-bottom:96px;color:var(--blanc);background:var(--nuit)}
.adresse .adresse-entete-fond{position:absolute;inset:0;z-index:-1}
.adresse .adresse-entete-fond::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--nuit) 82%,transparent) 0,color-mix(in srgb,var(--nuit) 40%,transparent) 48%,transparent 75%),linear-gradient(180deg,color-mix(in srgb,var(--nuit) 70%,transparent) 0,transparent 30%,transparent 60%,color-mix(in srgb,var(--nuit) 70%,transparent) 100%)}
.adresse .adresse-entete-photo{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.adresse .adresse-entete-cercle{--cercle-taille:72%;--cercle-x:14%;--cercle-y:58%;z-index:1}
.adresse .adresse-entete :is(.crumb,.lu-kicker){color:var(--sable-clair)}
.adresse .adresse-entete .lu-kicker{margin-top:auto}
.adresse .adresse-entete h1{max-width:680px;color:var(--blanc)}
.adresse .adresse-entete p{max-width:520px;color:var(--sable-clair);font-size:var(--fs-lead)}

/* Éditorial (esprit p03, droite) : texte v3 et chiffres clés en cartes encadrées, sur fond nuit, cercle sauge */
.adresse .adresse-quartier{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:96px;align-items:center;padding:112px 7%;background:var(--nuit);--cercle-taille:118%;--cercle-x:54%;--cercle-y:50%}
.adresse .adresse-quartier p{margin:0 0 24px;color:var(--sable-clair)}
.adresse .adresse-quartier .adresse-quartier-lead{color:var(--blanc);font:400 var(--fs-h3)/1.45 var(--serif)}
.adresse .adresse-quartier h2{color:var(--blanc)}
.adresse .chiffres-cles{display:grid;gap:12px;margin-top:32px}
.adresse .chiffres-cles .lu-carte-encadree{display:grid;grid-template-columns:minmax(150px,auto) 1fr;align-items:baseline;gap:16px;padding:16px 24px}
.adresse .chiffres-cles p{margin:0;color:var(--sable);font-size:14px;line-height:1.5}
.adresse .chiffres-cles .chiffre{color:var(--blanc);font:400 var(--fs-h2)/1.1 var(--serif);letter-spacing:var(--title-tracking)}

/* Cité de l’Air (esprit p04) : photo des jardins, voile pétrole à gauche portant le texte, cercle sur la photo */
.adresse .adresse-cite{--voile-x:7%;--voile-largeur:min(560px,86%);min-height:clamp(640px,56vw,820px);padding:112px 7%;background:url(residence/jardins.jpg) 62% 50%/cover var(--nuit)}
.adresse .adresse-cite>.adresse-cite-cercle{position:absolute;z-index:1;--cercle-taille:96%;--cercle-x:74%;--cercle-y:50%}
.adresse .adresse-cite-texte{max-width:560px;padding:0 48px;color:var(--blanc)}
.adresse .adresse-cite .lu-kicker{color:var(--sable-clair)}
.adresse .adresse-cite h2{color:var(--blanc)}
.adresse .adresse-cite .adresse-cite-sous-titre{margin-top:8px;color:var(--sable);font:400 var(--fs-h3)/1.35 var(--serif)}
.adresse .adresse-cite p{margin-top:16px;color:var(--sable-clair)}
.adresse .adresse-cite .adresse-cite-sous-titre{margin:8px 0 32px}

/* Plan (esprit p08) : titre à gauche, texte à droite, plan v3 et ses repères */
.adresse .adresse-plan{padding:112px 7% 96px;background:var(--nuit)}
.adresse .adresse-plan-texte{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:48px 96px;align-items:end}
.adresse .adresse-plan h2{color:var(--blanc)}
.adresse .adresse-plan p{margin:0;color:var(--sable-clair)}
.adresse .adresse-carte{position:relative;margin:64px 0 0}
.adresse .adresse-carte img{display:block;width:100%;height:auto}
.adresse .adresse-carte-reperes{position:absolute;inset:0;pointer-events:none}
.adresse .repere{position:absolute;left:var(--x);top:var(--y);width:0;height:0}
.adresse .repere::before{content:"";position:absolute;left:-10px;top:-28px;width:20px;height:20px;border:5px solid var(--sable);border-radius:50% 50% 50% 0;background:var(--blanc);transform:rotate(-45deg);box-shadow:0 2px 8px color-mix(in srgb,var(--nuit) 50%,transparent)}
.adresse .repere-nom{position:absolute;left:18px;top:-40px;padding:4px 8px;white-space:nowrap;background:color-mix(in srgb,var(--nuit) 72%,transparent);color:var(--blanc);font:500 14px/1.35 var(--sans)}
.adresse .repere--lurbain::before{left:-28px;top:-68px;width:56px;height:56px;border:0;background:var(--blanc)}
.adresse .repere--lurbain::after{content:"";position:absolute;left:-22px;top:-58px;width:44px;height:28px;background:url(logo-lurbain.svg) 50% 50%/contain no-repeat}
.adresse .repere--lurbain .repere-nom{display:none}

/* Vos repères : temps de trajet en fiche (libellés pétrole, valeurs bronze) */
.adresse .adresse-reperes{align-items:stretch;padding:112px 7%}
.adresse .adresse-reperes p.pending{margin-top:24px}

@media(max-width:1000px){
  .adresse .adresse-quartier{grid-template-columns:1fr;gap:48px;--cercle-taille:70%;--cercle-x:90%;--cercle-y:30%}
  .adresse .adresse-cite{--voile-x:0%;--voile-largeur:min(620px,100%)}
  .adresse .adresse-cite-texte{padding:0 48px 0 0}
  .adresse .adresse-plan-texte{grid-template-columns:1fr;gap:24px}
  .adresse .repere-nom{font-size:12px;padding:2px 6px}
}
@media(max-width:760px){
  .adresse .adresse-entete{min-height:max(600px,82svh);padding-bottom:64px}
  .adresse .adresse-entete-photo{object-position:28% 50%}
  .adresse .adresse-entete-fond::after{background:linear-gradient(180deg,color-mix(in srgb,var(--nuit) 70%,transparent) 0,color-mix(in srgb,var(--nuit) 20%,transparent) 35%,color-mix(in srgb,var(--nuit) 88%,transparent) 75%)}
  .adresse .adresse-entete-cercle{--cercle-taille:440px;--cercle-x:30%;--cercle-y:62%}
  .adresse .adresse-quartier,.adresse .adresse-cite,.adresse .adresse-plan,.adresse .adresse-reperes{padding:64px 7%}
  .adresse .adresse-quartier .adresse-quartier-lead{font-size:var(--fs-lead)}
  .adresse .chiffres-cles .lu-carte-encadree{grid-template-columns:1fr;gap:4px}
  .adresse .adresse-cite{min-height:0;--voile-largeur:100%}
  .adresse .adresse-cite::before{background:linear-gradient(180deg,color-mix(in srgb,var(--petrole) 90%,transparent),color-mix(in srgb,var(--petrole) 72%,transparent))}
  .adresse .adresse-cite-texte{padding:0}
  /* plan recadré sur la zone des repères (25 % à 88 % de la largeur) */
  .adresse .adresse-carte{margin:40px -7% 0;overflow:hidden}
  .adresse .adresse-carte img{width:159%;max-width:none;margin-left:-39.7%}
  .adresse .adresse-carte-reperes{left:-39.7%;right:auto;width:159%}
  .adresse .repere-nom{display:none}
  .adresse .repere::before{left:-8px;top:-22px;width:16px;height:16px;border-width:4px}
  .adresse .repere--lurbain::before{left:-20px;top:-50px;width:40px;height:40px;border:0}
  .adresse .repere--lurbain::after{left:-15px;top:-43px;width:30px;height:20px}
}

/* Étape 6e : Galerie et Contact selon la charte de la plaquette (body.galerie, body.contact) */
/* Galerie : cercles discrets sur trois photos seulement, autour d'un point d'intérêt */
.galerie .gallery .image-button{position:relative;isolation:isolate;overflow:hidden}
.galerie .galerie-cercle{--cercle-taille:78%}
.galerie .galerie-cercle--jardins{--cercle-x:70%;--cercle-y:46%}
.galerie .galerie-cercle--salon{--cercle-x:80%;--cercle-y:56%}
.galerie .galerie-cercle--terrasse{--cercle-x:62%;--cercle-y:62%}

/* Contact : coordonnées et mention CNDP en attente ; accroche de fin (esprit p20) sur le cœur d'îlot, cercle sur la façade */
.contact .contact-coordonnees{color:var(--ink)}
.contact .contact-cndp{color:var(--muted);font-size:14px}
.contact .lu-contact .a-fournir{white-space:nowrap}
.contact .contact-fin{--cercle-taille:84%;--cercle-x:70%;--cercle-y:60%;min-height:clamp(560px,50vw,760px);padding:96px 7%;background:var(--nuit)}
.contact .contact-fin-photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:50% 70%}
.contact .contact-fin-texte::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,color-mix(in srgb,var(--nuit) 75%,transparent) 0,color-mix(in srgb,var(--nuit) 40%,transparent) 30%,transparent 52%);pointer-events:none}
.contact .contact-fin-texte>*{position:relative;z-index:2}
.contact .contact-fin-texte{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 64px;align-items:start}
.contact .contact-fin h2{justify-self:end;margin:0;color:var(--blanc);text-align:right;text-shadow:0 2px 16px color-mix(in srgb,var(--nuit) 60%,transparent)}
.contact .contact-fin p{max-width:380px;margin:0;color:var(--blanc);font-size:var(--fs-body);text-shadow:0 1px 10px color-mix(in srgb,var(--nuit) 80%,transparent)}

@media(max-width:760px){
  .contact .contact-fin{--cercle-taille:70%;--cercle-x:78%;--cercle-y:72%;min-height:560px;padding:64px 7%}
  .contact .contact-fin-texte{grid-template-columns:1fr;gap:16px}
  .contact .contact-fin h2{justify-self:start;text-align:left}
  .contact .contact-fin-texte::before{background:linear-gradient(180deg,color-mix(in srgb,var(--nuit) 85%,transparent) 0,color-mix(in srgb,var(--nuit) 70%,transparent) 45%,transparent 70%)}
}
/* En-têtes Horizon et Prestige : vue 3D posée sur le fond sable et bande de couleur de la plaquette (p16, p18), plein cadre */
.inner-page .detail-hero .page-image--bicolore{padding:0;background:none;object-fit:cover}

/* Galerie : un seul bloc qui défile, le projet puis les terrasses puis les intérieurs (src/motion/galerie-defile.js).
   Grand écran : bloc épinglé, le défilement vertical fait avancer la bande ; chaque photo s'ouvre en volet (--volet).
   Mobile et mouvement réduit : bande à faire glisser (scroll-snap), sans animation. */
.galerie .galerie-defile{position:relative;background:var(--paper)}
.galerie .galerie-defile-scene{display:flex;flex-direction:column;justify-content:center;gap:24px;padding:64px 0}
.galerie .galerie-defile.is-pinned .galerie-defile-scene{position:sticky;top:0;height:100svh;overflow:hidden;padding:136px 0 40px}
.galerie .galerie-chapitres{display:flex;flex-wrap:wrap;gap:8px 32px;padding:0 7%}
.galerie .galerie-chapitre{min-height:44px;padding:0;border:0;border-bottom:1px solid transparent;background:none;color:var(--muted);font:600 14px/1.5 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.galerie .galerie-chapitre span{margin-right:8px}
.galerie .galerie-chapitre.is-active{color:var(--ink);border-bottom-color:var(--ink)}
.galerie .galerie-chapitre:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.galerie .galerie-progression{position:relative;height:1px;margin:0 7%;background:var(--line)}
.galerie .galerie-progression::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(var(--p,0));transform-origin:left center}
.galerie .galerie-defile:not(.is-pinned) .galerie-progression{display:none}
.galerie .galerie-piste{display:flex;align-items:center;gap:48px;padding:0 7%}
.galerie .galerie-defile.is-pinned .galerie-piste{will-change:transform}
.galerie .galerie-defile:not(.is-pinned) .galerie-piste{overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:7%;padding-bottom:16px;overscroll-behavior-x:contain}
.galerie .galerie-defile:not(.is-pinned) :is(.galerie-diapo,.galerie-carton){scroll-snap-align:start}
.galerie .galerie-carton{flex:none;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:16px;width:clamp(200px,22vw,320px);padding-left:32px;border-left:1px solid var(--sauge)}
.galerie .galerie-carton-num{color:var(--bronze);font:400 48px/1 var(--serif)}
.galerie .galerie-carton h2{margin:0;color:var(--ink);font:400 var(--fs-h2)/var(--title-leading) var(--serif);letter-spacing:var(--title-tracking);text-transform:uppercase}
.galerie .galerie-diapo{flex:none;display:flex;flex-direction:column;gap:16px;width:min-content;margin:0}
.galerie .galerie-diapo .image-button{position:relative;isolation:isolate;display:block;height:min(56svh,600px);aspect-ratio:3/2;padding:0;border:0;overflow:hidden;background:var(--sable);clip-path:inset(calc((1 - var(--volet,1)) * 22%) 0 calc((1 - var(--volet,1)) * 22%) 0)}
.galerie .galerie-diapo--haute .image-button{aspect-ratio:4/5}
.galerie .galerie-diapo--moyenne .image-button{aspect-ratio:5/4}
.galerie .galerie-diapo img{display:block;width:100%;height:100%;object-fit:cover}
.galerie .galerie-diapo .image-button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.galerie .galerie-diapo figcaption{color:var(--muted);font-size:14px;line-height:1.5}
.galerie .galerie-num{margin-right:8px;color:var(--ink);font-weight:600}
@media(max-width:760px){
  .galerie .galerie-piste{gap:24px}
  .galerie .galerie-carton{width:40vw;padding-left:24px}
  .galerie .galerie-diapo .image-button{width:min(78vw,420px);height:auto}
}

/* L'Adresse : plan d'accès Google Maps et itinéraire, dans la colonne de gauche de « Vos repères » (src/carte-acces.js).
   La carte dessinée occupe toute la largeur (repères posés en HTML) : la couper en deux rendrait ses étiquettes illisibles.
   Grand écran : la carte remplit la colonne jusqu'au bas du tableau ; tablette et mobile : 360 px, sous le texte. */
.adresse .adresse-reperes>div:first-child{display:flex;flex-direction:column}
.adresse .adresse-acces{display:flex;flex-direction:column;flex:1;gap:16px;margin-top:48px}
.adresse .adresse-acces-titre{margin:0;color:var(--ink);font:400 var(--fs-lead)/1.2 var(--serif);letter-spacing:var(--title-tracking);text-transform:uppercase}
.adresse .adresse-acces-carte{position:relative;flex:1;min-height:360px;border:1px solid var(--sauge);border-radius:0;background:var(--sable)}
.adresse .adresse-acces-carte iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
.adresse .adresse-acces-consentement{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:24px;padding:32px}
.adresse .adresse-acces-consentement p{max-width:360px;margin:0;color:var(--ink);font-size:var(--fs-body);line-height:1.5}
.adresse .adresse-acces-liens{display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px;margin-top:8px}
.adresse .adresse-itineraire{gap:16px}
.adresse .adresse-itineraire-icone{flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1000px){
  .adresse .adresse-reperes{grid-template-columns:1fr}
  .adresse .adresse-acces{flex:none}
  .adresse .adresse-acces-carte{flex:none;height:360px}
}
.page-donnees .section-pad{padding-top:96px;padding-bottom:128px;background:var(--paper)}.page-donnees .mentions{max-width:800px;color:var(--ink)}.page-donnees .mentions h2{margin:64px 0 24px;font-size:var(--fs-h3);line-height:1.2;letter-spacing:var(--title-tracking);text-transform:uppercase}.page-donnees .mentions h2:first-child{margin-top:0}.page-donnees .mentions h3{margin:32px 0 16px;font-size:var(--fs-lead);line-height:1.2;letter-spacing:var(--title-tracking);text-transform:uppercase}.page-donnees .mentions p{margin:0 0 16px}.page-donnees .mentions ul{margin:0 0 16px;padding-left:24px}.page-donnees .mentions li{margin-bottom:8px;line-height:1.75}.page-donnees .mentions a{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.page-donnees .section-pad{padding-top:64px;padding-bottom:64px}.page-donnees .mentions h2{margin-top:48px}}
