/* SN GROUP — PHASE 2 « Refonte » (MAQUETTE 12.10.2026, RIEN EN LIGNE). Styles des nouvelles pages et de l'en-tête réglable.
   Charte SN : noir, brun, beige, sable, or ; titres IvyMode (var(--font-serif)), texte Raleway (var(--font-heading)).
   Contrastes : or #C4A87C seulement sur fond sombre ; sur fond clair, texte en or foncé #6C5836 ou gris #5F5952 (≥ 4,5:1).
   2 animations douces au plus par page (zoom lent de la grande photo, apparition des cartes), coupées si « moins de mouvement ». */
:root{--sn2-noir:#0a0a0a;--sn2-brun:#19130B;--sn2-beige:#EEECE8;--sn2-sable:#F5F0E8;--sn2-or:#C4A87C;--sn2-or-fonce:#6C5836;--sn2-gris:#5F5952;--sn2-encre:#2A2A2A;--sn2-rayon:2px}

/* ── En-tête du téléphone / de la tablette : réglable (logo gauche | centre, menu gauche | droite) ─────────────────── */
@media (max-width:1023.98px){
  header[data-sn-entete]>div{position:relative}
  body.sn2-logo-centre .sn2-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
  body.sn2-menu-gauche .sn2-burger{order:-1;margin-left:-.75rem}
  body.sn2-menu-droite .sn2-burger{margin-right:-.75rem}
  body.sn2-logo-gauche.sn2-menu-gauche header[data-sn-entete]>div{justify-content:flex-start;gap:.5rem}
  body.sn2-menu-gauche .sn2-fermer{right:auto!important;left:1.5rem}
}

/* ── Communs ───────────────────────────────────────────────────────────────────────────────────────────────────── */
.sn2-conteneur{max-width:80rem;margin:0 auto;padding:0 1.5rem}
@media (max-width:640px){.sn2-conteneur{padding:0 1rem}}
.sn2-section{padding:4.5rem 0}
@media (max-width:640px){.sn2-section{padding:3.25rem 0}}
.sn2-fond-beige{background:var(--sn2-beige);color:var(--sn2-encre)}
.sn2-fond-sable{background:var(--sn2-sable);color:var(--sn2-encre)}
.sn2-fond-noir{background:var(--sn2-noir);color:#fff}
.sn2-sur{font-family:var(--font-heading);font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--sn2-or-fonce);margin:0 0 .75rem}
.sn2-sur-clair{color:var(--sn2-or)}
.sn2-section h2,.sn2-form-tete h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.9rem,3.4vw,2.75rem);line-height:1.12;margin:0}
.sn2-entete-section{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:2.25rem;flex-wrap:wrap}
.sn2-intro{max-width:46rem;font-size:1.05rem;line-height:1.7;color:var(--sn2-gris);margin:0 0 2rem}
.sn2-fond-noir .sn2-intro{color:rgba(255,255,255,.75)}
.sn2-centre{text-align:center;margin-top:2.5rem}
.sn2-lien{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-heading);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--sn2-encre);text-decoration:none;padding:.6rem 0;min-height:44px}
.sn2-lien svg{transition:transform .3s}
.sn2-lien:hover svg{transform:translateX(4px)}
.sn2-lien:hover{color:var(--sn2-or-fonce)}
.sn2-fond-noir .sn2-lien{color:#fff}.sn2-fond-noir .sn2-lien:hover{color:var(--sn2-or)}
@media (max-width:640px){.sn2-lien-haut{display:none}}
.sn2-liens-bas{display:flex;flex-wrap:wrap;gap:.5rem 2rem;margin:2.5rem 0 0}

.sn2-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.95rem 1.9rem;font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;border-radius:var(--sn2-rayon);cursor:pointer;transition:background-color .3s,color .3s,border-color .3s}
.sn2-btn-or{background:var(--sn2-or);color:#1b150d;border-color:var(--sn2-or)}
.sn2-btn-or:hover{background:#d6c09a;border-color:#d6c09a}
.sn2-btn-noir{background:var(--sn2-noir);color:#fff}
.sn2-btn-noir:hover{background:var(--sn2-brun);color:var(--sn2-or)}
.sn2-btn-verre{background:rgba(10,10,10,.42);color:#fff;border-color:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.sn2-btn-verre:hover{background:#fff;color:var(--sn2-noir)}
.sn2-btn-texte{background:transparent;color:#fff;padding-left:.75rem;padding-right:.75rem}
.sn2-btn-texte:hover{color:var(--sn2-or)}
.sn2-btn-ligne{border-color:var(--sn2-encre);color:var(--sn2-encre)}
.sn2-btn-ligne:hover{background:var(--sn2-encre);color:#fff}
.sn2-btn-large{width:100%}

/* ── 1. Grande photo de l'accueil ──────────────────────────────────────────────────────────────────────────────── */
.sn2-hero{position:relative;height:100vh;height:100svh;min-height:540px;overflow:hidden;background:var(--sn2-noir)}
.sn2-hero-photo,.sn2-hero-photo img{position:absolute;inset:0;width:100%;height:100%}
.sn2-hero-photo img{object-fit:cover;animation:sn2-zoom 14s ease-out both}
@keyframes sn2-zoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.sn2-hero-voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.38) 0%,rgba(10,10,10,0) 26%,rgba(10,10,10,0) 52%,rgba(10,10,10,.62) 100%)}
.sn2-hero-bas{position:absolute;left:0;right:0;bottom:0;padding:0 1.5rem calc(2.75rem + env(safe-area-inset-bottom));max-width:80rem;margin:0 auto}
.sn2-hero-accroche{font-family:var(--font-serif);color:#fff;font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.2;margin:0 0 1.25rem;max-width:36rem;text-shadow:0 1px 18px rgba(0,0,0,.35)}
.sn2-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
@media (max-width:640px){
  .sn2-hero-bas{padding:0 1rem calc(1.5rem + env(safe-area-inset-bottom))}
  .sn2-hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
  .sn2-hero-actions .sn2-btn{padding:.9rem .6rem;letter-spacing:.14em}
  .sn2-hero-actions .sn2-btn-texte{grid-column:1/-1}
}

/* ── Hauts de page courts et onglets ───────────────────────────────────────────────────────────────────────────── */
.sn2-hero-page{position:relative;height:46vh;min-height:320px;display:flex;align-items:flex-end;overflow:hidden;background:var(--sn2-noir)}
.sn2-hero-page-img{object-fit:cover}
.sn2-hero-page-voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.45),rgba(10,10,10,.25) 45%,rgba(10,10,10,.7))}
.sn2-hero-page-texte{position:relative;z-index:1;width:100%;max-width:80rem;margin:0 auto;padding:0 1.5rem 2.5rem;color:#fff}
.sn2-hero-page-texte h1{font-family:var(--font-serif);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;margin:0}
@media (max-width:640px){.sn2-hero-page-texte{padding:0 1rem 2rem}}
.sn2-onglets{background:var(--sn2-noir);border-top:1px solid rgba(255,255,255,.08)}
.sn2-onglets-in{max-width:80rem;margin:0 auto;padding:0 1.5rem;display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none}
.sn2-onglets-in::-webkit-scrollbar{display:none}
.sn2-onglets a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:52px;padding:0 1.1rem;font-family:var(--font-heading);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.78);text-decoration:none;border-bottom:2px solid transparent}
.sn2-onglets a:hover{color:#fff}
.sn2-onglets a.actif{color:var(--sn2-or);border-bottom-color:var(--sn2-or)}
@media (max-width:640px){.sn2-onglets-in{padding:0 .25rem;gap:0}.sn2-onglets a{padding:0 .55rem;font-size:10.5px;letter-spacing:.08em}}

/* ── Cartes de biens ───────────────────────────────────────────────────────────────────────────────────────────── */
.sn2-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.5rem}
.sn2-grille-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1279.98px){.sn2-grille-4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1023.98px){.sn2-grille,.sn2-grille-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.sn2-grille,.sn2-grille-4{grid-template-columns:1fr;gap:1.75rem}}
.sn2-carte{position:relative;background:#fff;display:flex;flex-direction:column;min-width:0}
.sn2-carte[hidden]{display:none}
.sn2-carte-photo{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#d9d5ce}
.sn2-carte-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.sn2-carte:hover .sn2-carte-photo img{transform:scale(1.04)}
.sn2-badges{position:absolute;left:.75rem;top:.75rem;display:flex;flex-wrap:wrap;gap:.4rem;max-width:calc(100% - 4.5rem)}
.sn2-badge{font-family:var(--font-heading);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:.42rem .7rem;border-radius:var(--sn2-rayon);background:rgba(10,10,10,.78);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sn2-badge-exclusivite{background:var(--sn2-or);color:#1b150d}
.sn2-badge-a-saisir{background:#fff;color:var(--sn2-noir)}
.sn2-badge-coup-de-coeur{background:#5b1f24;color:#fff}
.sn2-badge-nouveau{background:var(--sn2-noir);color:var(--sn2-or)}
.sn2-badge-off{background:var(--sn2-brun);color:var(--sn2-or);border:1px solid rgba(196,168,124,.45)}
.sn2-badge-statut{background:#fff;color:var(--sn2-encre)}
.sn2-coeur{position:absolute;right:.6rem;top:.6rem;width:44px;height:44px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;background:rgba(10,10,10,.42);color:transparent;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background-color .3s}
.sn2-coeur svg path{stroke:#fff}
.sn2-coeur:hover{background:rgba(10,10,10,.7)}
.sn2-coeur[aria-pressed="true"]{color:var(--sn2-or)}
.sn2-coeur[aria-pressed="true"] svg path{stroke:var(--sn2-or)}
.sn2-coeur:focus-visible,.sn2-btn:focus-visible,.sn2-lien:focus-visible,.sn2-onglets a:focus-visible{outline:2px solid var(--sn2-or);outline-offset:3px}
.sn2-carte-texte{display:block;padding:1.1rem 1.15rem 1.3rem;color:var(--sn2-encre);text-decoration:none}
.sn2-carte-type{font-family:var(--font-heading);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sn2-gris);margin:0 0 .45rem}
.sn2-carte-prix{font-family:var(--font-serif);font-size:1.45rem;line-height:1.2;margin:0 0 .35rem;color:var(--sn2-noir)}
.sn2-carte-details{font-size:.95rem;color:var(--sn2-gris);margin:0}
.sn2-vide{background:#fff;padding:2.5rem 1.5rem;text-align:center}
.sn2-vide p{font-size:1.05rem;color:var(--sn2-gris);margin:0 0 1.25rem}
.sn2-filtre-favoris{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0 1rem;border:1px solid var(--sn2-encre);background:transparent;color:var(--sn2-encre);font-family:var(--font-heading);font-size:12px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:var(--sn2-rayon)}
.sn2-filtre-favoris svg{color:transparent}.sn2-filtre-favoris svg path{stroke:currentColor;stroke:var(--sn2-encre)}
.sn2-filtre-favoris[aria-pressed="true"]{background:var(--sn2-encre);color:#fff}
.sn2-filtre-favoris[aria-pressed="true"] svg{color:var(--sn2-or)}.sn2-filtre-favoris[aria-pressed="true"] svg path{stroke:var(--sn2-or)}
.sn2-filtre-favoris[hidden]{display:none}

/* ── Collections ───────────────────────────────────────────────────────────────────────────────────────────────── */
.sn2-collections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media (max-width:1023.98px){.sn2-collections{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sn2-collection{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;text-decoration:none;color:#fff}
.sn2-collection img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.sn2-collection::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,0) 45%,rgba(10,10,10,.72))}
.sn2-collection:hover img{transform:scale(1.04)}
.sn2-collection-nom{position:absolute;z-index:1;left:1.1rem;right:1.1rem;bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-family:var(--font-serif);font-size:clamp(1.15rem,1.9vw,1.6rem)}
@media (max-width:640px){.sn2-collections{gap:.6rem}.sn2-collection{aspect-ratio:1/1}.sn2-collection-nom{left:.75rem;right:.75rem;bottom:.7rem}.sn2-collection-nom svg{display:none}}

/* ── Promotions ────────────────────────────────────────────────────────────────────────────────────────────────── */
.sn2-promos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
@media (max-width:767.98px){.sn2-promos{grid-template-columns:1fr;gap:1.5rem}}
.sn2-promos-defile{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
@media (max-width:1023.98px){.sn2-promos-defile{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -1.5rem;padding:0 1.5rem .5rem;scrollbar-width:thin}.sn2-promos-defile>*{flex:0 0 72%;scroll-snap-align:start}}
@media (max-width:640px){.sn2-promos-defile{margin:0 -1rem;padding:0 1rem .5rem}.sn2-promos-defile>*{flex-basis:84%}}
.sn2-promo{background:#fff;display:flex;flex-direction:column;min-width:0}
.sn2-promo-photo{position:relative;aspect-ratio:16/11;overflow:hidden;background:#d9d5ce}
.sn2-promo-photo img{width:100%;height:100%;object-fit:cover}
.sn2-promo-terminee .sn2-promo-photo img{filter:saturate(.75)}
.sn2-statut{position:absolute;left:.75rem;top:.75rem;font-family:var(--font-heading);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:.45rem .75rem;border-radius:var(--sn2-rayon)}
.sn2-statut-en-cours{background:var(--sn2-or);color:#1b150d}
.sn2-statut-terminee{background:var(--sn2-noir);color:#fff}
.sn2-promo-texte{padding:1.2rem 1.25rem 1.1rem}
.sn2-promo-texte h3{font-family:var(--font-serif);font-weight:400;font-size:1.6rem;line-height:1.15;margin:0 0 .3rem;color:var(--sn2-noir)}
.sn2-promo-prog{color:var(--sn2-or-fonce);font-size:.95rem;margin:0 0 .4rem}
.sn2-filtre{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2.5rem}
.sn2-filtre[hidden]{display:none}
.sn2-filtre button{min-height:44px;padding:0 1.15rem;border:1px solid rgba(42,42,42,.35);background:transparent;color:var(--sn2-encre);font-family:var(--font-heading);font-size:12px;letter-spacing:.14em;text-transform:uppercase;border-radius:999px;cursor:pointer}
.sn2-filtre button[aria-pressed="true"]{background:var(--sn2-noir);color:#fff;border-color:var(--sn2-noir)}
.sn2-groupe-promos+.sn2-groupe-promos{margin-top:4rem}
.sn2-groupe-promos[hidden]{display:none}

/* ── Réalisations, galerie, rénovations ────────────────────────────────────────────────────────────────────────── */
.sn2-real{display:grid;grid-template-columns:1fr;gap:2rem}
.sn2-real.avec-renov{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}
@media (max-width:1023.98px){.sn2-real.avec-renov{grid-template-columns:1fr}}
.sn2-mosaique{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:.6rem;aspect-ratio:2/1}
.sn2-mosaique-photo{display:block;overflow:hidden;min-height:0}
.sn2-mosaique-photo:first-child{grid-column:span 2;grid-row:span 2}
@media (max-width:640px){.sn2-mosaique{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;aspect-ratio:auto}.sn2-mosaique-photo{aspect-ratio:1/1}.sn2-mosaique-photo:first-child{grid-row:auto;aspect-ratio:16/10}}
.sn2-mosaique-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.sn2-mosaique-photo:hover img{transform:scale(1.04)}
.sn2-renov-accueil h3{font-family:var(--font-serif);font-weight:400;font-size:1.6rem;margin:0 0 1rem}
.sn2-galerie{columns:3 320px;column-gap:1rem}
.sn2-galerie-photo{break-inside:avoid;margin:0 0 1rem;cursor:zoom-in;position:relative}
.sn2-galerie-photo img{width:100%;height:auto;display:block}
.sn2-galerie-photo figcaption{font-size:.9rem;color:var(--sn2-gris);padding:.5rem 0 0}
.sn2-renovs{display:grid;gap:3.5rem}
.sn2-renov{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:2rem;align-items:center}
.sn2-renov:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}
.sn2-renov:nth-child(even) .sn2-compare{order:2}
@media (max-width:1023.98px){.sn2-renov,.sn2-renov:nth-child(even){grid-template-columns:1fr;gap:1.25rem}.sn2-renov:nth-child(even) .sn2-compare{order:0}}
.sn2-renov-texte h2{font-size:clamp(1.6rem,2.6vw,2.2rem)!important;margin:0 0 .75rem!important}
.sn2-renov-texte p:last-child{color:var(--sn2-gris);line-height:1.7;margin:0}
.sn2-compare{--pos:50%;position:relative;aspect-ratio:3/2;overflow:hidden;background:#d9d5ce;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize}
.sn2-compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.sn2-compare-avant{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.sn2-compare-ligne{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.35)}
.sn2-compare-poignee{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(10,10,10,.55);border:1px solid rgba(255,255,255,.85);color:#fff;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sn2-compare-etiq{position:absolute;top:.75rem;font-family:var(--font-heading);font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:.4rem .65rem;background:rgba(10,10,10,.65);color:#fff;border-radius:var(--sn2-rayon)}
.sn2-compare-etiq-avant{left:.75rem}.sn2-compare-etiq-apres{right:.75rem}
.sn2-compare-curseur{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;pointer-events:none}
.sn2-compare:focus-within .sn2-compare-poignee{outline:2px solid var(--sn2-or);outline-offset:3px}

/* ── Votre spécialiste (court) ─────────────────────────────────────────────────────────────────────────────────── */
.sn2-metiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}
@media (max-width:640px){.sn2-metiers{grid-template-columns:1fr;gap:2rem}.sn2-metier img{aspect-ratio:16/10}}
.sn2-metier img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;margin-bottom:1rem}
.sn2-metier h3{font-family:var(--font-serif);font-weight:400;font-size:1.35rem;margin:0 0 .35rem}
.sn2-metier p{color:rgba(255,255,255,.72);font-size:.95rem;line-height:1.6;margin:0}

/* ── Bandeau « Votre recherche » ───────────────────────────────────────────────────────────────────────────────── */
.sn2-bandeau-alerte{background:var(--sn2-brun);color:#fff}
.sn2-bandeau-alerte-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.sn2-bandeau-alerte-in p:not(.sn2-sur){color:rgba(255,255,255,.75);margin:.75rem 0 0;max-width:34rem;line-height:1.6}
.sn2-bandeau-alerte-actions{display:flex;gap:.75rem;flex-wrap:wrap}
@media (max-width:640px){.sn2-bandeau-alerte-actions{display:grid;grid-template-columns:1fr;width:100%}}

/* ── Instagram ─────────────────────────────────────────────────────────────────────────────────────────────────── */
.sn2-instagram{background:var(--sn2-beige);padding:3rem 0 0}
.sn2-instagram-titre{display:block;text-align:center;font-family:var(--font-heading);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--sn2-or-fonce);text-decoration:none;margin-bottom:1.25rem;min-height:44px;line-height:44px}
.sn2-instagram-grille{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px}
@media (max-width:767.98px){.sn2-instagram-grille{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sn2-instagram-grille img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}

/* ── Formulaire « Votre recherche » ────────────────────────────────────────────────────────────────────────────── */
.sn2-form-cadre{max-width:52rem}
.sn2-form-tete{margin-bottom:2rem}
.sn2-form-tete p{color:var(--sn2-gris);line-height:1.6;margin:.75rem 0 0}
.sn2-form{display:grid;gap:1.15rem;position:relative}
.sn2-form-ligne{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}
@media (max-width:640px){.sn2-form-ligne{grid-template-columns:1fr}}
.sn2-champ{display:flex;flex-direction:column;gap:.45rem;min-width:0}
.sn2-champ[hidden]{display:none}
.sn2-champ label,.sn2-choix legend{font-family:var(--font-heading);font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sn2-encre)}
.sn2-champ input,.sn2-champ select,.sn2-champ textarea{width:100%;min-height:50px;padding:.8rem 1rem;font:inherit;font-size:16px;color:var(--sn2-encre);background:#fff;border:1px solid #CFC9BF;border-radius:var(--sn2-rayon);box-sizing:border-box}
.sn2-champ textarea{resize:vertical;min-height:96px}
.sn2-champ input:focus,.sn2-champ select:focus,.sn2-champ textarea:focus{outline:2px solid var(--sn2-or);outline-offset:1px;border-color:var(--sn2-or)}
.sn2-court{max-width:8rem}
.sn2-choix{border:0;margin:0;padding:0}
.sn2-choix legend{margin-bottom:.6rem;padding:0}
.sn2-choix-in{display:flex;gap:.6rem;flex-wrap:wrap}
.sn2-pilule{position:relative;cursor:pointer}
.sn2-pilule input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.sn2-pilule span{display:inline-flex;align-items:center;min-height:48px;padding:0 1.35rem;border:1px solid #CFC9BF;background:#fff;color:var(--sn2-encre);font-family:var(--font-heading);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;border-radius:999px}
.sn2-pilule input:checked+span{background:var(--sn2-noir);color:#fff;border-color:var(--sn2-noir)}
.sn2-pilule input:focus-visible+span{outline:2px solid var(--sn2-or);outline-offset:2px}
.sn2-accord{display:flex;gap:.75rem;align-items:flex-start;font-size:.95rem;line-height:1.55;color:var(--sn2-encre);cursor:pointer}
.sn2-accord input{width:22px;height:22px;margin:.1rem 0 0;flex:0 0 auto;accent-color:var(--sn2-or-fonce)}
.sn2-accord a{color:var(--sn2-encre);text-decoration:underline;text-underline-offset:3px}
.sn2-aide{font-size:.9rem;color:var(--sn2-gris);margin:0}
.sn2-aide[hidden]{display:none}
.sn2-erreur{margin:0;padding:.85rem 1rem;background:#fbeeee;border:1px solid #e5b9b9;color:#7a1f1f;font-size:.95rem}
.sn2-merci{background:#fff;padding:2.5rem 1.5rem;text-align:center;color:var(--sn2-encre)}
.sn2-merci-titre{font-family:var(--font-serif);font-size:1.8rem;margin:0 0 .5rem}
.sn2-merci p:last-child{color:var(--sn2-gris);margin:0}
/* sur fond noir : le formulaire garde des champs clairs, les textes passent en clair */
.sn2-fond-noir .sn2-champ label,.sn2-fond-noir .sn2-choix legend,.sn2-fond-noir .sn2-accord,.sn2-fond-noir .sn2-accord a{color:#fff}
.sn2-fond-noir .sn2-aide{color:rgba(255,255,255,.72)}
.sn2-fond-noir .sn2-form-tete p{color:rgba(255,255,255,.75)}
.sn2-fond-noir .sn2-pilule input:checked+span{background:var(--sn2-or);color:#1b150d;border-color:var(--sn2-or)}
.sn2-fond-noir .sn2-champ input,.sn2-fond-noir .sn2-champ select,.sn2-fond-noir .sn2-champ textarea{border-color:#fff}
.sn2-calcul-suite{margin-top:3rem}
.sn2-immomig-titre{padding-top:3.5rem;padding-bottom:.5rem;background:#F5F0E8}
.sn2-immomig-titre h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.6rem,2.8vw,2.2rem);margin:0;color:var(--sn2-encre)}
.sn2-immomig-titre.sn2-conteneur{max-width:none;padding-left:max(1.5rem,calc((100% - 77rem)/2));padding-right:1.5rem}

/* ── Pied : adresse ────────────────────────────────────────────────────────────────────────────────────────────── */
.sn2-pied-adresse{font-style:normal;color:rgba(255,255,255,.72);font-size:1rem;line-height:1.5;margin-top:.25rem}
.sn2-pied-adresse span{display:block;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:.25rem}

/* ── Apparition douce (2ᵉ animation) ───────────────────────────────────────────────────────────────────────────── */
.sn2-a-venir{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.sn2-a-venir.sn2-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.sn2-hero-photo img{animation:none}.sn2-carte-photo img,.sn2-collection img,.sn2-mosaique-photo img{transition:none}.sn2-a-venir{opacity:1;transform:none;transition:none}}

/* ── Maquette seulement ────────────────────────────────────────────────────────────────────────────────────────── */
.sn2-demo{position:fixed;right:0;top:38%;z-index:90;margin:0;padding:.5rem .3rem;background:#fff3c4;color:#4a3b00;border:1px solid #c9a800;border-right:0;font:600 10px/1.2 system-ui,sans-serif;letter-spacing:.06em;writing-mode:vertical-rl;transform:rotate(180deg);pointer-events:none}
section[id]{scroll-margin-top:7rem}

/* ── Lisibilité (contrôle des contrastes du 12.10.2026) ─────────────────────────────────────────────────────────────
   Surtitre des hauts de page en blanc (l'or sur une photo claire descendait à 2,1:1) ; voile plus dense en haut (menu
   de l'ordinateur sur la photo) ; pied : libellés « Vente & Location » et liens du bas plus clairs (3,8 et 2,2:1 en phase 1,
   design repris tel quel jusqu'ici — la refonte les rend lisibles, ≥ 4,5:1). */
.sn2-hero-page-texte .sn2-sur{color:#fff;opacity:.92}
.sn2-hero-page-voile{background:linear-gradient(180deg,rgba(10,10,10,.62),rgba(10,10,10,.3) 40%,rgba(10,10,10,.78))}
.sn2-hero-voile{background:linear-gradient(180deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,0) 24%,rgba(10,10,10,0) 52%,rgba(10,10,10,.62) 100%)}
footer .text-white\/40{color:rgba(255,255,255,.62)}
footer .text-white\/25,footer .text-white\/25 a{color:rgba(255,255,255,.6)}

/* ── Lisibilité des éléments repris de la phase 1 (David, 12.10.2026 13:27, question n° 8 : A) ───────────────────────
   Même palette SN, un peu plus soutenue, aucune nouvelle couleur : or foncé #7A6340 pour un texte or sur fond clair (5,0:1
   sur sable), texte brun-noir #1b150d sur un bouton or (8,0:1), en-tête plein (noir) au-dessus des pages légales claires
   (le menu blanc y descendait à 1,9:1). Contrôle : outils/controle-contrastes.js, 0 alerte aux 5 largeurs. */
[data-sn-calculateur] .text-gold{color:#7A6340}
[data-sn-calculateur] .bg-gold.text-white{color:#1b150d}
.sn2-page-contact main p.text-\[11px\].text-\[\#C4A87C\]{color:#7A6340}      /* surtitre « Nous contacter » sur beige (icônes et « Itinéraire » sur fond noir : inchangés) */
.sn2-page-contact main form a.text-\[\#C4A87C\]{color:#6C5836}                  /* lien « politique de confidentialité » sur blanc */
body.sn2-page-mentions-legales header[data-sn-entete],body.sn2-page-politique-confidentialite header[data-sn-entete]{background:#0a0a0a!important}

/* ── Bandeau des chiffres (accueil, sous « Nos derniers biens » ; David Q2 : B) ─────────────────────────────────────── */
.sn2-chiffres{background:var(--sn2-sable);border-top:1px solid rgba(122,99,64,.22);border-bottom:1px solid rgba(122,99,64,.22)}
.sn2-chiffres-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:0;padding:2.25rem 0}
.sn2-chiffre{display:flex;flex-direction:column-reverse;align-items:center;text-align:center;padding:.25rem 1rem;gap:.35rem}
.sn2-chiffre+.sn2-chiffre{border-left:1px solid rgba(122,99,64,.22)}
.sn2-chiffre-valeur{margin:0;font-family:var(--font-serif);font-size:clamp(2.1rem,3.6vw,3rem);line-height:1;color:#7A6340;font-variant-numeric:tabular-nums}
.sn2-chiffre-libelle{font-family:var(--font-heading);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--sn2-gris)}
@media (max-width:640px){.sn2-chiffres-in{grid-template-columns:1fr 1fr;padding:1.5rem 0;row-gap:1.25rem}.sn2-chiffre:nth-child(odd){border-left:0}.sn2-chiffre{padding:.25rem .5rem}}

/* ── Emplacement vidéo (Rénovations, fiche d'un bien ; module « Vidéo à partir de photos » à venir) ─────────────────── */
.sn2-video{margin:1.25rem 0 0}
.sn2-video video{display:block;width:100%;aspect-ratio:16/9;background:#0a0a0a;border-radius:var(--sn2-rayon)}
.sn2-video figcaption{font-size:.9rem;color:var(--sn2-gris);padding-top:.5rem}

/* ── Rénovations : éléments communs aux deux designs ───────────────────────────────────────────────────────────────── */
.sn2-renov-num{font-family:var(--font-serif);font-size:2.6rem;line-height:1;color:#7A6340;margin:0 0 .75rem}
.sn2-renov-para{color:var(--sn2-gris);line-height:1.7;margin:0}
.sn2-renov-galerie{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:1.25rem}
.sn2-renov-vignette{padding:0;border:0;background:none;cursor:zoom-in;aspect-ratio:1/1;overflow:hidden;border-radius:var(--sn2-rayon)}
.sn2-renov-vignette img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.sn2-renov-vignette:hover img{transform:scale(1.05)}
.sn2-renov-vignette:focus-visible{outline:2px solid var(--sn2-or);outline-offset:2px}
.sn2-compare-ligne{background:linear-gradient(180deg,rgba(255,255,255,.95),var(--sn2-or),rgba(255,255,255,.95))}
/* ── Design B « Plein écran » ─────────────────────────────────────────────────────────────────────────────────────── */
.sn2-renov-b{background:var(--sn2-noir);color:#fff;padding:3rem 0 4rem}
.sn2-renov-b .sn2-intro{color:rgba(255,255,255,.75)}
.sn2-rb{padding:2.5rem 0}
.sn2-rb+.sn2-rb{border-top:1px solid rgba(196,168,124,.18)}
.sn2-rb-cadre{position:relative;max-width:90rem;margin:0 auto}
.sn2-rb-cadre .sn2-compare{aspect-ratio:21/9}
.sn2-rb-carte{position:absolute;left:clamp(1rem,4vw,3rem);bottom:clamp(1rem,4vw,3rem);max-width:30rem;padding:1.5rem 1.75rem;background:rgba(10,10,10,.62);border:1px solid rgba(196,168,124,.28);border-radius:4px;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);pointer-events:none}
.sn2-rb-carte h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.12;margin:0 0 .6rem}
.sn2-rb-num{font-family:var(--font-serif);font-size:1.4rem;color:var(--sn2-or);margin:0 0 .5rem}
.sn2-rb-num span{color:rgba(255,255,255,.6);font-size:1rem}
.sn2-rb-texte{color:rgba(255,255,255,.82);line-height:1.65;margin:0;font-size:.98rem}
.sn2-renov-b .sn2-renov-galerie{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:1rem}
@media (max-width:1023.98px){.sn2-rb-cadre .sn2-compare{aspect-ratio:4/3}.sn2-rb-carte{position:static;max-width:none;margin:0 1rem;border-radius:0 0 4px 4px;pointer-events:auto}.sn2-renov-b .sn2-renov-galerie{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:640px){.sn2-renov-galerie,.sn2-renov-b .sn2-renov-galerie{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem}.sn2-rb-cadre .sn2-compare{aspect-ratio:1/1}}

/* ── Bascule avant / après (design B des Rénovations) ─────────────────────────────────────────────────────────────── */
.sn2-bascule{position:relative;aspect-ratio:21/9;overflow:hidden;background:#111}
.sn2-bascule img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .7s ease}
.sn2-bascule[data-vue="apres"] .sn2-bascule-avant,.sn2-bascule[data-vue="avant"] .sn2-bascule-apres{opacity:0}
.sn2-bascule-onglets{position:absolute;top:clamp(.75rem,2vw,1.5rem);right:clamp(.75rem,2vw,1.5rem);display:flex;padding:4px;gap:4px;border-radius:999px;background:rgba(10,10,10,.55);border:1px solid rgba(255,255,255,.25);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.sn2-bascule-onglets button{min-height:40px;min-width:84px;padding:0 1rem;border:0;border-radius:999px;background:transparent;color:#fff;font-family:var(--font-heading);font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.sn2-bascule-onglets button[aria-selected="true"]{background:var(--sn2-or);color:#1b150d}
.sn2-bascule-onglets button:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:1023.98px){.sn2-bascule{aspect-ratio:4/3}}
@media (max-width:640px){.sn2-bascule{aspect-ratio:1/1}}
@media (prefers-reduced-motion:reduce){.sn2-bascule img{transition:none}}
.sn2-hero-assombri{position:absolute;inset:0;background:#0a0a0a;pointer-events:none}

/* ── Biens repris d'Immomig : « Voir la fiche ↗ », carte sans photo ─────────────────────────────────────────────────── */
.sn2-carte-externe{display:inline-block;margin-top:.6rem;font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#6C5836}
.sn2-carte-sans-photo{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;background:linear-gradient(135deg,#efe9df,#e4ddd1)}
.sn2-carte-sans-photo img{width:72px;height:auto;opacity:.55}
.sn2-carte-sans-photo span{font-family:var(--font-heading);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sn2-gris)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── Listes longues sur téléphone (« Voir plus … », David 21:47) et nombres sur ordinateur ──────────────────────────── */
@media (min-width:768px){.sn2-hors-ordi{display:none!important}.sn2-si-tel{display:none}}
@media (max-width:767.98px){.sn2-si-ordi{display:none}}
.sn2-replie{display:none!important}
.sn2-voir-plus-zone{margin-top:1.75rem}
.sn2-voir-plus-zone[hidden]{display:none}
.sn2-voir-plus{min-width:min(100%,18rem)}
.sn2-fondu{animation:sn2-fondu .6s ease both}
@keyframes sn2-fondu{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sn2-fondu{animation:none}}
.sn2-renov-b + .sn2-renov-liste,.sn2-renov-liste .sn2-voir-plus-zone{margin:0}
