/*
Theme Name: Marny
Theme URI: https://www.marnyrealestate.fr
Author: Marny
Description: Marny — Immobilier de prestige à Tanger. Achat & vente, location, gestion de patrimoine, terrains et accompagnement de projets.
Version: 2.0.0
License: GNU General Public License v2 or later
Text Domain: mytheme
Tags: custom-menu, featured-images, translation-ready
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root{
  /* ── Identité officielle Marny : EXACTEMENT 2 couleurs — bordeaux #561C24 + crème #E8D8C4 ── */
  --color-primary:    #561C24;  /* Bordeaux Marny */
  --color-secondary:  #E8D8C4;  /* Crème Marny */
  --color-taupe:      #E8D8C4;
  --color-background: #E8D8C4;

  /* ── Couleurs nommées (toutes = l'une des 2 couleurs de marque) ── */
  --terracotta:  #561C24;
  --ocre:        #561C24;
  --dore:        #561C24;
  --dore-clair:  #E8D8C4;

  /* ── Tokens internes (strictement les 2 couleurs) ── */
  --warm-white:  #E8D8C4;            /* cartes = crème de marque */
  --charcoal:    #561C24;            /* texte = bordeaux de marque */
  --gold:        #561C24;
  --gold-soft:   #561C24;
  --sand:        #E8D8C4;
  --rich-black:  #561C24;            /* footer / sections sombres = bordeaux */
  --line:        rgba(86,28,36,.18);   /* filets = bordeaux translucide (#561C24) */
  --line-light:  rgba(232,216,196,.30);/* filets clairs = crème translucide (#E8D8C4) */
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans:  'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-head: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
  --section-y: clamp(6rem, 12vw, 12rem);
  --gutter:    clamp(1.5rem, 5vw, 7rem);
  --maxw:      1480px;
  --ease: cubic-bezier(.22,.61,.36,1);

  /* Rayons d'arrondi — esthétique douce */
  --r-s:    14px;   /* champs, petits éléments */
  --r-m:    22px;   /* cartes, médias */
  --r-l:    34px;   /* grands blocs, photos */
  --r-xl:   46px;   /* hero interne, blocs vedette */
  --r-pill: 999px;  /* boutons */
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*,*::before,*::after{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; scroll-padding-top:96px; }
body{
  font-family:var(--sans);
  background-color:var(--color-background);
  color:var(--charcoal);
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
  font-variant-numeric:lining-nums;
  font-feature-settings:'lnum' 1;
}
/* Compense le nav fixe — toutes pages sauf homepage (hero = 100vh couvre le nav) */
body:not(.home){ padding-top:96px; }
@media(max-width:760px){
  body:not(.home){ padding-top:76px; }
}
/* page-hero sur pages internes : pas de double padding */
body:not(.home) .page-hero{ padding-top:0; }
/* Héros plein écran (page interne + fiche bien) : annule le décalage du body
   pour que l'IMAGE remonte sous le menu fixe, jusqu'en haut de l'écran (comme l'accueil). */
body:not(.home) .njt-phero,
body:not(.home) .prop-single-hero{ margin-top:-96px; }
@media(max-width:760px){
  body:not(.home) .njt-phero,
  body:not(.home) .prop-single-hero{ margin-top:-76px; }
}
img{ display:block; width:100%; height:100%; object-fit:cover; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--gold); color:var(--warm-white); }
.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }

.eyebrow{
  font-family:var(--sans); font-size:.72rem; font-weight:600;
  letter-spacing:.32em; text-transform:uppercase; color:var(--gold);
  display:inline-flex; align-items:center; gap:.9rem;
}
.eyebrow::before{ content:""; width:34px; height:1px; background:var(--gold); display:inline-block; }

.display{ font-family:var(--font-head); font-weight:600; line-height:1.02; letter-spacing:-.005em; color:var(--color-primary); }

/* Titres en Burgundy Prestige (identité L&P) — sauf sur fonds sombres */
h1, h2, h3{ color:var(--color-primary); }
.invest h1, .invest h2, .invest h3,
.season h3, .footer h1, .footer h2, .footer h3,
.hero h1, .page-hero h1, .page-hero h2{ color:inherit; }

/* ============================================================
   PRELOADER
   ============================================================ */
#preloader{
  position:fixed; inset:0; z-index:99999;
  display:flex; align-items:center; justify-content:center;
  pointer-events:all;
  transition:opacity .7s cubic-bezier(.76,0,.24,1), visibility .7s;
}
#preloader.done{
  opacity:0; visibility:hidden; pointer-events:none;
}
.preloader__bg{
  position:absolute; inset:0;
  background:var(--color-background); /* crème #E8D8C4 */
}
/* Halo bordeaux doux en fond (sur crème) */
.preloader__bg::before{
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 45% at 50% 50%, rgba(86,28,36,.10) 0%, transparent 70%);
  animation:preloaderPulse 2s ease-in-out infinite alternate;
}
@keyframes preloaderPulse{
  from{ opacity:.5; transform:scale(.95); }
  to{ opacity:1; transform:scale(1.05); }
}

.preloader__content{
  position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center;
}

/* Logo flip 3D */
.preloader__logo-wrap{
  perspective:1200px;
  margin-bottom:2.5rem;
}
.preloader__logo-inner{
  transform-style:preserve-3d;
  animation: logoCoin 2.2s ease-in-out forwards;
  will-change:transform;
}

/* Effet pièce : tourne vite → ralentit → se pose */
@keyframes logoCoin{
  0%   { transform:rotateY(0deg)    scale(.5);  opacity:0; }
  5%   { opacity:1; }
  /* Accélération — tours rapides */
  15%  { transform:rotateY(-180deg) scale(.85); }
  28%  { transform:rotateY(-360deg) scale(.95); }
  40%  { transform:rotateY(-540deg) scale(1);   }
  /* Légère décélération */
  52%  { transform:rotateY(-660deg) scale(1.02); }
  /* Ralentissement dramatique */
  66%  { transform:rotateY(-700deg) scale(1.04); }
  78%  { transform:rotateY(-714deg) scale(1.02); }
  /* Micro-rebond final */
  88%  { transform:rotateY(-718deg) scale(1.03); }
  94%  { transform:rotateY(-716deg) scale(1.01); }
  100% { transform:rotateY(-720deg) scale(1);    opacity:1; }
}
.preloader__logo{
  width:clamp(280px, 35vw, 420px);
  height:auto;
  object-fit:contain;
  display:block;
  position:relative;
  /* Logo ORIGINAL (bordeaux) sur fond crème + halo bordeaux doux (luxe) */
  filter: drop-shadow(0 6px 34px rgba(86,28,36,.22));
  animation: preloaderLogoGlow 2.6s ease-in-out 2.2s infinite alternate;
}
/* Respiration du halo une fois le logo posé */
@keyframes preloaderLogoGlow{
  from{ filter: drop-shadow(0 6px 26px rgba(86,28,36,.14)); }
  to{   filter: drop-shadow(0 6px 44px rgba(86,28,36,.34)); }
}
/* Effet shimmer doux sur le logo */
.preloader__logo-inner::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(
    105deg,
    transparent 38%,
    rgba(255,255,255,.55) 50%,
    transparent 62%
  );
  mix-blend-mode:soft-light;
  background-size:200% 100%;
  animation:shimmer 1.8s ease .8s forwards;
  pointer-events:none;
}
@keyframes shimmer{
  0%  { background-position:200% 0; opacity:0; }
  20% { opacity:1; }
  100%{ background-position:-200% 0; opacity:0; }
}

.preloader__line{
  width:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  animation:expandLine .6s var(--ease) 1.2s forwards;
  margin-bottom:1.4rem;
}
@keyframes expandLine{
  to{ width:200px; }
}

.preloader__tagline{
  font-size:.65rem; font-weight:600; letter-spacing:.4em; text-transform:uppercase;
  color:var(--color-primary); /* bordeaux sur crème */
  opacity:0;
  animation:fadeUp .6s var(--ease) 1.4s forwards;
}

/* Barre de progression en bas */
.preloader__progress{
  position:absolute; bottom:0; left:0; right:0;
  height:2px; background:rgba(192,102,63,.1);
}
.preloader__progress-bar{
  height:100%;
  background:linear-gradient(90deg, var(--gold), var(--gold-soft));
  width:0%;
  transition:width .05s linear;
}

/* Body bloqué pendant le preloader */
body.preloading{ overflow:hidden; }

/* ============================================================
   INTERACTIONS GLOBALES
   ============================================================ */

/* Scroll progress bar */
#scroll-progress{
  position:fixed; top:0; left:0; z-index:9999;
  height:2px; width:0%; background:var(--gold);
  transition:width .1s linear;
  pointer-events:none;
}

/* Curseur personnalisé */
#cursor{
  position:fixed; top:0; left:0; z-index:9998;
  width:36px; height:36px; border-radius:50%;
  border:1.5px solid rgba(192,102,63,.7);
  background:rgba(192,102,63,.04);
  pointer-events:none;
  transform:translate(-50%,-50%);
  transition:width .25s cubic-bezier(.16,1,.3,1),
             height .25s cubic-bezier(.16,1,.3,1),
             background .25s,
             border-color .25s,
             opacity .3s;
  will-change:transform;
  mix-blend-mode:normal;
}
#cursor-dot{
  position:fixed; top:0; left:0; z-index:9999;
  width:5px; height:5px; border-radius:50%;
  background:var(--gold);
  pointer-events:none;
  transform:translate(-50%,-50%);
  transition:transform .08s linear, opacity .3s;
  will-change:transform;
}
#cursor.cursor--hover{
  width:56px; height:56px;
  border-color:rgba(192,102,63,.9);
  background:rgba(192,102,63,.12);
}
#cursor.cursor--click{
  width:28px; height:28px;
  background:rgba(192,102,63,.25);
}
body{ cursor:none; }
a,button,[class*="btn"],.prop{ cursor:none; }

/* Page transition overlay */
#page-transition{
  position:fixed; inset:0; z-index:9990;
  background:var(--charcoal);
  opacity:0; pointer-events:none;
  transition:opacity .38s var(--ease);
}
#page-transition.active{ opacity:1; pointer-events:all; }

/* Magnetic buttons — transition douce */
.mag-btn{ transition:transform .4s cubic-bezier(.22,.61,.36,1), background .5s var(--ease), color .5s var(--ease); }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  --pad:1.15rem 2.4rem;
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--sans); font-size:.78rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase;
  padding:var(--pad); border:1px solid transparent;
  border-radius: 30px;
  cursor:pointer; background:none;
  transition:background .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease), transform .25s var(--ease);
}
.btn:hover{ transform: translateY(-2px); }
.btn .arrow{ transition:transform .5s var(--ease); }
.btn:hover .arrow{ transform:translateX(6px); }
/* Primaire : Burgundy → hover Taupe */
.btn--gold{ background:var(--color-primary); color:var(--color-background); }
.btn--gold:hover{ background:var(--color-taupe); color:#561C24; }
.btn--ghost-light{ border-color:var(--line-light); color:var(--warm-white); }
.btn--ghost-light:hover{ background:var(--warm-white); color:var(--color-primary); border-color:var(--warm-white); }
/* Secondaire : contour Burgundy, texte Burgundy → hover plein */
.btn--ghost-dark{ border-color:var(--color-primary); color:var(--color-primary); }
.btn--ghost-dark:hover{ background:var(--color-primary); color:var(--color-background); border-color:var(--color-primary); }

/* ============================================================
   LOGO IMAGE
   ============================================================ */
.logo-img{
  display:block;
  height:52px;
  width:auto;
  object-fit:contain;
  transition:filter .5s var(--ease), opacity .5s var(--ease);
}
/* Sur fond sombre → blanc */
.logo-img--white{ filter:brightness(0) invert(1); }
/* Sur fond clair → couleur originale (gris/anthracite) */
.logo-img--dark{ filter:brightness(0) saturate(100%) invert(18%) sepia(8%) saturate(400%) hue-rotate(180deg); }

/* ============================================================
   NAVIGATION
   ============================================================ */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  height:96px;
  padding:0 var(--gutter);
  background:#FFFFFF;
  border-bottom:1px solid rgba(192,102,63,.1);
  transition:height .4s ease, box-shadow .4s ease;
}
.nav.scrolled{
  height:82px;
  box-shadow:0 6px 24px rgba(192,102,63,.08);
}
.nav:not(.hero-nav){
  background:#FFFFFF;
}
.nav__left,.nav__right{
  display:flex; align-items:center; gap:1rem;
  height:100%;
}
.nav__right{ justify-content:flex-end; flex-wrap:nowrap; }

/* Logo nav — couleur d'origine, aucun filtre. Logo rogné = remplit le cadre. */
.nav__logo-img{
  height:78px; width:auto; object-fit:contain;
  transition:height .4s ease;
  display:block;
}
.nav.scrolled .nav__logo-img{ height:66px; }

/* Accueil : logo grand format, barre compacte */
.nav.hero-nav{ height:124px; }
.nav.hero-nav .nav__logo-img{ height:106px; }
.nav.hero-nav.scrolled{ height:94px; }
.nav.hero-nav.scrolled .nav__logo-img{ height:80px; }

/* Marque nav (logo image OU logotype texte) */
.nav__brand{ justify-self:center; display:flex; align-items:center; justify-content:center; text-decoration:none; }
/* Logotype texte Najet Agent Sur (repli si pas de logo image) */
.nav__logotype{
  justify-self:center; font-family:var(--serif); font-weight:600;
  font-size:1.55rem; line-height:1; letter-spacing:.01em; color:var(--charcoal);
  text-decoration:none; white-space:nowrap; text-align:center; transition:font-size .4s ease;
}
.nav__logotype em{ font-style:italic; font-weight:500; color:var(--terracotta); }
.nav.scrolled .nav__logotype{ font-size:1.42rem; }
.nav.hero-nav .nav__logotype{ font-size:1.95rem; }
.nav.hero-nav.scrolled .nav__logotype{ font-size:1.55rem; }

/* Accueil : nav transparente sur le hero, devient solide au scroll */
.nav.hero-nav:not(.scrolled){ background:transparent; border-bottom-color:transparent; }
.nav.hero-nav:not(.scrolled) .nav__logotype{ color:#E8D8C4; }
.nav.hero-nav:not(.scrolled) .nav__logotype em{ color:var(--dore-clair); }
.nav.hero-nav:not(.scrolled) .nav__links a{ color:rgba(251,243,234,.88); }
.nav.hero-nav:not(.scrolled) .nav__links a:hover{ color:#FFFFFF; }
.nav.hero-nav:not(.scrolled) .nav__menu span{ background:#E8D8C4; }
.nav.hero-nav:not(.scrolled) .nav__phone{ color:#E8D8C4; background:rgba(251,243,234,.1); border-color:rgba(251,243,234,.4); }
.nav.hero-nav:not(.scrolled) .nav__phone:hover{ background:var(--terracotta); border-color:var(--terracotta); color:#E8D8C4; }
.nav.hero-nav:not(.scrolled) .nav__lang-btn{ color:#E8D8C4; background:rgba(251,243,234,.1); border-color:rgba(251,243,234,.3); }
@media(max-width:560px){
  .nav__logotype{ font-size:1.2rem; }
  .nav.hero-nav .nav__logotype{ font-size:1.3rem; }
}

/* Logotype du préloader (fond sable clair → texte foncé) */
.preloader__logotype{
  font-family:var(--serif); font-weight:600; line-height:1;
  font-size:clamp(2.2rem,8vw,3.6rem); color:var(--charcoal); letter-spacing:.01em;
  display:block; text-align:center;
}
.preloader__logotype em{
  display:block; font-style:italic; font-weight:500; color:var(--terracotta);
  font-size:.46em; letter-spacing:.22em; text-transform:uppercase; margin-top:.5rem;
}

.nav__links{
  display:flex; gap:1.6rem; font-size:.65rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
}
.nav__links a{
  color:rgba(58,42,48,.78);
  transition:color .3s;
  position:relative; padding-bottom:2px;
}
.nav__links a::after{
  content:''; position:absolute; bottom:0; left:0; width:0; height:1px;
  background:var(--gold); transition:width .4s var(--ease);
}
.nav__links a:hover{ color:var(--color-primary); }
.nav__links a:hover::after{ width:100%; }

.nav__lang{ display:flex; gap:.4rem; align-items:center; }
.nav__lang-btn{
  display:flex; align-items:center; gap:.35rem;
  background:rgba(192,102,63,.06); border:1px solid rgba(192,102,63,.18);
  border-radius:6px; padding:.3rem .55rem; cursor:pointer;
  opacity:.65; transition:opacity .3s, background .3s, border-color .3s;
  font-size:.62rem; font-weight:700; letter-spacing:.1em; color:var(--color-primary);
}
.nav__lang-btn svg{ border-radius:2px; flex-shrink:0; }
.nav__lang-btn.active,
.nav__lang-btn:hover{
  opacity:1;
  background:rgba(192,102,63,.12);
  border-color:rgba(192,102,63,.4);
  color:var(--color-primary);
}

.nav__phone{
  white-space:nowrap;
  font-size:.78rem; font-weight:700; letter-spacing:.04em;
  color:var(--color-primary); background:rgba(192,102,63,.08);
  border:1px solid rgba(192,102,63,.3);
  padding:.4rem .85rem; border-radius:6px;
  display:flex; align-items:center; gap:.45rem;
  transition:background .3s, color .3s, border-color .3s;
}
.nav__phone:hover{ background:var(--gold); color:var(--color-background); border-color:var(--gold); }

.nav__cta-btn{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--sans); font-size:.66rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  padding:.65rem 1.4rem;
  border:1px solid var(--gold); color:var(--gold);
  transition:background .4s var(--ease), color .4s var(--ease);
}
.nav__cta-btn:hover{ background:var(--gold); color:var(--color-background); }

.nav__menu{
  display:flex; flex-direction:column; gap:5px; cursor:pointer;
  background:none; border:none; padding:.4rem;
}
.nav__menu span{ width:24px; height:2px; border-radius:2px; background:var(--color-primary); transition:background .5s var(--ease); }


@media(max-width:1024px){ .nav__phone{ display:none; } }
/* Langue toujours visible mais compacte sur mobile */
@media(max-width:1024px){
  .nav__lang{ gap:.25rem; }
  .nav__lang-btn{ padding:.25rem .35rem; font-size:.55rem; gap:.2rem; }
  .nav__lang-btn svg{ width:20px; height:14px; }
}
@media(max-width:760px){ .nav__links{ display:none; } }

/* ============================================================
   BLOC INFO HOMEPAGE
   ============================================================ */
.info-block{
  padding:clamp(4rem,8vw,7rem) 0;
  background:var(--warm-white);
  border-bottom:1px solid var(--line);
}
.info-block__inner{
  display:grid; grid-template-columns:1fr;
  max-width:780px;
}
.info-block__placeholder .eyebrow{ margin-bottom:1rem; }
.info-block__placeholder h2{
  font-size:clamp(2rem,3.5vw,3rem); margin-bottom:1.4rem;
}
.info-block__placeholder p{
  font-size:1.05rem; line-height:1.8; color:rgba(58,42,48,.65); max-width:60ch;
}

/* ============================================================
   CAROUSELS HOMEPAGE
   ============================================================ */
.home-carousel{
  padding:clamp(3.5rem,7vw,6rem) 0;
  background:var(--warm-white);
}
.home-carousel + .home-carousel{
  border-top:1px solid var(--line);
}
.home-carousel__head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:2.5rem;
}
.home-carousel__head .eyebrow{ margin-bottom:.5rem; }
.home-carousel__title{
  font-size:clamp(1.8rem,3vw,2.6rem); font-weight:300;
}
.home-carousel__more{
  font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold); border-bottom:1px solid rgba(192,102,63,.35);
  padding-bottom:2px; white-space:nowrap;
  transition:border-color .3s, color .3s;
}
.home-carousel__more:hover{ color:var(--charcoal); border-color:var(--charcoal); }

/* Track wrapper avec flèches */
.hc-track-wrap{
  position:relative;
}
.hc-track{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  grid-template-rows:repeat(2, auto);
  gap:1.5rem;
}
@media(max-width:900px){ .hc-track{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .hc-track{ grid-template-columns:1fr; } }

/* Flèches navigation */
.hc-arrow{
  display:none; /* visible seulement si overflow mode activé */
  position:absolute; top:50%; transform:translateY(-50%);
  z-index:4; background:var(--warm-white); border:1px solid var(--line);
  width:44px; height:44px; border-radius:50%;
  align-items:center; justify-content:center;
  cursor:none; transition:background .3s, border-color .3s, box-shadow .3s;
  box-shadow:0 2px 12px rgba(0,0,0,.08);
}
.hc-arrow:hover{ background:var(--gold); border-color:var(--gold); color:#fff; }
.hc-arrow--prev{ left:-22px; }
.hc-arrow--next{ right:-22px; }

/* CARD */
.hc-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px;
  overflow:hidden;
  transition:transform .4s cubic-bezier(.22,.61,.36,1), box-shadow .4s;
  will-change:transform;
}
.hc-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 50px rgba(0,0,0,.12);
}
.hc-card__link{ display:block; text-decoration:none; color:inherit; }
.hc-card__img{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  background:var(--sand);
}
.hc-card__img img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s cubic-bezier(.22,.61,.36,1);
}
.hc-card:hover .hc-card__img img{ transform:scale(1.06); }
.hc-card__img-placeholder{ width:100%; height:100%; background:var(--sand); }
.hc-card__badge{
  position:absolute; top:.8rem; left:.8rem;
  font-size:.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  background:var(--charcoal); color:#fff;
  padding:.3rem .65rem; border-radius:2px;
}
.hc-card__badge--gold{ background:var(--gold); color:var(--rich-black); }

.hc-card__body{
  padding:1.2rem 1.4rem 1.4rem;
}
.hc-card__meta{
  display:flex; gap:.8rem; flex-wrap:wrap;
  font-size:.65rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(58,42,48,.45); margin-bottom:.5rem;
}
.hc-card__title{
  font-family:var(--serif); font-size:1.05rem; font-weight:400;
  color:var(--charcoal); line-height:1.3; margin-bottom:.7rem;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.hc-card__specs{
  display:flex; gap:1rem;
  font-size:.72rem; color:rgba(58,42,48,.5); margin-bottom:.8rem;
}
.hc-card__price{
  display:flex; align-items:baseline; gap:.6rem;
  margin-bottom:1rem;
}
.hc-card__price strong{
  font-family:var(--serif); font-size:1.15rem; font-weight:400; color:var(--charcoal);
}
.hc-card__price span{
  font-size:.78rem; color:rgba(58,42,48,.45);
}
.hc-card__cta{
  display:inline-block;
  font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold); border-bottom:1px solid rgba(192,102,63,.4);
  padding-bottom:1px; transition:color .3s, border-color .3s;
}
.hc-card:hover .hc-card__cta{ color:var(--charcoal); border-color:var(--charcoal); }

.hc-dots{
  display:flex; justify-content:center; gap:.5rem; margin-top:1.8rem;
}
.hc-dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--line); border:1px solid rgba(58,42,48,.2);
  cursor:none; transition:background .3s, transform .3s;
}
.hc-dot.active{ background:var(--gold); transform:scale(1.3); }
.hc-empty{
  text-align:center; font-family:var(--serif);
  font-size:1.3rem; font-weight:300; color:rgba(58,42,48,.4);
  padding:3rem 0;
}

/* ============================================================
   WHATSAPP FLOTTANT
   ============================================================ */
.whatsapp-float{
  position:fixed; bottom:2rem; right:2rem; z-index:999;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.45);
  transition:transform .3s var(--ease), box-shadow .3s;
}
.whatsapp-float:hover{ transform:scale(1.1); box-shadow:0 6px 28px rgba(37,211,102,.6); }
.whatsapp-float svg{ width:28px; height:28px; }

/* WhatsApp dans la carte propriété */
.prop__whatsapp{
  display:inline-flex; align-items:center; gap:.5rem;
  margin-top:1rem;
  font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:#25D366; border:1px solid rgba(37,211,102,.35);
  padding:.5rem 1rem; border-radius:2px;
  transition:background .3s, color .3s;
}
.prop__whatsapp:hover{ background:#25D366; color:#fff; }

/* ============================================================
   PAGE HERO (sous-pages)
   ============================================================ */
.page-hero{
  position:relative; height:58vh; min-height:460px;
  display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden; color:var(--warm-white);
}
.page-hero__bg{ position:absolute; inset:0; z-index:0; }
.page-hero__bg img{ filter:saturate(.88) brightness(.68) contrast(1.04); }
.page-hero__overlay{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(10,8,6,.3) 0%, rgba(10,8,6,.05) 40%, rgba(10,8,6,.75) 100%);
}
/* Logo watermark sur les pages intérieures */
.page-hero__logo{
  position:absolute; right:var(--gutter); top:50%; transform:translateY(-50%);
  z-index:2; opacity:.1; pointer-events:none;
}
.page-hero__logo img{ width:clamp(120px,14vw,200px); filter:brightness(0) invert(1); }

/* ============================================================
   SINGLE PROPRIETE
   ============================================================ */
.prop-single-hero{
  position:relative; height:58vh; min-height:440px;
  overflow:hidden; color:var(--warm-white);
  display:flex; align-items:stretch;
}
.prop-single-hero__bg{ position:absolute; inset:0; z-index:0; }
.prop-single-hero__bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.82) saturate(1.05); }
.prop-single-hero__overlay{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(40,18,24,.55) 0%, rgba(40,18,24,.12) 28%, rgba(40,18,24,.1) 55%, rgba(20,10,13,.88) 100%);
}
/* Colonne : fil d'Ariane en haut, titre + badges en bas */
.prop-single-hero__inner{
  position:relative; z-index:2; width:100%;
  display:flex; flex-direction:column;
  padding-top:clamp(1.4rem,4vh,2.4rem);
  padding-bottom:clamp(2rem,5vh,3.4rem);
}
.prop-single-hero__breadcrumb{
  display:flex; gap:.5rem; align-items:center;
  font-family:var(--font-head);
  font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(244,237,227,.7);
  text-shadow:0 1px 8px rgba(0,0,0,.5);
}
.prop-single-hero__breadcrumb a{ color:inherit; transition:color .3s; }
.prop-single-hero__breadcrumb a:hover{ color:#fff; }
.prop-single-hero__breadcrumb span{ opacity:.45; }
.prop-single-hero__breadcrumb span:last-child{ color:var(--color-taupe); opacity:1; }

.prop-single-hero__title{
  margin-top:auto;                       /* pousse le titre en bas */
  font-size:clamp(2.2rem,4.5vw,4rem);
  font-weight:300; line-height:1.05; letter-spacing:-.01em;
  color:#E8D8C4 !important;              /* lisible — annule la règle globale h1 burgundy */
  text-shadow:0 2px 24px rgba(0,0,0,.6), 0 1px 4px rgba(0,0,0,.5);
  margin-bottom:1.1rem;
}
.prop-single-hero__meta{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.prop-single-hero__badge{
  font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:.4rem .95rem; border-radius:50px;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
}
.badge--active{ background:var(--gold); color:#E8D8C4; }
.badge--sold{ background:rgba(190,55,55,.92); color:#fff; }
.prop-single-hero__tag{
  font-size:.7rem; font-weight:500; letter-spacing:.06em;
  color:#E8D8C4; background:rgba(255,255,255,.14);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.28); padding:.4rem .85rem; border-radius:50px;
}

/* Layout 2 colonnes */
.prop-single{ padding:clamp(3rem,6vw,6rem) var(--gutter); }
.prop-single__layout{
  display:grid; grid-template-columns:1fr 360px; gap:3.5rem; align-items:start;
}
@media(max-width:960px){ .prop-single__layout{ grid-template-columns:1fr; } }

/* Galerie */
.prop-gallery{ margin-bottom:2.5rem; }
.prop-gallery__main{
  position:relative; aspect-ratio:16/9; overflow:hidden;
  border-radius:2px; background:var(--sand);
}
.prop-gallery__main{ cursor:zoom-in; }
.prop-gallery__main img{ width:100%; height:100%; object-fit:cover; transition:opacity .4s, transform .6s ease; }
.prop-gallery__main:hover img{ transform:scale(1.03); }
.prop-gallery__zoom{
  position:absolute; top:1rem; left:1rem; z-index:2;
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.85); color:var(--color-primary);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(.85); transition:opacity .3s, transform .3s;
  pointer-events:none; backdrop-filter:blur(2px);
}
.prop-gallery__main:hover .prop-gallery__zoom{ opacity:1; transform:scale(1); }
.prop-gallery__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.9); color:var(--color-primary); border:none; cursor:pointer;
  font-size:1.5rem; width:46px; height:46px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; line-height:1;
  box-shadow:0 4px 16px rgba(40,18,24,.18);
  transition:background .3s, color .3s, transform .2s; z-index:2;
}
.prop-gallery__nav:hover{ background:var(--gold); color:#fff; transform:translateY(-50%) scale(1.06); }
.prop-gallery__nav--prev{ left:1rem; }
.prop-gallery__nav--next{ right:1rem; }
.prop-gallery__count{
  position:absolute; bottom:.8rem; right:1rem;
  font-size:.7rem; font-weight:600; letter-spacing:.1em;
  background:rgba(40,18,24,.6); color:#fff; padding:.25rem .6rem; border-radius:20px;
}
.prop-gallery__sold-ribbon{
  position:absolute; top:1.5rem; right:-2rem;
  background:rgba(200,60,60,.9); color:#fff;
  font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:.4rem 3rem; transform:rotate(35deg); z-index:2;
}
.prop-gallery__thumbs{ display:flex; gap:.6rem; margin-top:.85rem; flex-wrap:wrap; }
.prop-gallery__thumb{
  width:88px; height:62px; overflow:hidden; cursor:pointer;
  border:2px solid transparent; border-radius:12px; transition:border-color .3s, transform .3s, opacity .3s;
  opacity:.7;
}
.prop-gallery__thumb:hover{ opacity:1; transform:translateY(-2px); }
.prop-gallery__thumb.active{ border-color:var(--gold); opacity:1; }
.prop-gallery__thumb img{ width:100%; height:100%; object-fit:cover; }

/* ===== Lightbox galerie plein écran ===== */
.pg-lightbox{
  position:fixed; inset:0; z-index:9999;
  background:rgba(28,12,16,.94); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .35s ease;
}
.pg-lightbox.is-open{ opacity:1; visibility:visible; }
.pg-lightbox__stage{
  max-width:92vw; max-height:86vh; display:flex; align-items:center; justify-content:center;
}
.pg-lightbox__stage img{
  max-width:92vw; max-height:86vh; width:auto; height:auto;
  object-fit:contain; border-radius:14px; box-shadow:0 24px 80px rgba(0,0,0,.5);
  transform:scale(.96); transition:transform .35s ease;
}
.pg-lightbox.is-open .pg-lightbox__stage img{ transform:scale(1); }
.pg-lightbox__close{
  position:absolute; top:1.4rem; right:1.6rem; z-index:2;
  width:48px; height:48px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; font-size:1.9rem; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:background .3s;
}
.pg-lightbox__close:hover{ background:var(--gold); }
.pg-lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:54px; height:54px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; font-size:2rem; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:background .3s, transform .2s;
}
.pg-lightbox__nav:hover{ background:var(--gold); }
.pg-lightbox__nav--prev{ left:1.6rem; }
.pg-lightbox__nav--next{ right:1.6rem; }
.pg-lightbox__count{
  position:absolute; bottom:1.6rem; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,.85); font-size:.78rem; letter-spacing:.12em;
  background:rgba(255,255,255,.1); padding:.35rem .9rem; border-radius:999px;
}
@media (max-width:640px){
  .pg-lightbox__nav{ width:44px; height:44px; font-size:1.6rem; }
  .pg-lightbox__nav--prev{ left:.6rem; } .pg-lightbox__nav--next{ right:.6rem; }
  .pg-lightbox__close{ top:.8rem; right:.8rem; }
}

/* Description */
.prop-single__desc-title{
  font-family:var(--serif); font-size:clamp(1.4rem,2.5vw,2rem);
  font-weight:400; margin-top:3rem; margin-bottom:1.2rem; color:var(--color-primary);
}
.prop-single__content{ font-size:.95rem; line-height:1.85; color:rgba(58,42,48,.8); }
.prop-single__content p{ margin-bottom:1rem; }
.prop-single__content strong{ color:var(--charcoal); font-weight:600; }

.prop-single__stats-bar{
  display:flex; gap:0; margin-top:2.5rem;
  border:1px solid var(--line); border-radius:2px; overflow:hidden;
}
.prop-single__stat{
  flex:1; text-align:center; padding:1.2rem .8rem;
  border-right:1px solid var(--line);
}
.prop-single__stat:last-child{ border-right:none; }
.prop-single__stat-val{
  display:block; font-family:var(--serif);
  font-size:1.8rem; font-weight:300; color:var(--gold);
  line-height:1;
}
.prop-single__stat-lbl{
  display:block; font-size:.62rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  color:rgba(58,42,48,.45); margin-top:.4rem;
}

/* Sidebar */
.prop-single__sidebar{ position:sticky; top:120px; display:flex; flex-direction:column; gap:1.5rem; }

.prop-single__price-card{
  background:var(--color-primary); color:var(--color-background);
  padding:1.8rem; text-align:center; border-radius:14px;
}
.prop-single__price-main{
  font-family:var(--serif); font-size:2.2rem; font-weight:300; color:#E8D8C4;
}
.prop-single__price-main span{ font-size:1rem; opacity:.85; color:var(--color-taupe); }
.prop-single__price-sub{ font-size:.95rem; color:rgba(244,237,227,.78); margin-top:.3rem; }

.prop-single__sheet{
  border:1px solid var(--line); border-radius:14px; overflow:hidden;
}
.prop-single__sheet-title{
  font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  background:var(--color-primary); color:#E8D8C4;
  padding:.9rem 1.2rem;
}
.prop-single__sheet-list{ list-style:none; }
.prop-single__sheet-list li{
  display:flex; justify-content:space-between; align-items:center;
  padding:.75rem 1.2rem; border-bottom:1px solid var(--line);
  font-size:.82rem;
}
.prop-single__sheet-list li:last-child{ border-bottom:none; }
.prop-single__sheet-list span{ color:rgba(58,42,48,.5); }
.prop-single__sheet-list strong{ font-weight:600; color:var(--charcoal); }

.prop-single__contact{
  background:var(--color-primary); color:var(--color-background);
  padding:1.8rem; border-radius:14px;
}
.prop-single__contact h3{
  font-family:var(--serif); font-size:1.15rem; font-weight:500;
  text-align:center; margin-bottom:.5rem; color:#E8D8C4;
}
.prop-single__contact p{
  font-size:.82rem; text-align:center; color:rgba(244,237,227,.8); margin-bottom:1.4rem; line-height:1.6;
}
.prop-single__wa-btn{
  display:flex; align-items:center; justify-content:center; gap:.7rem;
  width:100%; padding:.95rem; border-radius:10px;
  background:#25D366; color:#fff;
  font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  margin-bottom:.7rem; transition:filter .3s, transform .2s;
}
.prop-single__wa-btn:hover{ filter:brightness(1.08); transform:translateY(-1px); }
.prop-single__phone-btn{
  display:flex; align-items:center; justify-content:center; gap:.6rem;
  width:100%; padding:.8rem; border-radius:10px;
  background:rgba(244,237,227,.14); color:#E8D8C4;
  border:1px solid rgba(244,237,227,.25);
  font-size:.78rem; font-weight:700; letter-spacing:.06em;
  margin-bottom:.9rem; transition:background .3s;
}
.prop-single__phone-btn:hover{ background:rgba(244,237,227,.24); }
.prop-single__contact-link{
  display:block; text-align:center;
  font-size:.74rem; font-weight:600; letter-spacing:.08em;
  color:var(--color-secondary);
  text-decoration:underline; text-underline-offset:3px;
  opacity:.85; transition:opacity .3s;
}
.prop-single__contact-link:hover{ opacity:1; }

/* Biens similaires */
.prop-related{ padding:clamp(3rem,6vw,6rem) 0; background:var(--warm-white); }
.prop-related .wrap{ padding-inline:var(--gutter); }
.prop-related__title{
  font-size:clamp(1.6rem,3vw,2.4rem); font-weight:300;
  margin-bottom:2.5rem; color:var(--charcoal);
  text-align:center;
}

.page-hero__inner{
  position:relative; z-index:3;
  padding:0 var(--gutter) clamp(2.5rem,6vh,4rem);
  max-width:var(--maxw); margin-inline:auto; width:100%;
}
.page-hero__eyebrow{
  display:inline-flex; align-items:center; gap:.8rem;
  font-size:.65rem; font-weight:600; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.4rem;
}
.page-hero__eyebrow::before{ content:''; width:32px; height:1px; background:var(--gold); }
.page-hero__title{
  font-family:var(--serif);
  font-size:clamp(2.8rem,6vw,6rem); font-weight:300; line-height:.96;
  text-shadow:0 2px 30px rgba(0,0,0,.5);
}
.page-hero__title em{ font-style:italic; color:var(--gold-soft); }
.page-hero__sub{ margin-top:1.2rem; max-width:52ch; font-size:1rem; font-weight:300; color:rgba(248,245,240,.8); text-shadow:0 1px 10px rgba(0,0,0,.5); }

/* ============================================================
   FILTER BAR
   ============================================================ */
/* ── FILTER BAR ── */
.filter-bar{
  position:sticky; top:0; z-index:200;
  background:rgba(244,237,227,.92);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  border-bottom:1px solid rgba(192,102,63,.15);
}
.filter-bar__wrap{
  max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter);
  display:flex; align-items:center; gap:1.6rem;
  padding-block:.9rem;
}
.filter-bar__trigger{
  display:inline-flex; align-items:center; gap:.7rem;
  background:rgba(192,102,63,.08);
  border:1px solid rgba(192,102,63,.3);
  color:var(--color-primary);
  border-radius:50px;
  padding:.55rem 1.4rem;
  font-family:var(--sans); font-size:.72rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  cursor:pointer;
  transition:background .25s, border-color .25s;
}
.filter-bar__trigger:hover,
.filter-bar.is-open .filter-bar__trigger{
  background:rgba(192,102,63,.22);
  border-color:rgba(192,102,63,.6);
}
.filter-bar__trigger svg{ flex-shrink:0; }
.filter-bar__chevron{
  transition:transform .3s var(--ease);
}
.filter-bar.is-open .filter-bar__chevron{ transform:rotate(180deg); }

.filter-bar__count{
  background:var(--gold); color:var(--color-background);
  border-radius:50%; width:18px; height:18px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:.6rem; font-weight:700; line-height:1;
}
.filter-bar__reset{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.68rem; font-weight:500; letter-spacing:.08em;
  color:rgba(58,42,48,.5); text-transform:uppercase;
  text-decoration:none; transition:color .2s;
}
.filter-bar__reset:hover{ color:var(--color-primary); }
.filter-bar__tags{
  display:flex; gap:.5rem; flex-wrap:wrap; margin-left:auto;
}
.filter-tag{
  background:rgba(192,102,63,.1);
  border:1px solid rgba(192,102,63,.28);
  color:var(--color-primary);
  border-radius:4px;
  padding:.2rem .7rem;
  font-size:.65rem; font-weight:600; letter-spacing:.06em;
}

/* Panneau déroulant */
.filter-panel{
  max-height:0; overflow:hidden;
  transition:max-height .4s cubic-bezier(.16,1,.3,1);
  border-top:1px solid rgba(192,102,63,.08);
}
.filter-panel.is-open{ max-height:400px; }
.filter-panel__form{
  max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter);
  padding-block:1.8rem 1.6rem;
  display:flex; flex-direction:column; gap:1.4rem;
}
.filter-panel__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:rgba(192,102,63,.12);
  border:1px solid rgba(192,102,63,.12);
  border-radius:12px;
  overflow:hidden;
}
.filter-panel__field{
  display:flex; flex-direction:column; gap:.4rem;
  padding:1rem 1.4rem;
  background:rgba(255,255,255,.55);
}
.filter-panel__field:not(:last-child){
  border-right:1px solid rgba(192,102,63,.1);
}
.filter-panel__field label{
  font-size:.56rem; font-weight:700; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold);
}
.filter-panel__field select{
  background:none; border:none; outline:none;
  font-family:var(--sans); font-size:.88rem; font-weight:500;
  color:#561C24; cursor:pointer;
}
.filter-panel__field select option{ background:#E8D8C4; color:#561C24; }

.filter-panel__actions{
  display:flex; align-items:center; justify-content:flex-end; gap:1.2rem;
}
.filter-panel__clear{
  font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(58,42,48,.45); text-decoration:none; transition:color .2s;
}
.filter-panel__clear:hover{ color:var(--color-primary); }
.filter-panel__apply{
  background:var(--gold); color:var(--color-background); border:none; cursor:pointer;
  border-radius:50px; padding:.7rem 2rem;
  font-family:var(--sans); font-size:.72rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.5rem;
  transition:background .25s, transform .2s;
}
.filter-panel__apply:hover{ background:#561C24; transform:translateY(-1px); }

@media(max-width:860px){
  .filter-panel__grid{ grid-template-columns:1fr 1fr; }
  .filter-panel__field:nth-child(odd){ border-right:1px solid rgba(192,102,63,.1); }
  .filter-panel__field:nth-child(1),
  .filter-panel__field:nth-child(2){ border-bottom:1px solid rgba(192,102,63,.1); }
}
@media(max-width:480px){
  .filter-panel__grid{ grid-template-columns:1fr; }
  .filter-panel__field{ border-right:none !important; border-bottom:1px solid rgba(192,102,63,.1); }
}

/* ============================================================
   SECTION 1 — CINEMATIC HERO (accueil)
   ============================================================ */
.hero{
  position:relative; height:100vh; min-height:700px;
  display:flex; flex-direction:column; justify-content:space-between;
  overflow:hidden; color:var(--warm-white);
}
.hero__bg{
  position:absolute; inset:-10% 0 0 0; height:120%; z-index:0;
  will-change:transform;
}
.hero__bg img{ filter:saturate(1.03) contrast(1.02); }
.hero__overlay{
  position:absolute; inset:0; z-index:1;
  background:
    /* léger voile NEUTRE à gauche (zone texte) — pas de teinte couleur */
    linear-gradient(90deg,
      rgba(0,0,0,.42) 0%,
      rgba(0,0,0,.22) 30%,
      rgba(0,0,0,.04) 55%,
      transparent 75%
    ),
    /* base douce pour la barre de recherche */
    linear-gradient(180deg,
      transparent 62%,
      rgba(0,0,0,.32) 100%
    );
}

/* Logo watermark centré dans le hero */
.hero__logo-center{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  z-index:2; opacity:.12; pointer-events:none;
}
.hero__logo-center img{ width:clamp(200px,22vw,340px); filter:brightness(0) invert(1); }

.hero__inner{
  position:relative; z-index:3;
  width:100%; max-width:var(--maxw); margin-inline:auto;
  padding-right:calc(var(--gutter) + 260px);
  flex:1; display:flex; flex-direction:column; justify-content:flex-start;
  padding-top:clamp(8.5rem,16vh,11rem);
  padding-left:var(--gutter);
}
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:1rem;
  font-size:.65rem; font-weight:700; letter-spacing:.4em; text-transform:uppercase;
  color:var(--color-taupe); margin-bottom:1.6rem;
  text-shadow: 0 1px 10px rgba(0,0,0,.6);
  opacity:0; transform:translateY(12px);
  animation: fadeUp .9s var(--ease) .3s forwards;
}
.hero__eyebrow::before{ content:''; width:40px; height:1px; background:var(--color-taupe); }

.hero__title{
  font-family:var(--serif);
  font-size:clamp(2.8rem,4.8vw,6rem);
  font-weight:400; line-height:1.05; letter-spacing:-.02em;
  max-width:18ch;
  color:#fff;
  text-shadow: 0 2px 8px rgba(0,0,0,.9), 0 4px 40px rgba(0,0,0,.8), 0 0 120px rgba(0,0,0,.6);
  opacity:0; transform:translateY(18px);
  animation: fadeUp 1s var(--ease) .55s forwards;
}
.hero__title em{ font-style:italic; color:var(--gold-soft); }

.hero__divider{
  width:0; height:1px; background:var(--gold);
  margin:2rem 0;
  animation: expandW .8s var(--ease) 1s forwards;
}

.hero__ctas{
  display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:2.4rem;
  opacity:0; transform:translateY(12px);
  animation: fadeUp .8s var(--ease) 1.1s forwards;
}

@keyframes fadeUp{
  to{ opacity:1; transform:translateY(0); }
}
@keyframes expandW{
  to{ width:60px; }
}

/* Badges stats dans le hero */
.hero__stats{
  position:absolute; right:var(--gutter); bottom:calc(clamp(2.5rem,6vh,5rem) + 20px);
  z-index:5; display:flex; flex-direction:column; gap:.8rem; align-items:flex-end;
}
.hero__stat{
  background:rgba(40,18,24,.65); backdrop-filter:blur(12px);
  border:1px solid rgba(192,102,63,.25);
  padding:.9rem 1.4rem; text-align:right;
}
.hero__stat strong{
  font-family:var(--serif); font-size:1.9rem; font-weight:400;
  color:var(--gold-soft); line-height:1; display:block;
}
.hero__stat span{ font-size:.6rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; opacity:.65; }

@media(max-width:760px){ .hero__stats{ display:none; } }

/* ── BARRE DE RECHERCHE ── */
.search{
  position:relative;
  z-index:10;
  width:100%;
  padding:0 var(--gutter) clamp(1.5rem,4vh,2.5rem);
  display:flex; flex-direction:column; align-items:center;
}
.search__panel{
  width:100%; max-width:900px;
  background:rgba(244,237,227,.96);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  border:1px solid rgba(192,102,63,.2);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 24px 80px rgba(26,20,16,.28), inset 0 1px 0 rgba(255,255,255,.4);
}

/* Onglets */
.search__tabs{
  display:flex;
  border-bottom:1px solid rgba(192,102,63,.16);
  padding:0 4px;
  gap:2px;
}
.search__tab{
  flex:1; padding:.85rem 1rem;
  background:none; border:none; cursor:pointer;
  font-family:var(--font-head); font-size:.64rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:rgba(58,42,48,.45);
  position:relative; transition:color .3s ease;
  border-radius:12px 12px 0 0;
}
.search__tab:hover{ color:rgba(192,102,63,.85); }
.search__tab.active{
  color:var(--color-primary);
  background:rgba(192,102,63,.08);
}
.search__tab.active::after{
  content:''; position:absolute; left:16px; right:16px; bottom:0; height:2px;
  background:var(--gold); border-radius:2px 2px 0 0;
}

/* Ligne champs */
.search__row{
  display:flex;
  align-items:stretch;
  gap:0;
  padding:8px;
  min-height:72px;
}
.search__field{
  flex:1;
  padding:12px 20px;
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  border-right:1px solid rgba(192,102,63,.14);
  cursor:pointer;
  transition:background .2s;
  border-radius:12px;
  min-width:0;
  background:rgba(255,255,255,.4);
  color:var(--color-primary);
}
.search__field:last-of-type{ border-right:none; }
.search__field:hover{ background:rgba(253,238,239,.6); }
.search__field label{
  font-size:.56rem; font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; color:var(--gold);
  cursor:pointer; display:block;
  white-space:nowrap;
}
.search__field select,
.search__field input{
  border:none;
  background:transparent;
  font-family:var(--font-head); font-size:.9rem;
  font-weight:600; color:#561C24 !important;
  outline:none; cursor:pointer; width:100%;
  -webkit-appearance:none; appearance:none;
  caret-color:var(--color-primary);
}
/* Assure la visibilité dans tous les navigateurs */
.search__field select::-ms-expand{ display:none; }
.search__field select option{
  background:#E8D8C4;
  color:#561C24;
}
.search__submit{
  flex-shrink:0;
  margin:4px 4px 4px 8px;
  background:var(--gold); color:#fff; border:none; cursor:pointer;
  padding:13px 28px;
  font-family:var(--font-head); font-size:.68rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  border-radius:12px;
  display:flex; align-items:center; gap:8px;
  transition:background .3s, transform .2s, box-shadow .3s;
  white-space:nowrap;
  box-shadow:0 4px 20px rgba(192,102,63,.35);
}
.search__submit:hover{
  background:#E8D8C4;
  color:#561C24;
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(192,102,63,.5);
}
.search__submit svg{ width:16px; height:16px; }

@media(max-width:720px){
  .search__row{ flex-wrap:wrap; padding:8px; }
  .search__field{ flex:1 1 calc(50% - 12px); border-right:none; border-bottom:1px solid rgba(255,255,255,.06); border-radius:10px; }
  .search__submit{ width:100%; justify-content:center; margin:4px 0; }
}

/* ============================================================
   BANDEAU AGENCE — compact strip juste sous le hero
   ============================================================ */
.agency-band{
  scroll-margin-top:72px;
  background: #fff;
  border-bottom: 1px solid rgba(192,102,63,.15);
  border-top: 1px solid rgba(192,102,63,.08);
}
.agency-band__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 44px 40px;
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 48px;
  align-items: center;
}
.agency-band__eyebrow{
  display: block;
  font-family: var(--font-head);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--gold);
  margin-bottom: .2rem;
}
.agency-band__title{
  font-family: var(--font-head);
  font-size: .9rem;
  font-weight: 600;
  color: var(--rich-black);
  margin: 0 0 .9rem;
}
.agency-band__title em{ font-style:normal; color:var(--gold); }
.agency-band__divider{
  width: 36px; height: 1px;
  background: var(--gold);
  margin-bottom: 1rem;
}
.agency-band__text{
  font-size: .88rem;
  line-height: 1.75;
  color: #666;
  margin-bottom: 1.6rem;
}
.agency-band__ctas{
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.agency-band__btn{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  padding: 18px 32px;
  border-radius: 14px;
  font-family: var(--font-head);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.agency-band__btn::after{
  content:'';
  position:absolute; inset:0;
  background:rgba(255,255,255,.07);
  opacity:0;
  transition:opacity .25s;
}
.agency-band__btn:hover{ transform:translateY(-3px); }
.agency-band__btn:hover::after{ opacity:1; }

.agency-band__btn--primary{
  background:linear-gradient(135deg, #561C24 0%, var(--gold) 50%, #561C24 100%);
  color:var(--color-background);
  box-shadow:0 4px 20px rgba(192,102,63,.25);
}
.agency-band__btn--primary:hover{
  box-shadow:0 10px 32px rgba(192,102,63,.45);
}
.agency-band__btn--secondary{
  background:linear-gradient(135deg, #561C24 0%, #561C24 60%, #561C24 100%);
  color:#fff;
  box-shadow:0 4px 20px rgba(0,0,0,.2);
  border:1px solid rgba(192,102,63,.15);
}
.agency-band__btn--secondary:hover{
  box-shadow:0 10px 32px rgba(0,0,0,.35);
  border-color:rgba(192,102,63,.3);
}
.agency-band__btn-sub{
  font-size: .63rem; font-weight:400;
  font-style: italic; letter-spacing:.01em;
  text-transform: none; opacity:.78;
}
.agency-band__img-wrap{
  overflow: hidden;
  aspect-ratio: 4/3;
}
.agency-band__img-wrap img{
  width:100%; height:100%;
  object-fit:cover;
  transition: transform .9s var(--ease);
}
.agency-band__img-wrap:hover img{ transform:scale(1.04); }
@media(max-width:900px){
  .agency-band__inner{ grid-template-columns:1fr; gap:28px; padding:32px 20px; }
  .agency-band__media{ display:none; }
}

/* ============================================================
   SECTION VIDÉO IMMERSIVE
   ============================================================ */
.video-showcase{
  position:relative;
  padding-block:clamp(2.5rem,4vw,4rem);
  overflow:hidden;
  background:#561C24;
  isolation:isolate;
}
.video-showcase__bg{
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(122,70,84,.55) 0%, transparent 60%),
    radial-gradient(ellipse 90% 70% at 50% 120%, rgba(192,102,63,.5) 0%, transparent 55%),
    linear-gradient(180deg, #561C24 0%, #561C24 100%);
}
.video-showcase__watermark{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:min(760px,90vw); height:auto; object-fit:contain;
  opacity:.05; z-index:0; pointer-events:none;
  filter:brightness(0) invert(1);
  will-change:transform;
}
.video-showcase__inner{
  position:relative; z-index:2;
  max-width:1100px; margin-inline:auto;
  padding-inline:var(--gutter);
}
.video-showcase__head{ text-align:center; margin-bottom:clamp(1.4rem,2.5vw,2.2rem); }
.eyebrow--light{ color:var(--color-taupe); justify-content:center; }
.eyebrow--light::before{ background:var(--color-taupe); }
.video-showcase__title{
  font-size:clamp(2.2rem,4.5vw,3.8rem);
  color:#E8D8C4; margin-top:1.2rem; line-height:1.05;
}
.video-showcase__title em{ font-style:italic; color:var(--color-taupe); }
.video-showcase__sub{
  margin-top:1.1rem; font-size:1rem; font-weight:300;
  color:rgba(244,237,227,.62); max-width:46ch; margin-inline:auto;
}

/* Scène + perspective pour effet 3D au survol */
.video-showcase__stage{ perspective:1600px; text-align:center; }
.video-frame{
  position:relative;
  display:inline-block;
  /* écran de téléphone vertical — dimensions fixes */
  width:248px;
  height:440px;
  max-width:80vw;
  margin-inline:auto;
  padding:11px;                       /* bezel du téléphone */
  overflow:hidden;                    /* confine la vidéo dans le cadre */
  border-radius:42px;
  background:linear-gradient(155deg,#561C24 0%,#561C24 60%);
  cursor:pointer;
  border:1px solid rgba(195,183,176,.18);
  box-shadow:
    0 40px 110px -30px rgba(0,0,0,.75),
    0 0 0 1px rgba(0,0,0,.4),
    inset 0 2px 3px rgba(255,255,255,.08),
    inset 0 -2px 4px rgba(0,0,0,.5);
  transform-style:preserve-3d;
  transition:transform .25s ease, box-shadow .4s ease, border-color .4s ease;
  will-change:transform;
}
.video-frame:hover{
  border-color:rgba(195,183,176,.35);
  box-shadow:
    0 50px 130px -28px rgba(0,0,0,.8),
    0 0 60px -12px rgba(122,70,84,.5),
    inset 0 2px 3px rgba(255,255,255,.1),
    inset 0 -2px 4px rgba(0,0,0,.5);
}
/* Encoche du téléphone */
.video-frame::before{
  content:''; position:absolute; top:20px; left:50%; transform:translateX(-50%);
  width:84px; height:6px; border-radius:10px;
  background:rgba(10,5,7,.85); z-index:6; pointer-events:none;
}
.video-frame__media{
  position:relative;
  display:block;
  width:100%; height:100%;
  object-fit:cover;
  background:#561C24;
  border-radius:32px;
}
/* Reflet diagonal subtil */
.video-frame__shine{
  position:absolute; inset:11px; z-index:3; pointer-events:none;
  border-radius:36px;
  background:linear-gradient(125deg, rgba(255,255,255,.09) 0%, transparent 25%, transparent 75%, rgba(255,255,255,.04) 100%);
  mix-blend-mode:screen;
}

/* Bouton plein écran (centre, pulsation) */
.video-frame__expand{
  position:absolute; top:50%; left:50%; z-index:5;
  transform:translate(-50%,-50%);
  width:78px; height:78px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(58,28,36,.55);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1.5px solid rgba(251,243,236,.7);
  color:#E8D8C4; cursor:pointer;
  transition:background .3s, transform .3s, border-color .3s;
}
.video-frame__expand:hover{ background:var(--color-primary); transform:translate(-50%,-50%) scale(1.08); border-color:#fff; }
.video-frame__expand-ring{
  position:absolute; inset:-6px; border-radius:50%;
  border:1.5px solid rgba(251,243,236,.5);
  animation:videoPulse 2.4s ease-out infinite;
}
@keyframes videoPulse{
  0%{ transform:scale(1); opacity:.7; }
  100%{ transform:scale(1.5); opacity:0; }
}

/* Bouton son — en haut à droite de l'écran */
.video-frame__sound{
  position:absolute; top:24px; right:24px; z-index:5;
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(20,10,13,.55);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgba(251,243,236,.3);
  color:#E8D8C4; cursor:pointer;
  transition:background .25s, border-color .25s, transform .25s;
}
.video-frame__sound:hover{ background:var(--color-primary); transform:scale(1.08); }
.video-frame__sound .ic-sound{ display:none; }
.video-frame__sound[data-muted="false"] .ic-muted{ display:none; }
.video-frame__sound[data-muted="false"] .ic-sound{ display:block; }

/* Hint — centré en bas */
.video-frame__hint{
  position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:5;
  font-size:.62rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  white-space:nowrap;
  color:rgba(251,243,236,.9);
  background:rgba(20,10,13,.5);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  padding:.5rem 1rem; border-radius:30px;
  border:1px solid rgba(251,243,236,.18);
  pointer-events:none;
  transition:opacity .4s;
}
.video-frame.is-playing .video-frame__hint{ opacity:0; }

/* ── LIGHTBOX VIDÉO IMMERSIF ── */
.video-lightbox{
  position:fixed; inset:0; z-index:100000;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .45s ease, visibility .45s ease;
}
/* Masquer le bouton WhatsApp flottant pendant le plein écran vidéo */
body.lb-open .whatsapp-float{ opacity:0; visibility:hidden; pointer-events:none; }
.video-lightbox.is-open{ opacity:1; visibility:visible; }

/* Fond immersif — dégradés burgundy animés + flou */
.video-lightbox__backdrop{
  position:absolute; inset:0; cursor:pointer;
  background:
    radial-gradient(ellipse 60% 50% at 50% 38%, rgba(122,70,84,.55) 0%, transparent 65%),
    radial-gradient(ellipse 80% 60% at 50% 120%, rgba(192,102,63,.45) 0%, transparent 55%),
    rgba(8,4,6,.94);
  -webkit-backdrop-filter:blur(22px) saturate(1.1); backdrop-filter:blur(22px) saturate(1.1);
  animation:lbBackdrop 8s ease-in-out infinite alternate;
}
@keyframes lbBackdrop{
  0%{ background-position:50% 38%, 50% 120%, 0 0; }
  100%{ background-position:54% 34%, 46% 116%, 0 0; }
}

/* Barre supérieure : marque + fermer */
.video-lightbox__bar{
  position:absolute; top:0; left:0; right:0; z-index:5;
  display:flex; align-items:center; justify-content:space-between;
  padding:clamp(1rem,2.5vh,1.8rem) clamp(1.2rem,3vw,2.6rem);
  pointer-events:none;
}
.video-lightbox__brand{
  font-family:var(--font-head); font-size:.7rem; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase;
  color:rgba(251,243,236,.55);
}
.video-lightbox__close{
  pointer-events:all;
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.55rem 1.2rem .55rem .9rem; border-radius:50px;
  background:rgba(251,243,236,.12);
  border:1px solid rgba(251,243,236,.28);
  color:#E8D8C4; cursor:pointer;
  font-family:var(--font-head); font-size:.72rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  transition:background .25s, transform .25s, border-color .25s;
}
.video-lightbox__close:hover{ background:var(--color-primary); border-color:var(--color-primary); transform:translateY(-1px); }

/* Scène + vidéo */
.video-lightbox__stage{
  position:relative; z-index:2;
  height:72vh; max-width:92vw;
  transform:scale(.9); opacity:0;
  transition:transform .5s cubic-bezier(.16,1,.3,1), opacity .5s ease;
}
.video-lightbox.is-open .video-lightbox__stage{ transform:scale(1); opacity:1; }
/* Halo ambiant lumineux derrière la vidéo (effet "ambilight") */
.video-lightbox__glow{
  position:absolute; inset:-8% -12%;
  z-index:-1; border-radius:50%; pointer-events:none;
  background:radial-gradient(ellipse, rgba(150,90,105,.55) 0%, rgba(122,70,84,.25) 45%, transparent 72%);
  filter:blur(50px);
  animation:lbGlow 4.5s ease-in-out infinite alternate;
}
@keyframes lbGlow{
  0%{ transform:scale(.95); opacity:.7; }
  100%{ transform:scale(1.08); opacity:1; }
}
.video-lightbox__media{
  height:72vh; max-width:92vw; width:auto;
  border-radius:22px; display:block;
  background:#000; cursor:pointer;
  border:1px solid rgba(195,183,176,.2);
  box-shadow:0 50px 140px -20px rgba(0,0,0,.85), 0 0 70px -20px rgba(122,70,84,.6);
}

/* ── CONTRÔLES VIDÉO PERSONNALISÉS ── */
/* Gros bouton play/pause central */
.vlc-bigplay{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  z-index:4; width:84px; height:84px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(58,28,36,.5); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1.5px solid rgba(251,243,236,.75);
  color:#E8D8C4; cursor:pointer;
  transition:opacity .3s, transform .3s, background .3s;
}
.vlc-bigplay:hover{ background:var(--color-primary); transform:translate(-50%,-50%) scale(1.06); }
.vlc-bigplay .ic-play{ margin-left:5px; }
.vlc-bigplay .ic-pause{ display:none; }
.video-lightbox__stage.is-playing .vlc-bigplay{ opacity:0; pointer-events:none; }
.video-lightbox__stage.is-playing:hover .vlc-bigplay{ opacity:1; pointer-events:all; }
.video-lightbox__stage.is-playing .vlc-bigplay .ic-play{ display:none; }
.video-lightbox__stage.is-playing .vlc-bigplay .ic-pause{ display:block; }

/* Barre de contrôle flottante — fixée en bas de l'écran, TOUJOURS visible */
.vlc-controls{
  position:absolute; left:50%; bottom:clamp(1.2rem,3.5vh,2.6rem);
  transform:translateX(-50%);
  z-index:6;
  width:min(640px, 92vw);
  display:flex; align-items:center; gap:.55rem;
  padding:.65rem .9rem;
  background:rgba(20,10,13,.72);
  -webkit-backdrop-filter:blur(16px) saturate(1.1); backdrop-filter:blur(16px) saturate(1.1);
  border:1px solid rgba(251,243,236,.2);
  border-radius:50px;
  box-shadow:0 14px 44px rgba(0,0,0,.5);
}
.vlc-btn{
  flex-shrink:0; width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:transparent; border:none; color:#E8D8C4; cursor:pointer;
  transition:background .2s, transform .2s;
}
.vlc-btn:hover{ background:rgba(251,243,236,.18); transform:scale(1.05); }
.vlc-btn .ic-pause, .vlc-btn .ic-muted{ display:none; }
#vlcPlay.is-playing .ic-play{ display:none; }
#vlcPlay.is-playing .ic-pause{ display:block; }
.vlc-btn[data-muted="true"] .ic-sound{ display:none; }
.vlc-btn[data-muted="true"] .ic-muted{ display:block; }
/* Bouton Quitter dans la barre (libellé) */
.vlc-btn--exit{
  width:auto; padding:0 .95rem 0 .75rem; gap:.4rem; height:38px; border-radius:50px;
  background:rgba(251,243,236,.12); border:1px solid rgba(251,243,236,.28);
  font-family:var(--font-head); font-size:.66rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; margin-left:.15rem;
}
.vlc-btn--exit:hover{ background:var(--color-primary); border-color:var(--color-primary); transform:none; }
.vlc-btn--exit span{ white-space:nowrap; }
@media(max-width:520px){ .vlc-btn--exit span{ display:none; } .vlc-btn--exit{ width:38px; padding:0; } }
.vlc-time{
  font-size:.72rem; font-weight:600; color:rgba(251,243,236,.85);
  font-variant-numeric:tabular-nums; min-width:34px; text-align:center;
}
.vlc-time--dur{ color:rgba(251,243,236,.6); }
.vlc-progress{
  position:relative; flex:1; height:6px; border-radius:6px;
  background:rgba(251,243,236,.22); cursor:pointer;
}
.vlc-progress__buffer{ position:absolute; left:0; top:0; bottom:0; width:0%; background:rgba(251,243,236,.16); border-radius:6px; }
.vlc-progress__fill{
  position:absolute; left:0; top:0; bottom:0; width:0%;
  background:linear-gradient(90deg, var(--color-taupe), #E8D8C4); border-radius:6px;
}
.vlc-progress__knob{
  position:absolute; top:50%; left:0%; transform:translate(-50%,-50%);
  width:14px; height:14px; border-radius:50%; background:#E8D8C4;
  box-shadow:0 1px 6px rgba(0,0,0,.55); opacity:0; transition:opacity .2s;
}
.vlc-progress:hover .vlc-progress__knob,
.vlc-progress.is-dragging .vlc-progress__knob{ opacity:1; }

/* Indice de fermeture — masqué (la barre de contrôle occupe le bas, le bouton Fermer suffit) */
.video-lightbox__hint{ display:none; }
.video-lightbox__hint-hidden{
  position:absolute; bottom:clamp(1rem,3vh,2rem); left:50%; transform:translateX(-50%);
  z-index:5; pointer-events:none;
  font-size:.72rem; font-weight:500; letter-spacing:.04em;
  color:rgba(251,243,236,.5);
  align-items:center; gap:.5rem; white-space:nowrap;
}
.video-lightbox__hint kbd{
  font-family:var(--sans); font-size:.66rem; font-weight:700;
  background:rgba(251,243,236,.12); color:rgba(251,243,236,.8);
  border:1px solid rgba(251,243,236,.2); border-radius:5px;
  padding:.1rem .45rem;
}

@media(max-width:640px){
  .video-frame{ width:210px; height:373px; padding:9px; border-radius:38px; }
  .video-frame__media{ border-radius:30px; }
  .video-frame__shine{ inset:9px; border-radius:30px; }
  .video-frame__expand{ width:56px; height:56px; }
  .video-frame__hint{ font-size:.54rem; padding:.36rem .7rem; }
  .video-frame__sound{ width:36px; height:36px; top:14px; right:14px; }
  .video-lightbox__stage, .video-lightbox__media{ height:74vh; }
  .video-lightbox__brand{ display:none; }
  .video-lightbox__close span{ display:none; }
  .video-lightbox__close{ padding:.6rem; }
  .video-lightbox__hint{ font-size:.62rem; bottom:1rem; }
}

/* ============================================================
   GRILLES PROPRIÉTÉS 3×2
   ============================================================ */
.prop-section{
  padding-block: 100px;
  background: #E8D8C4;
  position: relative;
}
.prop-section + .prop-section{
  background: #fff;
}
.prop-section + .prop-section + .prop-section{
  background: #E8D8C4;
}
/* Ligne décorative dorée en haut de chaque section */
.prop-section::before{
  content:'';
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:60px; height:2px; background:var(--gold);
}
.prop-section__head{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 52px;
}
.prop-section__titles{ display:flex; flex-direction:column; gap:6px; }
.prop-section__sub{
  font-size: .62rem;
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .28em;
  font-family: var(--font-head);
  font-weight: 600;
}
.prop-section__title{
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 300;
  color: var(--rich-black);
  margin: 0;
  letter-spacing: -.01em;
}
.prop-section__all{
  display:inline-flex; align-items:center; gap:10px;
  font-size: .68rem;
  font-family: var(--font-head);
  color: var(--rich-black);
  text-decoration: none;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
  padding: 12px 24px;
  border: 1px solid rgba(58,42,48,.18);
  border-radius: 30px;
  transition: all .3s ease;
}
.prop-section__all:hover{
  background: var(--rich-black);
  color: #fff;
  border-color: var(--rich-black);
}
.prop-grid-3x2{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
/* ── CARTE PROPRIÉTÉ — flip au survol ── */
.pgc{
  perspective: 1000px;
  height: 420px;
  border-radius: 16px;
}
.pgc__link{
  display: block;
  width: 100%; height: 100%;
  text-decoration: none;
  color: inherit;
  position: relative;
  transform-style: preserve-3d;
  transition: transform .65s cubic-bezier(.4,0,.2,1);
  border-radius: 16px;
}
.pgc:hover .pgc__link{
  transform: rotateY(180deg);
}

/* FACE AVANT */
.pgc__front{
  position: absolute; inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 24px rgba(0,0,0,.10);
  display: flex; flex-direction: column;
}
.pgc__img{
  position: relative;
  flex: 1;
  overflow: hidden;
  background: #E8D8C4;
}
.pgc__img img{
  width:100%; height:100%;
  object-fit:cover;
  transition: transform 1s var(--ease);
}
.pgc__img-placeholder{ width:100%; height:100%; background:linear-gradient(135deg,#E8D8C4,#E8D8C4); }

/* Fallback élégant si une image ne charge pas (jamais d'icône cassée) */
.pgc__img--fallback,
.prop__media--fallback,
.prop-gallery__main--fallback{
  background:
    radial-gradient(ellipse at 30% 25%, rgba(195,183,176,.5) 0%, transparent 55%),
    linear-gradient(135deg, #E8D8C4 0%, #E8D8C4 55%, #E8D8C4 100%) !important;
  position:relative;
}
.pgc__img--fallback::after,
.prop__media--fallback::after,
.prop-gallery__main--fallback::after{
  content:'';
  position:absolute; inset:0;
  background:url("assets/images/logo.png") center/clamp(90px,38%,200px) no-repeat;
  opacity:.16;
  filter:grayscale(.2);
  pointer-events:none;
}
.pgc__badge{
  position: absolute; top:14px; left:14px;
  background: rgba(26,20,16,.82);
  color: #fff;
  font-size: .6rem;
  font-family: var(--font-head);
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 20px;
  backdrop-filter: blur(6px);
}
.pgc__badge--gold{ background: var(--gold); }

/* Bas de la face avant */
.pgc__body{
  padding: 16px 20px 20px;
  text-align: center;
  background: #fff;
  border-radius: 0 0 16px 16px;
}
.pgc__meta{
  display: flex; justify-content: center; gap: 8px;
  font-size: .65rem; color: var(--color-taupe);
  text-transform: uppercase; letter-spacing: .08em;
  margin: 0 0 5px;
}
.pgc__meta span + span::before{ content:'·'; margin-right:8px; }
.pgc__title{
  font-family: var(--font-head);
  font-size: 1rem; font-weight: 700;
  color: var(--rich-black);
  margin: 0 0 8px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pgc__price{
  display: flex; justify-content: center; align-items: baseline; gap: 8px;
}
.pgc__price strong{
  font-family: var(--font-head);
  font-size: 1.05rem; font-weight: 700;
  color: var(--gold);
}
.pgc__price em{ font-style:normal; font-size:.8rem; color:var(--color-taupe); }

/* FACE ARRIÈRE */
.pgc__back{
  position: absolute; inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: rotateY(180deg);
  border-radius: 16px;
  overflow: hidden;
  display: flex; flex-direction: column;
  justify-content: center; align-items: center;
  text-align: center;
  padding: 32px 28px;
  box-shadow: 0 4px 24px rgba(0,0,0,.18);

  /* Fond sombre avec image en arrière-plan */
  background: var(--rich-black);
  color: #fff;
}
.pgc__back::before{
  content:'';
  position:absolute; inset:0;
  background: linear-gradient(160deg, rgba(122,70,84,.55) 0%, rgba(58,28,36,.95) 65%);
  border-radius: 16px;
  z-index:0;
}
.pgc__back > *{ position: relative; z-index: 1; }

.pgc__back-badge{
  display: inline-block;
  background: var(--gold);
  color: #fff;
  font-size: .6rem;
  font-family: var(--font-head);
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 14px;
}
.pgc__back-title{
  font-family: var(--font-head);
  font-size: 1.15rem; font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
  line-height: 1.3;
}
.pgc__back-location{
  font-size: .72rem; color: rgba(255,255,255,.5);
  text-transform: uppercase; letter-spacing: .1em;
  margin-bottom: 20px;
}
.pgc__back-divider{
  width: 40px; height: 1px;
  background: var(--gold);
  margin: 0 auto 20px;
}
.pgc__back-specs{
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 12px 20px;
  margin-bottom: 22px;
  width: 100%;
}
.pgc__back-spec{
  display: flex; flex-direction: column; align-items: center; gap: 3px;
}
.pgc__back-spec strong{
  font-family: var(--font-head);
  font-size: 1.1rem; font-weight: 700;
  color: var(--gold);
  line-height: 1;
}
.pgc__back-spec span{
  font-size: .62rem; color: rgba(255,255,255,.5);
  text-transform: uppercase; letter-spacing: .08em;
}
.pgc__back-price{
  font-family: var(--font-head);
  font-size: 1.3rem; font-weight: 700;
  color: #fff;
  margin-bottom: 4px;
}
.pgc__back-price-sub{
  font-size: .75rem; color: rgba(255,255,255,.45);
  margin-bottom: 22px;
}
.pgc__back-cta{
  display: inline-block;
  padding: 10px 28px;
  background: var(--gold);
  color: #fff;
  font-family: var(--font-head);
  font-size: .7rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  text-decoration: none;
  border-radius: 30px;
  transition: background .2s;
}
.pgc__back-cta:hover{ background: var(--color-taupe); color:#561C24; }

.pgc-empty{
  text-align: center; font-family: var(--font-head);
  color: var(--color-taupe); padding: 40px 0; grid-column: 1/-1;
}
@media(max-width:1024px){ .prop-grid-3x2{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){  .prop-grid-3x2{ grid-template-columns:1fr; } .pgc{ height:380px; } }

/* ============================================================
   SECTION 2 — BRAND INTRODUCTION
   ============================================================ */
.intro{ padding-block:var(--section-y); }
.intro__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; }
.intro__copy .eyebrow{ margin-bottom:2rem; }
.intro__headline{ font-size:clamp(2.4rem,4.2vw,4.6rem); font-weight:300; color:var(--charcoal); }
.intro__headline em{ font-style:italic; color:var(--gold); }
.intro__text{ margin-top:2.2rem; max-width:48ch; font-size:1.05rem; font-weight:300; color:rgba(58,42,48,.72); line-height:1.85; }
.intro__sign{ margin-top:2.6rem; display:flex; align-items:center; gap:1.2rem; font-family:var(--serif); font-size:1.5rem; font-style:italic; color:var(--charcoal); }
.intro__sign span{ font-family:var(--sans); font-size:.7rem; font-weight:600; font-style:normal; letter-spacing:.16em; text-transform:uppercase; color:rgba(58,42,48,.5); line-height:1.5; }
.intro__media{ position:relative; }
.intro__media-main{ aspect-ratio:4/5; overflow:hidden; }
.intro__media-main img{ transition:transform 1.4s var(--ease); }
.intro__media:hover .intro__media-main img{ transform:scale(1.05); }
.intro__media-badge{
  position:absolute; left:-2.5rem; bottom:2.5rem;
  background:var(--charcoal); color:var(--warm-white); padding:1.8rem 2.2rem; max-width:200px;
}
.intro__media-badge strong{ font-family:var(--serif); font-size:2.6rem; font-weight:400; display:block; line-height:1; color:var(--gold-soft); }
.intro__media-badge small{ font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; opacity:.75; display:block; margin-top:.5rem; }
@media(max-width:840px){
  .intro__grid{ grid-template-columns:1fr; gap:3rem; }
  .intro__media-badge{ left:1.5rem; }
}

/* ============================================================
   SECTION 3 — FEATURED PROPERTIES / PROPERTY GRID
   ============================================================ */
.featured{ padding-block:var(--section-y); }
.properties-section{ padding-block:var(--section-y); }
.sec-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:clamp(2.5rem,5vw,4.5rem); flex-wrap:wrap; }
.sec-head__title{ font-size:clamp(2.2rem,3.6vw,3.6rem); font-weight:300; color:var(--charcoal); }
.sec-head__title em{ font-style:italic; color:var(--gold); }
.sec-head .eyebrow{ margin-bottom:1.2rem; }

.prop-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,2.5vw,2.5rem); }
.prop-grid--2{ grid-template-columns:repeat(2,1fr); }
.prop{ display:flex; flex-direction:column; cursor:pointer; background:var(--warm-white); }
.prop__media{ position:relative; aspect-ratio:3/3.6; overflow:hidden; }
.prop__media img{ transition:transform 1.3s var(--ease); }
.prop:hover .prop__media img{ transform:scale(1.07); }
.prop__tag{
  position:absolute; top:1.2rem; left:1.2rem; z-index:2;
  background:rgba(40,18,24,.55); backdrop-filter:blur(6px);
  color:var(--warm-white); font-size:.6rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; padding:.5rem .9rem;
}
.prop__tag--gold{ background:rgba(192,102,63,.85); }
.prop__fav{
  position:absolute; top:1.1rem; right:1.1rem; z-index:2;
  width:40px; height:40px; border-radius:50%;
  background:rgba(248,245,240,.18); backdrop-filter:blur(6px);
  border:1px solid rgba(248,245,240,.3);
  display:grid; place-items:center; color:var(--warm-white);
  transition:background .4s var(--ease), color .4s var(--ease);
}
.prop:hover .prop__fav{ background:var(--gold); border-color:var(--gold); }
.prop__view{
  position:absolute; inset:auto 0 0 0; z-index:2;
  background:linear-gradient(180deg,transparent,rgba(40,18,24,.78));
  color:var(--warm-white); padding:3rem 1.4rem 1.3rem;
  font-size:.7rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  display:flex; align-items:center; gap:.6rem;
  opacity:0; transform:translateY(12px); transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.prop:hover .prop__view{ opacity:1; transform:translateY(0); }
.prop__body{ padding:1.5rem .2rem 0; }
.prop__loc{ font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:.5rem; }
.prop__name{ font-family:var(--serif); font-size:1.7rem; font-weight:400; margin-top:.5rem; color:var(--color-primary); line-height:1.15; }
.prop__price{ font-family:var(--serif); font-size:1.35rem; font-style:italic; color:var(--gold-soft); margin-top:.7rem; }
.prop__meta{ display:flex; gap:1.6rem; margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid var(--line); font-size:.78rem; font-weight:500; color:rgba(58,42,48,.62); }
.prop__meta span{ display:flex; align-items:center; gap:.45rem; }
.prop__meta svg{ color:var(--gold); }
@media(max-width:980px){ .prop-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:620px){ .prop-grid{ grid-template-columns:1fr; } }

/* Pagination */
.prop-pagination{ display:flex; justify-content:center; gap:.5rem; margin-top:4rem; }
.prop-pagination a,.prop-pagination span{
  width:42px; height:42px; display:grid; place-items:center;
  font-size:.8rem; font-weight:600; border:1px solid var(--line);
  color:var(--charcoal); transition:all .3s;
}
.prop-pagination a:hover,.prop-pagination .current{ background:var(--charcoal); color:var(--warm-white); border-color:var(--charcoal); }

/* ============================================================
   SECTION 4 — LIFESTYLE MARRAKECH
   ============================================================ */
.lifestyle{ padding-block:var(--section-y); background:#fff; position:relative; }
.lifestyle__intro{ max-width:60ch; margin-bottom:clamp(2.5rem,5vw,4rem); }
.lifestyle__intro .eyebrow{ margin-bottom:1.4rem; }
.lifestyle__intro h2{ font-size:clamp(2.2rem,3.6vw,3.6rem); font-weight:300; color:var(--rich-black); }
.lifestyle__intro h2 em{ font-style:italic; color:var(--gold); }
.life-grid{ display:grid; gap:clamp(1rem,1.8vw,1.6rem); grid-template-columns:repeat(6,1fr); grid-auto-rows:220px; }
.life{ position:relative; overflow:hidden; cursor:pointer; display:flex; align-items:flex-end; color:var(--warm-white); }
.life img{ position:absolute; inset:0; z-index:0; transition:transform 1.4s var(--ease); filter:brightness(.82); }
.life:hover img{ transform:scale(1.08); }
.life::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,transparent 40%,rgba(40,18,24,.72)); }
.life__label{ position:relative; z-index:2; padding:1.6rem; }
.life__label small{ font-size:.62rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft); }
.life__label h3{ font-family:var(--serif); font-size:1.7rem; font-weight:400; margin-top:.3rem; }
.life--a{ grid-column:span 4; grid-row:span 2; }
.life--b{ grid-column:span 2; grid-row:span 1; }
.life--c{ grid-column:span 2; grid-row:span 1; }
.life--d{ grid-column:span 2; grid-row:span 1; }
.life--e{ grid-column:span 2; grid-row:span 1; }
.life--f{ grid-column:span 2; grid-row:span 1; }
@media(max-width:880px){
  .life-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:200px; }
  .life--a{ grid-column:span 2; grid-row:span 2; }
  .life--b,.life--c,.life--d,.life--e,.life--f{ grid-column:span 1; }
}

/* ============================================================
   SECTION 5 — INVESTMENT
   ============================================================ */
.invest{
  padding-block:var(--section-y);
  background: #561C24;
  color:var(--warm-white);
  position:relative; overflow:hidden;
}
/* Texture grain subtile */
.invest::before{
  content:''; position:absolute; inset:0; z-index:0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity:.35; pointer-events:none;
}
/* Ligne décorative gauche */
.invest::after{
  content:''; position:absolute; top:0; left:0; bottom:0; width:1px;
  background:linear-gradient(180deg, transparent, var(--gold), transparent);
  z-index:0;
}
.invest__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(3rem,7vw,7rem); align-items:center; }
.invest__copy .eyebrow{ margin-bottom:2rem; }
.invest__copy h2{ font-size:clamp(2.3rem,4vw,4.4rem); font-weight:300; }
.invest__copy h2 em{ font-style:italic; color:var(--gold-soft); }
.invest__copy p{ margin-top:1.8rem; max-width:46ch; color:rgba(248,245,240,.6); font-weight:300; font-size:1.05rem; line-height:1.85; }
.invest__copy .btn{ margin-top:2.6rem; }
.stats{ display:grid; grid-template-columns:1fr 1fr; border:1px solid rgba(192,102,63,.15); }
.stat{
  padding:2.6rem 2rem;
  border-right:1px solid rgba(192,102,63,.12);
  border-bottom:1px solid rgba(192,102,63,.12);
  transition: background .4s ease;
}
.stat:hover{ background: rgba(192,102,63,.06); }
.stat__num{ font-family:var(--serif); font-size:clamp(3rem,5vw,4.4rem); font-weight:400; line-height:1; color:var(--gold-soft); }
.stat__num sup{ font-size:.45em; vertical-align:super; }
.stat__label{ margin-top:1rem; font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(248,245,240,.5); }
.stat__desc{ margin-top:.6rem; font-size:.82rem; font-weight:300; color:rgba(248,245,240,.35); }
@media(max-width:840px){ .invest__grid{ grid-template-columns:1fr; gap:3rem; } }

/* ============================================================
   SECTION 6 — SEASONAL RENTALS
   ============================================================ */
.seasonal{ padding-block:var(--section-y); }
.season-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(1.2rem,2vw,2rem); }
.season{ position:relative; overflow:hidden; cursor:pointer; color:var(--warm-white); display:flex; align-items:flex-end; min-height:340px; }
.season img{ position:absolute; inset:0; z-index:0; transition:transform 1.4s var(--ease); filter:brightness(.86); }
.season:hover img{ transform:scale(1.06); }
.season::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(40,18,24,.05) 35%,rgba(40,18,24,.78)); }
.season__body{ position:relative; z-index:2; padding:2.2rem; width:100%; }
.season__body small{ font-size:.64rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft); }
.season__body h3{ font-family:var(--serif); font-size:clamp(1.7rem,2.6vw,2.6rem); font-weight:400; margin-top:.4rem; line-height:1.1; }
.season__body .price{ font-size:.85rem; font-weight:500; margin-top:.8rem; opacity:.9; }
.season__body .price b{ font-weight:600; color:var(--gold-soft); }
.season--tall{ grid-column:span 5; min-height:560px; }
.season--wide{ grid-column:span 7; }
.season--half{ grid-column:span 6; }
.season--third{ grid-column:span 4; }
@media(max-width:840px){
  .season--tall,.season--wide,.season--half,.season--third{ grid-column:span 12; min-height:380px; }
}

/* Location longue durée — card list */
.ld-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.5rem,2.5vw,2.5rem); }
.ld-card{ display:grid; grid-template-columns:1fr 1fr; background:var(--warm-white); border:1px solid var(--line); cursor:pointer; transition:box-shadow .4s var(--ease); }
.ld-card:hover{ box-shadow:0 20px 60px rgba(0,0,0,.1); }
.ld-card__media{ aspect-ratio:4/3; overflow:hidden; }
.ld-card__media img{ transition:transform 1.3s var(--ease); }
.ld-card:hover .ld-card__media img{ transform:scale(1.06); }
.ld-card__body{ padding:2rem; display:flex; flex-direction:column; justify-content:space-between; }
.ld-card__loc{ font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.ld-card__name{ font-family:var(--serif); font-size:1.55rem; font-weight:400; margin-top:.5rem; line-height:1.2; color:var(--color-primary); }
.ld-card__ref{ font-size:.74rem; color:rgba(58,42,48,.5); margin-top:.3rem; }
.ld-card__price{ font-family:var(--serif); font-size:1.2rem; font-style:italic; color:var(--gold-soft); margin-top:1rem; }
.ld-card__meta{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); font-size:.76rem; font-weight:500; color:rgba(58,42,48,.6); }
.ld-card__meta span{ display:flex; align-items:center; gap:.4rem; }
.ld-card__meta svg{ color:var(--gold); }
.ld-card__cta{ margin-top:1.4rem; }
@media(max-width:1100px){ .ld-card{ grid-template-columns:1fr; } .ld-card__media{ aspect-ratio:16/9; } }
@media(max-width:840px){ .ld-grid{ grid-template-columns:1fr; } }

/* ============================================================
   SECTION 7 — WHY CHOOSE US
   ============================================================ */
.why{ padding-block:var(--section-y); background:#E8D8C4; color:var(--rich-black); }
.why__head{ text-align:center; max-width:46ch; margin:0 auto clamp(3rem,5vw,4.5rem); }
.why__head .eyebrow{ justify-content:center; margin-bottom:1.4rem; }
.why__head h2{ font-size:clamp(2.2rem,3.8vw,4rem); font-weight:300; color:var(--rich-black); }
.why__head h2 em{ font-style:italic; color:var(--gold); }
.pillars{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.pillar{
  padding:3rem 2.4rem;
  border-right:1px solid rgba(58,42,48,.08);
  transition:background .4s ease, transform .4s ease;
  position:relative;
}
.pillar:first-child{ border-left:1px solid rgba(58,42,48,.08); }
.pillar:hover{ background:#fff; transform:translateY(-4px); box-shadow:0 20px 60px rgba(0,0,0,.07); z-index:1; }
.pillar__icon{
  width:48px; height:48px; display:grid; place-items:center;
  color:var(--gold); border:1px solid rgba(192,102,63,.3);
  border-radius:50%; margin-bottom:2rem;
  transition:background .3s, color .3s;
}
.pillar:hover .pillar__icon{ background:var(--gold); color:#fff; }
.pillar__num{ font-family:var(--serif); font-size:.85rem; font-style:italic; color:var(--gold); opacity:.6; margin-bottom:.8rem; }
.pillar h3{ font-family:var(--serif); font-size:1.5rem; font-weight:400; color:var(--rich-black); }
.pillar p{ margin-top:1rem; font-size:.9rem; font-weight:300; color:rgba(58,42,48,.58); line-height:1.8; }
@media(max-width:980px){ .pillars{ grid-template-columns:1fr 1fr; } .pillar{ border:1px solid var(--line-light); margin:-0.5px; } }
@media(max-width:560px){ .pillars{ grid-template-columns:1fr; } }

/* ============================================================
   SECTION 8 — TESTIMONIALS
   ============================================================ */
.testi{
  padding-block: 100px;
  background: #fff;
  border-top: 1px solid rgba(192,102,63,.12);
}
.testi__header{
  display:flex; flex-direction:column; align-items:center;
  text-align:center; margin-bottom:64px;
  gap:12px;
}
.testi__eyebrow{
  font-family:var(--font-head);
  font-size:.62rem; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold);
}
.testi__title{
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:300; color:var(--rich-black);
  margin:0;
}
.testi__title em{ font-style:italic; color:var(--gold); }

.testi-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border:1px solid rgba(58,42,48,.08);
}
.quote{
  padding:40px 36px 36px;
  display:flex; flex-direction:column;
  border-right:1px solid rgba(58,42,48,.08);
  transition:background .3s ease, box-shadow .3s ease;
  background:#fff;
}
.quote:last-child{ border-right:none; }
.quote:hover{ background:#E8D8C4; box-shadow:inset 0 3px 0 var(--gold); }

.quote__stars{
  color:var(--gold); font-size:.72rem; letter-spacing:.12em;
  margin-bottom:20px;
}
.quote__text{
  font-family:var(--serif);
  font-size:1.1rem; font-weight:400; font-style:italic;
  line-height:1.7; color:rgba(58,42,48,.78);
  flex:1; margin:0 0 28px;
}
.quote__by{
  display:flex; align-items:center; gap:14px;
  padding-top:24px;
  border-top:1px solid rgba(58,42,48,.08);
}
.quote__avatar{
  width:42px; height:42px; border-radius:50%;
  overflow:hidden; flex:0 0 auto;
}
.quote__avatar img{ width:100%; height:100%; object-fit:cover; }
.quote__name{ font-size:.88rem; font-weight:700; color:var(--rich-black); }
.quote__role{ font-size:.7rem; color:rgba(58,42,48,.45); margin-top:2px; }
@media(max-width:900px){
  .testi-grid{ grid-template-columns:1fr; }
  .quote{ border-right:none; border-bottom:1px solid rgba(58,42,48,.08); }
  .quote:last-child{ border-bottom:none; }
}

/* ============================================================
   SECTION CONTACT REFONTE
   ============================================================ */
.contact-new{ background:#E8D8C4; }

.contact-new__top{ padding-block:100px; }
.contact-new__grid{
  display:grid; grid-template-columns:1fr 1.1fr;
  gap:clamp(3rem,7vw,6rem); align-items:start;
}

.contact-new__eyebrow{
  display:block; font-family:var(--font-head);
  font-size:.62rem; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin-bottom:14px;
}
.contact-new__title{
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:300; color:var(--rich-black);
  margin:0 0 40px; line-height:1.1;
}
.contact-new__title em{ font-style:italic; color:var(--gold); }

.contact-new__address,
.contact-new__hours{
  display:flex; gap:16px; align-items:flex-start;
  margin-bottom:28px;
}
.contact-new__address svg,
.contact-new__hours svg{ color:var(--gold); flex-shrink:0; margin-top:3px; }
.contact-new__address div,
.contact-new__hours div{
  display:flex; flex-direction:column; gap:3px;
}
.contact-new__address strong,
.contact-new__hours strong{
  font-size:.8rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--rich-black); margin-bottom:4px;
}
.contact-new__address span,
.contact-new__hours span{
  font-size:.9rem; color:rgba(58,42,48,.6); line-height:1.6;
}

.contact-new__channels{
  display:flex; flex-direction:column; gap:12px;
  margin-top:36px; padding-top:36px;
  border-top:1px solid rgba(192,102,63,.2);
}
.contact-new__channel{
  display:inline-flex; align-items:center; gap:12px;
  font-size:.88rem; color:var(--rich-black);
  text-decoration:none; font-weight:500;
  transition:color .2s;
}
.contact-new__channel svg{ color:var(--gold); flex-shrink:0; }
.contact-new__channel:hover{ color:var(--gold); }

/* Google Maps */
.contact-new__map{
  height:420px;
  position:relative;
  overflow:hidden;
}
.contact-new__map iframe{
  position:absolute; inset:0;
  width:100%; height:100%;
  border:0; filter:saturate(.85) contrast(1.05);
}

@media(max-width:860px){
  .contact-new__grid{ grid-template-columns:1fr; }
  .contact-new__map{ height:320px; }
}

/* Ancien bloc .contact conservé pour les sous-pages */
.contact{ position:relative; color:var(--warm-white); overflow:hidden; }
.contact__bg{ position:absolute; inset:0; z-index:0; }
.contact__bg img{ filter:brightness(.4) saturate(.9); }
.contact__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(40,18,24,.85),rgba(40,18,24,.45)); }
.contact__inner{
  position:relative; z-index:2; padding-block:var(--section-y);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,7vw,7rem); align-items:center;
}
.contact__copy .eyebrow{ margin-bottom:2rem; }
.contact__copy h2{ font-size:clamp(2.4rem,4.4vw,4.6rem); font-weight:300; }
.contact__copy h2 em{ font-style:italic; color:var(--gold-soft); }
.contact__copy p{ margin-top:1.6rem; max-width:42ch; font-weight:300; color:rgba(248,245,240,.72); line-height:1.8; }
.contact__channels{ margin-top:2.6rem; display:flex; flex-direction:column; gap:1.1rem; }
.channel{ display:flex; align-items:center; gap:1.1rem; font-size:1rem; }
.channel svg{ color:var(--gold-soft); flex:0 0 auto; }
.channel b{ font-weight:600; }
.channel a{ transition:color .3s; }
.channel a:hover{ color:var(--gold-soft); }
.book{
  background:rgba(255,255,255,.97); color:var(--charcoal);
  padding:clamp(2.2rem,4vw,3.2rem); backdrop-filter:blur(12px);
  box-shadow:0 40px 100px -20px rgba(0,0,0,.6);
  border-radius:4px;
  border-top:3px solid var(--gold);
}
.book h3{ font-family:var(--serif); font-size:2rem; font-weight:400; }
.book p{ font-size:.9rem; color:rgba(58,42,48,.6); margin-top:.5rem; }
.book__form{ margin-top:2rem; display:grid; gap:1.2rem; }
.field{ display:flex; flex-direction:column; gap:.5rem; }
.field label{ font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.field input,.field select,.field textarea{
  border:none; border-bottom:1px solid var(--line); background:none; padding:.7rem 0;
  font-family:var(--sans); font-size:.98rem; color:var(--charcoal); outline:none;
  transition:border-color .4s var(--ease);
}
.field textarea{ resize:vertical; min-height:100px; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--gold); }
.field--row{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.book .btn{ margin-top:.6rem; justify-content:center; width:100%; }
@media(max-width:840px){ .contact__inner{ grid-template-columns:1fr; gap:3rem; } }

/* Contact page standalone */
.contact-page{ padding-block:var(--section-y); }
.contact-page__grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(3rem,7vw,7rem); align-items:start; }
.contact-page__info .eyebrow{ margin-bottom:2rem; }
.contact-page__info h2{ font-size:clamp(2.4rem,4vw,4.2rem); font-weight:300; color:var(--charcoal); }
.contact-page__info h2 em{ font-style:italic; color:var(--gold); }
.contact-page__info p{ margin-top:1.6rem; max-width:42ch; font-weight:300; color:rgba(58,42,48,.7); line-height:1.8; }
.contact-page__channels{ margin-top:2.6rem; display:flex; flex-direction:column; gap:1.2rem; }
.contact-page__channels .channel{ color:var(--charcoal); }
.contact-page__channels .channel a{ color:var(--charcoal); }
.contact-page__channels .channel a:hover{ color:var(--gold); }
.contact-page__map{ margin-top:3rem; aspect-ratio:16/9; background:var(--sand); overflow:hidden; position:relative; }
.contact-page__map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
@media(max-width:840px){ .contact-page__grid{ grid-template-columns:1fr; } }

/* ============================================================
   SECTION 10 — FOOTER
   ============================================================ */
.footer{ background:var(--rich-black); color:var(--color-background); padding-top:clamp(4rem,7vw,6rem); }
.footer__logotype{ display:inline-block; font-family:var(--serif); font-weight:600; font-size:2rem; line-height:1; color:var(--warm-white); text-decoration:none; margin-bottom:1.4rem; }
.footer__logo-img{ height:140px; width:auto; display:block; margin-bottom:1.2rem; }
@media(max-width:760px){ .footer__logo-img{ height:110px; } }
.footer__logotype em{ font-style:italic; font-weight:500; color:var(--dore-clair); }
.footer__col a:hover{ color:var(--dore-clair); }
.footer a{ transition:color .3s var(--ease); }
.footer__top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:3rem; padding-bottom:clamp(3rem,5vw,4.5rem); border-bottom:1px solid rgba(244,237,227,.18); }
.footer__brand .footer-logo{ height:72px; width:auto; object-fit:contain; filter:brightness(0) invert(1); opacity:.95; margin-bottom:2rem; display:block; }
.footer__brand small{ display:block; font-size:.56rem; font-weight:600; letter-spacing:.4em; text-indent:.4em; opacity:.65; margin-top:.3rem; }
.footer__brand p{ margin-top:1.6rem; max-width:34ch; font-weight:300; color:rgba(244,237,227,.7); line-height:1.8; font-size:.92rem; }
.footer__col h4{ font-size:.68rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--color-taupe); margin-bottom:1.4rem; }
.footer__col ul{ list-style:none; display:flex; flex-direction:column; gap:.85rem; }
.footer__col a{ font-size:.9rem; font-weight:300; color:rgba(253,238,239,.78); transition:color .3s; }
.footer__col a:hover{ color:var(--color-secondary); }
.footer__bottom{ display:flex; justify-content:space-between; align-items:center; gap:1.5rem; padding-block:2.2rem; flex-wrap:wrap; font-size:.78rem; font-weight:300; color:rgba(244,237,227,.5); }
.footer__insta{
  display:inline-flex; align-items:center; gap:8px;
  color:rgba(244,237,227,.7); font-size:.8rem;
  transition:color .25s;
}
.footer__insta svg{ flex-shrink:0; transition:color .25s; }
.footer__insta:hover{ color:var(--color-secondary); }
.footer__insta:hover svg{ color:var(--color-secondary); }
@media(max-width:880px){ .footer__top{ grid-template-columns:1fr 1fr; gap:2.5rem; } }
@media(max-width:520px){ .footer__top{ grid-template-columns:1fr; } }

/* ============================================================
   PROCESS / HOW IT WORKS
   ============================================================ */
.process{ padding-block:var(--section-y); background:var(--sand); }
.process__head{ text-align:center; max-width:50ch; margin:0 auto clamp(3rem,5vw,4.5rem); }
.process__head .eyebrow{ justify-content:center; margin-bottom:1.4rem; }
.process__head h2{ font-size:clamp(2.2rem,3.6vw,3.8rem); font-weight:300; color:var(--rich-black); }
.process__head h2 em{ font-style:italic; color:var(--gold); }
.process-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.step{ padding:2.6rem 2.2rem; border-left:1px solid rgba(58,42,48,.15); }
.step:last-child{ border-right:1px solid rgba(58,42,48,.15); }
.step__num{ font-family:var(--serif); font-size:3.5rem; font-weight:300; line-height:1; color:var(--gold); opacity:.6; }
.step h3{ font-family:var(--serif); font-size:1.5rem; font-weight:400; margin-top:.8rem; color:var(--rich-black); }
.step p{ margin-top:.9rem; font-size:.9rem; font-weight:300; color:rgba(40,18,24,.65); line-height:1.7; }
@media(max-width:840px){ .process-steps{ grid-template-columns:repeat(2,1fr); } .step{ border:1px solid rgba(58,42,48,.15); margin:-0.5px; } }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal{ opacity:0; transform:translateY(38px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.1s; }
.reveal[data-delay="2"]{ transition-delay:.2s; }
.reveal[data-delay="3"]{ transition-delay:.3s; }
@media(prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

/* WP alignments */
.alignleft{ float:left; margin-right:1.5rem; }
.alignright{ float:right; margin-left:1.5rem; }
.aligncenter{ margin-inline:auto; }

/* ============================================================
   RESPONSIVE — REFONTE COMPLÈTE MOBILE/TABLETTE
   Breakpoints : 1024 / 860 / 640 / 480
   ============================================================ */

/* ── NAV MOBILE ── */
@media(max-width:760px){
  .nav{ padding-inline:1rem; height:76px; }
  .nav.scrolled{ height:70px; }
  .nav__logo-img{ height:60px; width:auto; }
  .nav.scrolled .nav__logo-img{ height:54px; }
  .nav__right{ gap:.5rem; }
  .nav__menu span{ width:20px; }
  /* Accueil mobile : logo prominent */
  .nav.hero-nav{ height:86px; }
  .nav.hero-nav .nav__logo-img{ height:72px; }
  .nav.hero-nav.scrolled{ height:78px; }
  .nav.hero-nav.scrolled .nav__logo-img{ height:62px; }
}

/* ── HERO ── */
@media(max-width:860px){
  .hero__inner{
    padding-right:var(--gutter) !important;
    padding-bottom:clamp(12rem,30vw,18rem);
  }
  .hero__title{ font-size:clamp(2.4rem,8vw,4rem); }
}
@media(max-width:640px){
  .hero__inner{ padding-top:100px; }
  .hero__title{ font-size:clamp(2rem,9vw,3rem); line-height:1.1; }
  .hero__eyebrow{ font-size:.6rem; }
  .hero__divider{ margin:1.2rem 0; }
}

/* ── SEARCH BAR MOBILE ── */
@media(max-width:640px){
  .search{ padding-inline:.8rem; }
  .search__tabs{ overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .search__tabs::-webkit-scrollbar{ display:none; }
  .search__tab{ flex:0 0 auto; font-size:.6rem; padding:.7rem .85rem; }
  /* 2 colonnes sur mobile : [Quartier | Type de bien] puis [Rechercher] */
  .search__row{ flex-wrap:wrap; gap:0; padding:6px 6px 4px; }
  .search__field{ flex:1 1 calc(50% - 1px); min-width:0; border-right:none !important; border-bottom:1px solid rgba(255,255,255,.07); border-radius:10px; padding:.75rem .9rem; }
  .search__field:first-child{ border-right:1px solid rgba(255,255,255,.07) !important; border-radius:10px 0 0 10px; }
  .search__field:last-of-type{ border-radius:0 10px 10px 0; border-bottom:1px solid rgba(255,255,255,.07); }
  .search__submit{ flex:1 1 100%; justify-content:center; margin:4px 0 2px; font-size:.7rem; min-height:46px; }
}

/* ── BANDEAU AGENCE ── */
@media(max-width:860px){
  .agency-band__inner{ grid-template-columns:1fr; gap:2rem; padding:32px 24px; }
  .agency-band__media{ display:none; }
  .agency-band__ctas{ flex-direction:column; gap:10px; }
  .agency-band__btn{ width:100%; }
}

/* ── GRILLES PROPRIÉTÉS ── */
@media(max-width:1024px){
  .prop-grid-3x2{ grid-template-columns:repeat(2,1fr); gap:20px; }
  .pgc{ height:400px; }
}
@media(max-width:580px){
  .prop-grid-3x2{ grid-template-columns:1fr; gap:16px; }
  .pgc{ height:360px; }
}

/* ── SECTION PROP (titres + bouton) ── */
@media(max-width:640px){
  .prop-section__head{ flex-direction:column; align-items:flex-start; gap:1rem; }
  .prop-section__title{ font-size:clamp(1.6rem,6vw,2.4rem); }
  .prop-section{ padding-block:60px; }
}

/* ── LIFESTYLE GRID ── */
@media(max-width:860px){
  .life-grid{
    grid-template-areas:
      "a a"
      "b c"
      "d d"
      "e f" !important;
    grid-template-columns:1fr 1fr !important;
    grid-template-rows:auto !important;
  }
  .life--a,.life--d{ grid-column:span 2; aspect-ratio:16/8; }
  .life--b,.life--c,.life--e,.life--f{ aspect-ratio:1/1; }
}
@media(max-width:480px){
  .life-grid{
    display:flex !important;
    flex-direction:column;
    gap:10px;
  }
  .life{ height:200px; grid-column:unset !important; grid-row:unset !important; }
}

/* ── INVEST ── */
@media(max-width:860px){
  .invest__grid{ grid-template-columns:1fr; gap:2.5rem; }
  .stats{ grid-template-columns:1fr 1fr; }
}
@media(max-width:480px){
  .stats{ grid-template-columns:1fr 1fr; gap:1px; }
  .stat{ padding:1.4rem 1rem; }
  .stat__num{ font-size:2.4rem; }
}

/* ── TESTIMONIALS ── */
@media(max-width:860px){
  .testi-grid{ grid-template-columns:1fr; }
  .quote{ border-right:none !important; border-bottom:1px solid var(--line); }
}

/* ── CONTACT SECTION ── */
@media(max-width:860px){
  .contact-new__grid{ grid-template-columns:1fr; gap:2.5rem; }
  .contact-new__top{ padding-block:60px; }
  .contact-new__map{ height:280px; }
}

/* ── FORMULAIRES — améliorations mobile ── */
@media(max-width:640px){
  .book{ padding:1.6rem 1.2rem; border-radius:16px; }
  .book h3{ font-size:1.2rem; }
  .field--row{ flex-direction:column; gap:0; }
  .field{ padding:.7rem 0; }
  .field input,
  .field select,
  .field textarea{
    font-size:16px; /* évite le zoom iOS */
    border-radius:10px;
    padding:.75rem 1rem;
    background:#E8D8C4;
    border:1.5px solid rgba(192,102,63,.15);
    width:100%;
    font-family:var(--sans);
  }
  .field input:focus,
  .field select:focus,
  .field textarea:focus{
    outline:none;
    border-color:var(--gold);
    background:#fff;
  }
  .field label{ font-size:.72rem; font-weight:600; letter-spacing:.06em; margin-bottom:.4rem; display:block; }
  .btn--gold,
  .filter-panel__apply{
    width:100%; justify-content:center; padding:1rem 1.4rem; font-size:.75rem;
  }
}

/* ── CONTACT PAGE ── */
@media(max-width:640px){
  .contact-page__grid{ grid-template-columns:1fr; }
  .contact-page__map{ height:220px; }
  .contact-page__channels{ gap:.8rem; }
  .channel{ font-size:.85rem; }
}

/* ── SEARCH TABS : labels courts sur mobile ── */
.tab-short{ display:none; }
@media(max-width:640px){
  .tab-full{ display:none; }
  .tab-short{ display:inline; }
  .search__tab{ font-size:.62rem; padding:.75rem .7rem; }
}

/* ── LIFESTYLE GRID : fix chevauchements ── */
.life__label{
  position:absolute; bottom:0; left:0; right:0;
  padding:1.2rem 1rem .9rem;
  background:linear-gradient(to top, rgba(26,20,16,.8) 0%, transparent 100%);
  z-index:2;
}
.life__label small{
  display:block;
  font-size:.56rem; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold-soft);
  margin-bottom:.3rem;
}
.life__label h3{
  font-family:var(--serif);
  font-size:clamp(1.15rem, 2.2vw, 1.6rem);
  font-weight:600; color:#fff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
@media(max-width:640px){
  .life__label h3{ font-size:.95rem; white-space:normal; }
  .life__label small{ font-size:.5rem; }
  .life{ height:180px; }
}

/* ── FILTER BAR MOBILE ── */
@media(max-width:640px){
  .filter-bar__wrap{ padding-block:.7rem; gap:.8rem; flex-wrap:wrap; }
  .filter-bar__trigger{ font-size:.66rem; padding:.5rem 1.1rem; }
  .filter-bar__tags{ display:none; }
  .filter-panel__grid{ grid-template-columns:1fr 1fr; }
  .filter-panel__actions{ flex-direction:column; align-items:stretch; }
  .filter-panel__apply{ text-align:center; justify-content:center; }
}
@media(max-width:400px){
  .filter-panel__grid{ grid-template-columns:1fr; }
}

/* ── FOOTER ── */
@media(max-width:640px){
  .footer__top{ grid-template-columns:1fr; gap:2rem; padding-block:2.5rem; }
  .footer-logo{ height:52px; }
  .footer__col h4{ font-size:.62rem; margin-bottom:.8rem; }
  .footer__bottom{
    flex-direction:column; text-align:center;
    gap:.8rem; padding-block:1.4rem; font-size:.7rem;
  }
}

/* ── PAGE HERO (sous-pages) ── */
@media(max-width:860px){
  .page-hero{ min-height:55vh; }
  .page-hero__title{ font-size:clamp(2rem,7vw,3.5rem); }
  .page-hero__sub{ font-size:.88rem; max-width:36ch; }
  .page-hero__inner{ padding-bottom:3rem; }
}
@media(max-width:480px){
  .page-hero{ min-height:50vh; }
  .page-hero__title{ font-size:clamp(1.8rem,9vw,2.8rem); }
  .page-hero__sub{ display:none; }
}

/* ── SINGLE PROPRIÉTÉ ── */
@media(max-width:640px){
  .prop-single__gallery{ height:260px; }
  .prop-single__thumbs{ display:none; }
  .prop-single__price{ font-size:1.6rem; }
  .prop-single__sheet{ grid-template-columns:1fr 1fr; }
}

/* ── HAMBURGER / DRAWER MOBILE ── */
#mobileDrawer{
  position:fixed; inset:0; z-index:99998;
  pointer-events:none;
}
#mobileDrawer.is-open{ pointer-events:all; }

.mobile-drawer__overlay{
  position:absolute; inset:0;
  background:rgba(26,20,16,.55);
  opacity:0; transition:opacity .3s ease;
  /* overlay EN PREMIER dans le DOM = naturellement derrière .inner */
}
#mobileDrawer.is-open .mobile-drawer__overlay{ opacity:1; }

.mobile-drawer__inner{
  position:absolute; top:0; left:0;
  width:min(300px, 82vw); height:100%;
  background:var(--color-background);
  border-right:1px solid rgba(192,102,63,.2);
  display:flex; flex-direction:column;
  padding:0;
  transform:translateX(-100%);
  transition:transform .38s cubic-bezier(.16,1,.3,1);
  overflow-y:auto;
  overflow-x:hidden;
}
#mobileDrawer.is-open .mobile-drawer__inner{ transform:translateX(0); }

/* Header du drawer avec logo */
.mobile-drawer__header{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.2rem 1.4rem;
  border-bottom:1px solid rgba(192,102,63,.12);
}
.mobile-drawer__logo{
  height:60px; width:auto; object-fit:contain;
}
.mobile-drawer__logotype{
  font-family:var(--serif); font-weight:600; font-size:1.35rem; line-height:1; color:var(--charcoal);
}
.mobile-drawer__logotype em{ font-style:italic; font-weight:500; color:var(--terracotta); }

.mobile-drawer__close{
  background:rgba(192,102,63,.06);
  border:1px solid rgba(192,102,63,.18);
  border-radius:8px;
  color:var(--color-primary);
  cursor:pointer;
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, color .2s;
  flex-shrink:0;
}
.mobile-drawer__close:hover{ background:rgba(192,102,63,.14); color:var(--color-primary); }

.mobile-drawer__links{
  display:flex; flex-direction:column; gap:0;
  flex:1;
  padding:.6rem 0;
}
.mobile-drawer__links a{
  font-family:var(--sans);
  font-size:1rem; font-weight:600;
  color:rgba(58,42,48,.78);
  padding:.9rem 1.4rem;
  text-decoration:none;
  display:flex; align-items:center; gap:.7rem;
  border-left:2px solid transparent;
  transition:color .2s, background .2s, border-color .2s;
  letter-spacing:.01em;
}
.mobile-drawer__links a:hover,
.mobile-drawer__links a.current{
  color:var(--color-primary);
  background:rgba(192,102,63,.08);
  border-left-color:var(--gold);
}

.mobile-drawer__contact{
  display:flex; flex-direction:column; gap:.5rem;
  margin:.4rem 1rem 1.4rem;
  padding:1rem 1.2rem;
  background:var(--color-secondary);
  border:1px solid rgba(192,102,63,.15);
  border-radius:12px;
}
.mobile-drawer__contact a{
  font-size:.8rem; font-weight:500;
  color:rgba(58,42,48,.6); text-decoration:none;
  transition:color .2s;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.mobile-drawer__contact a:first-child{
  font-size:.9rem; color:var(--color-primary); font-weight:700;
}
.mobile-drawer__contact a:hover{ color:var(--color-primary); }

/* ── CORRECTIONS GLOBALES TOUCH ── */
@media(max-width:860px){
  /* Désactiver le flip 3D sur touch (difficile à déclencher) */
  .pgc__link:hover .pgc__front{ transform:none; }
  .pgc__link:hover .pgc__back{ transform:rotateY(180deg); }
  /* Tap zone minimum 44px */
  .btn, .nav__menu, .search__submit, .filter-bar__trigger{ min-height:44px; }
  /* Sections moins hautes sur mobile */
  :root{ --section-y: clamp(4rem, 8vw, 8rem); }
}

/* ── TYPOGRAPHY SCALE MOBILE ── */
@media(max-width:480px){
  .display{ font-size:clamp(1.8rem,8vw,2.8rem) !important; }
  .sec-head__title{ font-size:clamp(1.6rem,7vw,2.4rem); }
  p{ font-size:.92rem; }
}

/* ============================================================
   ============================================================
   NAJET AGENT SUR — SYSTEME DE DESIGN « TERRE D'AGAFAY »
   Composants de l'accueil et des pages (prefixe .njt-)
   Mobile-first. Toutes les couleurs via les variables de :root.
   ============================================================
   ============================================================ */

.njt-wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }

/* -- Primitives typographiques -- */
.njt-eyebrow{
  display:inline-block; font-family:var(--sans);
  font-size:.7rem; font-weight:600; letter-spacing:.34em;
  text-transform:uppercase; color:var(--terracotta);
  margin-bottom:1.4rem; position:relative; padding-left:2.6rem;
}
.njt-eyebrow::before{
  content:""; position:absolute; left:0; top:.45em;
  width:2rem; height:1px; background:var(--dore);
}
.njt-eyebrow--light{ color:var(--dore-clair); }
.njt-eyebrow--light::before{ background:var(--dore); }

.njt-h2{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(2rem, 5vw, 3.4rem); line-height:1.08;
  letter-spacing:-.01em; color:var(--charcoal);
}
.njt-h2 em{ font-style:italic; color:var(--terracotta); }
.njt-h2--light{ color:var(--warm-white); }
.njt-h2--light em{ color:var(--dore-clair); }

.njt-sec-head{ max-width:42rem; margin-bottom:clamp(2.5rem,5vw,4.5rem); }
.njt-sec-head--row{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:2rem; max-width:none; flex-wrap:wrap;
}

.njt-link{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--sans); font-size:.72rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--terracotta);
  text-decoration:none; padding-bottom:.4rem; border-bottom:1px solid var(--line);
  transition:gap .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.njt-link span{ transition:transform .3s var(--ease); }
.njt-link:hover{ color:var(--charcoal); border-color:var(--terracotta); gap:1rem; }
.njt-link:hover span{ transform:translateX(4px); }

/* -- Boutons -- */
.njt-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.7rem;
  font-family:var(--sans); font-size:.74rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; text-decoration:none;
  padding:1.05rem 2.2rem; border:1px solid transparent; border-radius:var(--r-pill);
  cursor:pointer; transition:all .35s var(--ease); line-height:1;
}
.njt-btn span{ transition:transform .3s var(--ease); display:inline-block; }
.njt-btn:hover span{ transform:translateX(4px); }
.njt-btn--solid{ background:var(--terracotta); color:#E8D8C4; border-color:var(--terracotta); }
.njt-btn--solid:hover{ background:var(--charcoal); border-color:var(--charcoal); color:var(--warm-white); }
.njt-btn--ghost{ background:transparent; color:var(--warm-white); border-color:rgba(247,240,228,.5); }
.njt-btn--ghost:hover{ background:var(--warm-white); color:var(--charcoal); border-color:var(--warm-white); }
.njt-btn--full{ width:100%; }
.njt-btn--wa{ background:#1f7a52; color:#eafaf2; border-color:#1f7a52; margin-top:1.8rem; }
.njt-btn--wa:hover{ background:#155f3f; border-color:#155f3f; }

/* ============================================================
   HERO
   ============================================================ */
.njt-hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  overflow:hidden; color:var(--warm-white); padding:6rem var(--gutter) 7rem;
}
.njt-hero__bg{ position:absolute; inset:0; z-index:0; }
.njt-hero__bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:njtKenburns 18s ease-out forwards; }
@keyframes njtKenburns{ to{ transform:scale(1); } }
.njt-hero__veil{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(120% 90% at 50% 30%, rgba(26,20,16,.30) 0%, rgba(26,20,16,.62) 70%, rgba(26,20,16,.82) 100%),
    linear-gradient(180deg, rgba(26,20,16,.55) 0%, rgba(26,20,16,.15) 40%, rgba(26,20,16,.78) 100%);
}
.njt-hero__inner{ position:relative; z-index:2; max-width:54rem; }
.njt-hero__eyebrow{
  font-family:var(--sans); font-size:.72rem; font-weight:600;
  letter-spacing:.4em; text-transform:uppercase; color:var(--dore-clair);
}
.njt-hero__title{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(3.4rem, 11vw, 8rem); line-height:.98; letter-spacing:-.015em;
  margin:1.4rem 0 .6rem; color:#E8D8C4;
}
.njt-hero__title em{ font-style:italic; color:var(--dore-clair); }
.njt-hero__tagline{
  font-family:var(--sans); font-size:clamp(.8rem,2.2vw,1.05rem);
  font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:#E8D8C4;
}
.njt-hero__tagline span{ color:var(--dore); margin:0 .2rem; }
.njt-hero__line{ width:60px; height:1px; background:var(--dore); margin:2rem auto; opacity:.8; }
.njt-hero__sub{
  font-family:var(--serif); font-size:clamp(1.15rem,2.4vw,1.6rem);
  font-weight:400; font-style:italic; line-height:1.5; color:#E8D8C4;
  max-width:38rem; margin:0 auto 2.6rem;
}
.njt-hero__ctas{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.njt-hero__scroll{
  position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%);
  z-index:2; width:26px; height:42px; border:1px solid rgba(247,240,228,.45);
  border-radius:14px; display:flex; justify-content:center; padding-top:8px;
}
.njt-hero__scroll span{ width:3px; height:8px; border-radius:2px; background:var(--dore-clair); animation:njtScroll 1.8s var(--ease) infinite; }
@keyframes njtScroll{ 0%{ opacity:0; transform:translateY(-4px);} 40%{opacity:1;} 80%{opacity:0; transform:translateY(10px);} 100%{opacity:0;} }

/* ============================================================
   EXPERTISE
   ============================================================ */
.njt-expertise{ padding-block:var(--section-y); background:var(--color-background); }
.njt-expertise__grid{ display:grid; grid-template-columns:1fr; gap:clamp(2.5rem,5vw,5rem); align-items:center; }
.njt-expertise__copy p{ color:rgba(43,33,26,.74); font-size:1.02rem; line-height:1.8; margin-top:1.4rem; max-width:36rem; }
.njt-expertise__stats{ display:grid; grid-template-columns:1fr 1fr; background:var(--rich-black); border:none; box-shadow:0 34px 80px -38px rgba(26,20,16,.65); }
.njt-stat{ background:transparent; padding:2.6rem 1.4rem; text-align:center; border-right:1px solid rgba(221,190,134,.16); border-bottom:1px solid rgba(221,190,134,.16); }
.njt-stat:nth-child(2n){ border-right:none; }
.njt-stat:nth-last-child(-n+2){ border-bottom:none; }
.njt-stat strong{ display:block; font-family:var(--serif); font-weight:600; font-size:clamp(2.6rem,5vw,3.7rem); line-height:1; color:var(--dore-clair); font-variant-numeric:lining-nums; }
.njt-stat__small{ font-size:.5em; color:var(--dore); }
.njt-stat > span{ display:block; margin-top:.7rem; font-family:var(--sans); font-size:.64rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:rgba(244,237,227,.55); }

/* ============================================================
   SERVICES
   ============================================================ */
.njt-services{ padding-block:var(--section-y); background:var(--color-secondary); }
.njt-services__grid{ display:grid; grid-template-columns:1fr; gap:1.6rem; }
.njt-service{
  position:relative; display:block; text-decoration:none; overflow:hidden;
  background:var(--warm-white); border:1px solid var(--line);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.njt-service__media{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.njt-service__media img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.njt-service:hover{ transform:translateY(-6px); box-shadow:0 24px 60px -28px rgba(26,20,16,.45); }
.njt-service:hover .njt-service__media img{ transform:scale(1.07); }
.njt-service__body{ padding:1.8rem 1.8rem 2rem; position:relative; }
.njt-service__num{
  position:absolute; top:-1.7rem; right:1.6rem; font-family:var(--serif);
  font-size:2.6rem; font-style:italic; color:var(--dore); opacity:.9;
}
.njt-service__title{ font-family:var(--serif); font-weight:500; font-size:1.7rem; color:var(--charcoal); margin-bottom:.7rem; }
.njt-service__desc{ font-size:.92rem; line-height:1.7; color:rgba(43,33,26,.68); margin-bottom:1.3rem; }
.njt-service__cta{ font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--terracotta); display:inline-flex; gap:.5rem; align-items:center; }
.njt-service__cta span{ transition:transform .3s var(--ease); }
.njt-service:hover .njt-service__cta span{ transform:translateX(5px); }

/* ============================================================
   BIENS EN VEDETTE
   ============================================================ */
.njt-featured{ padding-block:var(--section-y); background:var(--color-background); }
.njt-featured__grid{ margin-top:1rem; }
.njt-empty{
  text-align:center; max-width:34rem; margin:1rem auto 0;
  padding:clamp(3rem,7vw,5.5rem) 2rem; border:1px solid var(--line);
  background:var(--warm-white);
}
.njt-empty__mark{ display:block; font-size:1.6rem; color:var(--dore); margin-bottom:1.2rem; letter-spacing:.3em; }
.njt-empty__title{ font-family:var(--serif); font-weight:500; font-size:clamp(1.6rem,4vw,2.3rem); color:var(--charcoal); margin-bottom:1rem; }
.njt-empty__text{ color:rgba(43,33,26,.66); line-height:1.7; margin-bottom:2rem; }

/* ============================================================
   QUI SOMMES-NOUS
   ============================================================ */
.njt-about{ padding-block:var(--section-y); background:var(--color-secondary); }
.njt-about__grid{ display:grid; grid-template-columns:1fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:center; }
.njt-about__media{ position:relative; }
.njt-about__frame{ position:absolute; left:-16px; top:-16px; width:58%; height:62%; background:var(--ocre); opacity:.20; border-radius:var(--r-l); z-index:0; }
.njt-about__media img{ position:relative; z-index:1; width:100%; aspect-ratio:4/5; object-fit:cover; box-shadow:0 30px 70px -34px rgba(26,20,16,.5); }
.njt-about__badge{
  position:absolute; bottom:-1px; right:-1px; background:var(--rich-black); color:var(--warm-white);
  padding:1.2rem 1.6rem; font-family:var(--serif); font-size:1.15rem; line-height:1.1; text-align:right;
}
.njt-about__badge span{ display:block; font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--dore-clair); font-family:var(--sans); font-weight:600; margin-bottom:.3rem; }
.njt-about__copy p{ color:rgba(43,33,26,.74); font-size:1.02rem; line-height:1.8; margin-top:1.4rem; max-width:36rem; }
.njt-about__copy .njt-link{ margin-top:2rem; }

/* ============================================================
   CONTACT + MAP
   ============================================================ */
.njt-contact{ background:var(--rich-black); color:var(--warm-white); padding-top:var(--section-y); }
.njt-contact__grid{ display:grid; grid-template-columns:1fr; gap:clamp(2.5rem,5vw,4.5rem); padding-bottom:clamp(3rem,6vw,5rem); }
.njt-contact__lead{ color:rgba(247,240,228,.7); line-height:1.7; margin:1.4rem 0 2rem; max-width:30rem; }
.njt-contact__list{ list-style:none; display:flex; flex-direction:column; gap:1.1rem; }
.njt-contact__list li{ display:flex; align-items:center; gap:1rem; }
.njt-contact__ico{
  flex:none; width:42px; height:42px; display:grid; place-items:center;
  border:1px solid rgba(221,190,134,.35); border-radius:50%; color:var(--dore-clair); font-size:1.05rem;
}
.njt-contact__list a, .njt-contact__list span:not(.njt-contact__ico){ color:var(--warm-white); text-decoration:none; font-size:1rem; letter-spacing:.01em; transition:color .3s var(--ease); }
.njt-contact__list a:hover{ color:var(--dore-clair); }

/* Formulaire */
.njt-form{ background:var(--warm-white); color:var(--charcoal); padding:clamp(1.8rem,4vw,2.8rem); }
.njt-form__title{ font-family:var(--serif); font-weight:500; font-size:1.8rem; color:var(--charcoal); margin-bottom:1.6rem; }
.njt-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.njt-field{ margin-bottom:1.1rem; display:flex; flex-direction:column; }
.njt-field label{ font-family:var(--sans); font-size:.64rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(43,33,26,.6); margin-bottom:.5rem; }
.njt-field input, .njt-field select, .njt-field textarea{
  font-family:var(--sans); font-size:.95rem; color:var(--charcoal);
  padding:.85rem 1rem; border:1px solid var(--line); background:var(--color-background);
  border-radius:2px; transition:border-color .3s var(--ease), box-shadow .3s var(--ease); width:100%;
}
.njt-field input:focus, .njt-field select:focus, .njt-field textarea:focus{
  outline:none; border-color:var(--terracotta); box-shadow:0 0 0 3px rgba(192,102,63,.12);
}
.njt-field textarea{ resize:vertical; }
.njt-form__note{ font-size:.72rem; color:rgba(43,33,26,.5); margin-top:1rem; line-height:1.5; }

/* Carte */
.njt-map{ height:clamp(320px,40vw,460px); width:100%; filter:grayscale(.25) sepia(.12); }
.njt-map iframe{ display:block; }

/* ============================================================
   BREAKPOINTS (mobile-first -> tablette / desktop)
   ============================================================ */
@media(min-width:720px){
  .njt-services__grid{ grid-template-columns:1fr 1fr; gap:2rem; }
  .njt-field-row{ gap:1.2rem; }
}
@media(min-width:980px){
  .njt-expertise__grid{ grid-template-columns:1.2fr .8fr; }
  .njt-expertise__stats{ grid-template-columns:1fr 1fr; }
  .njt-about__grid{ grid-template-columns:.9fr 1.1fr; }
  .njt-contact__grid{ grid-template-columns:1fr 1fr; align-items:start; }
}

/* ============================================================
   NAJET — HERO DE PAGE INTERNE (.njt-phero) + sections pages
   ============================================================ */
.njt-phero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  overflow:hidden; color:var(--warm-white); padding:7rem 0 4rem;
}
.njt-phero__bg{ position:absolute; inset:0; z-index:0; }
.njt-phero__bg img{ width:100%; height:100%; object-fit:cover; }
.njt-phero__veil{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(26,20,16,.45) 0%, rgba(26,20,16,.30) 45%, rgba(26,20,16,.80) 100%);
}
.njt-phero__inner{ position:relative; z-index:2; width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.njt-phero__eyebrow{
  display:inline-block; font-family:var(--sans); font-size:.7rem; font-weight:600;
  letter-spacing:.34em; text-transform:uppercase; color:var(--dore-clair); margin-bottom:1.2rem;
}
.njt-phero h1{
  font-family:var(--serif); font-weight:500; line-height:1.02; letter-spacing:-.01em;
  font-size:clamp(2.6rem,7vw,5.2rem); color:#E8D8C4; max-width:18ch;
}
.njt-phero h1 em{ font-style:italic; color:var(--dore-clair); }
.njt-phero__sub{
  font-family:var(--serif); font-style:italic; font-size:clamp(1.1rem,2.2vw,1.5rem);
  color:#E8D8C4; margin-top:1.2rem; max-width:46ch; line-height:1.5;
}

/* Section grille de biens */
.njt-listing{ padding-block:clamp(3rem,6vw,5.5rem); background:var(--color-background); }
.njt-listing__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; margin-bottom:2.5rem; }
.njt-listing__count{ font-family:var(--serif); font-weight:500; font-size:clamp(1.4rem,3vw,2rem); color:var(--charcoal); }
.njt-listing__count em{ font-style:normal; color:var(--terracotta); }

/* Pagination */
.njt-pagination{ display:flex; gap:.5rem; justify-content:center; margin-top:3rem; flex-wrap:wrap; }
.njt-pagination a, .njt-pagination span{
  min-width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--sans); font-size:.8rem; font-weight:600; text-decoration:none;
  border:1px solid var(--line); color:var(--charcoal); transition:all .3s var(--ease);
}
.njt-pagination a:hover{ border-color:var(--terracotta); color:var(--terracotta); }
.njt-pagination .current{ background:var(--terracotta); border-color:var(--terracotta); color:#E8D8C4; }

/* Bande de prestations / services (conciergerie) */
.njt-pills{ padding-block:clamp(3rem,6vw,5rem); background:var(--color-secondary); }
.njt-pills__grid{ display:grid; grid-template-columns:1fr; gap:1.2rem; margin-top:2.5rem; }
.njt-pill{ background:var(--warm-white); border:1px solid var(--line); padding:1.8rem; transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.njt-pill:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -24px rgba(26,20,16,.4); }
.njt-pill__ico{ font-size:1.5rem; color:var(--terracotta); display:block; margin-bottom:.9rem; }
.njt-pill h3{ font-family:var(--serif); font-weight:500; font-size:1.3rem; color:var(--charcoal); margin-bottom:.5rem; }
.njt-pill p{ font-size:.9rem; line-height:1.65; color:rgba(43,33,26,.66); }

/* Galerie événementiel (mosaïque) */
.njt-gallery{ padding-block:clamp(3rem,6vw,5.5rem); background:var(--color-background); }
.njt-gallery__grid{ display:grid; grid-template-columns:1fr; gap:1rem; margin-top:2.5rem; }
.njt-tile{ position:relative; overflow:hidden; display:block; text-decoration:none; aspect-ratio:4/3; }
.njt-tile img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.njt-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 35%, rgba(26,20,16,.78) 100%); }
.njt-tile:hover img{ transform:scale(1.06); }
.njt-tile__label{ position:absolute; left:1.4rem; bottom:1.2rem; z-index:2; color:var(--warm-white); }
.njt-tile__label small{ display:block; font-family:var(--sans); font-size:.6rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--dore-clair); margin-bottom:.3rem; }
.njt-tile__label h3{ font-family:var(--serif); font-weight:500; font-size:1.5rem; line-height:1.1; }

/* Bandeau CTA pleine largeur */
.njt-cta{ position:relative; overflow:hidden; padding-block:clamp(4rem,8vw,7rem); text-align:center; color:var(--warm-white); }
.njt-cta__bg{ position:absolute; inset:0; z-index:0; }
.njt-cta__bg img{ width:100%; height:100%; object-fit:cover; }
.njt-cta__veil{ position:absolute; inset:0; z-index:1; background:rgba(26,20,16,.72); }
.njt-cta__inner{ position:relative; z-index:2; max-width:42rem; margin-inline:auto; padding-inline:var(--gutter); }
.njt-cta h2{ font-family:var(--serif); font-weight:500; font-size:clamp(2rem,5vw,3.2rem); line-height:1.1; margin-bottom:1.2rem; }
.njt-cta h2 em{ font-style:italic; color:var(--dore-clair); }
.njt-cta p{ color:rgba(247,240,228,.78); line-height:1.7; margin-bottom:2rem; }
.njt-cta__ctas{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* Info événementiel */
.njt-info{ padding-block:clamp(3rem,6vw,5rem); background:var(--color-secondary); }
.njt-info__grid{ display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,3.5rem); align-items:center; }
.njt-info__copy p{ color:rgba(43,33,26,.74); font-size:1.02rem; line-height:1.8; margin-top:1.2rem; max-width:40rem; }

@media(min-width:720px){
  .njt-pills__grid{ grid-template-columns:1fr 1fr; gap:1.6rem; }
  .njt-gallery__grid{ grid-template-columns:repeat(2,1fr); }
}
@media(min-width:980px){
  .njt-pills__grid{ grid-template-columns:repeat(3,1fr); }
  .njt-gallery__grid{ grid-template-columns:repeat(3,1fr); }
  .njt-info__grid{ grid-template-columns:1fr 1fr; }
}

/* ============================================================
   NAJET — ESTHETIQUE ARRONDIE (override global, douce et premium)
   ============================================================ */

/* Cartes services */
.njt-service{ border-radius:var(--r-l); }

/* Cartes biens (flip cards) + leurs faces — pas d'overflow sur le parent 3D */
.pgc{ border-radius:var(--r-m); }
.pgc__front,
.pgc__back{ border-radius:var(--r-m); overflow:hidden; }
.pgc__img{ border-radius:0; }

/* Photos & medias de contenu */
.njt-about__media img{ border-radius:var(--r-l); }
.njt-about__badge{ border-radius:var(--r-m); }
.njt-tile{ border-radius:var(--r-m); }
.njt-info__copy img{ border-radius:var(--r-l); }
.njt-empty{ border-radius:var(--r-l); }
.njt-pill{ border-radius:var(--r-m); }
.njt-form{ border-radius:var(--r-l); }
.njt-map{ border-radius:var(--r-l); overflow:hidden; }
.njt-cta{ border-radius:var(--r-xl); overflow:hidden; margin-inline:clamp(0px,4vw,3rem); }

/* Stats en bloc arrondi */
.njt-expertise__stats{ border-radius:var(--r-m); overflow:hidden; }

/* Champs de formulaire (theme + CF7) */
.njt-field input,
.njt-field select,
.njt-field textarea,
.wpcf7 input.wpcf7-form-control,
.wpcf7 select.wpcf7-form-control,
.wpcf7 textarea.wpcf7-form-control{ border-radius:var(--r-s) !important; }
.wpcf7 input.wpcf7-submit,
.wpcf7 .njt-btn{ border-radius:var(--r-pill) !important; }

/* Barre de filtres + tags + panneau → pilules */
.filter-bar__trigger,
.filter-bar__reset,
.filter-tag,
.filter-panel__apply,
.filter-panel__reset,
.filter-panel__field select,
.filter-panel__field input{ border-radius:var(--r-pill) !important; }
.filter-panel{ border-radius:var(--r-m); }

/* Pagination → cercles */
.njt-pagination a,
.njt-pagination span{ border-radius:var(--r-pill); }

/* Fiche bien : galerie & encarts arrondis */
.prop-gallery__main,
.prop-gallery__main img,
.prop-gallery__thumb,
.prop-single__sheet,
.prop-single__cta-box,
.prop-single__wa-btn,
.prop-single__phone-btn{ border-radius:var(--r-m); overflow:hidden; }
.prop-single__wa-btn,
.prop-single__phone-btn{ border-radius:var(--r-pill); }

/* Boutons hérités du thème → pilules */
.btn,
.btn--gold,
.btn--ghost,
.btn--ghost-dark{ border-radius:var(--r-pill) !important; }

/* Nav : puce téléphone & langues plus douces */
.nav__phone,
.nav__lang-btn{ border-radius:var(--r-pill); }

/* WhatsApp flottant déjà rond — on garantit le cercle */
.whatsapp-float{ border-radius:var(--r-pill); }

/* ============================================================
   NAJET — PASSE DE PROFONDEUR (contre l'effet "beige plat")
   Ombres douces au repos pour decoller les cartes du fond.
   ============================================================ */
.njt-service{ box-shadow:0 18px 44px -30px rgba(26,20,16,.45); }
.njt-pill{ box-shadow:0 14px 38px -28px rgba(26,20,16,.40); }
.njt-form{ box-shadow:0 26px 64px -38px rgba(26,20,16,.45); }
.njt-empty{ box-shadow:0 26px 64px -40px rgba(26,20,16,.40); }
.pgc{ box-shadow:0 20px 46px -32px rgba(26,20,16,.42); }

/* Accent dore plus present sur les eyebrows */
.njt-eyebrow::before{ height:1.5px; }

/* Titre de section : un cran plus marque avec Fraunces */
.njt-h2{ font-weight:600; letter-spacing:-.015em; }

/* Le "numero" decoratif des cartes services en dore plein */
.njt-service__num{ color:var(--dore); opacity:1; font-weight:500; }

/* Filet dore fin pour separer le hero des sections claires */
.njt-expertise{ position:relative; }
.njt-expertise::before{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:min(92%,var(--maxw)); height:1px;
  background:linear-gradient(90deg, transparent, rgba(109,50,7,.4), transparent);
}

/* ============================================================
   MARQUE MARNY — logo officiel (monogramme « M » + MARNY, bordeaux)
   Image transparente. Version blanche sur fonds sombres via filtre CSS.
   ============================================================ */
.brand{ display:inline-flex; align-items:center; text-decoration:none; line-height:0; }
.brand-logo{ width:auto; height:auto; display:block; flex:0 0 auto; }

/* — Navigation — */
.nav__brand.brand{ justify-self:center; }
.nav__logo{ height:58px; transition:height .4s ease, filter .4s ease; }
.nav.hero-nav .nav__logo{ height:68px; }
.nav.hero-nav.scrolled .nav__logo{ height:58px; }
/* Sur le hero (nav transparente, photo sombre) : logo en blanc */
/* Logo ORIGINAL (bordeaux) même sur la nav transparente — léger halo pour la lisibilité sur photo sombre */
.nav.hero-nav:not(.scrolled) .nav__logo{ filter:drop-shadow(0 2px 14px rgba(0,0,0,.55)); }

/* Pastille WhatsApp dans la nav */
.nav__wa{ display:inline-flex; align-items:center; gap:.45rem; font-weight:500; }

/* — Pied de page (fond sombre) : logo en blanc — */
.footer__logotype.brand{ display:inline-block; }
.footer__logo{ height:72px; filter:brightness(0) invert(1); opacity:.95; }

/* — Préchargeur (fond clair) : logo bordeaux — */
.preloader__logo{ height:clamp(96px, 18vw, 150px); }

/* — Menu mobile — */
.mobile-drawer__logo{ height:48px; width:auto; }

/* ============================================================
   AFFINAGE TYPOGRAPHIQUE — Geist
   Geist est une sans géométrique : pas de vrai italique, et un meilleur
   rendu avec un tracking serré sur les grands titres. Ce bloc, en fin de
   feuille, prime sur les anciennes règles pensées pour le serif Fraunces.
   ============================================================ */

/* 1) On neutralise le faux italique (oblique synthétique) des accents
      de titres : l'accent reste marqué par la couleur, pas l'italique. */
.njt-h2 em,
.njt-hero__title em,
.njt-phero h1 em,
.njt-cta__inner h2 em,
.njt-about__copy h2 em,
.contact__copy h2 em,
.contact-page__info h2 em,
.intro__headline em,
.sec-head__title em,
.why__head h2 em,
.invest__copy h2 em,
.process__head h2 em,
.lifestyle__intro h2 em,
.season__body h3 em{
  font-style:normal;
  font-weight:500;
}

/* 2) Lecture plus nette : titres équilibrés (pas de mot orphelin) */
.njt-h2, .njt-hero__title, .njt-phero h1,
.njt-cta__inner h2, .njt-about__copy h2{ text-wrap:balance; }

/* 3) Échelle des titres recalibrée pour Geist (un cran plus sobre, tracking serré) */
.njt-hero__title{
  font-size:clamp(2.6rem, 7.2vw, 5.4rem);
  font-weight:500; line-height:1.03; letter-spacing:-.026em;
}
.njt-h2{ font-weight:500; letter-spacing:-.022em; font-size:clamp(1.9rem, 4.6vw, 3.15rem); }
.njt-phero h1{ font-weight:500; letter-spacing:-.024em; font-size:clamp(2.4rem, 6.4vw, 4.8rem); }

/* 4) Sous-titres : sans empattement, non italiques, lecture aérée */
.njt-hero__sub{
  font-family:var(--sans); font-style:normal; font-weight:400;
  font-size:clamp(1.02rem, 1.7vw, 1.26rem); line-height:1.62;
  letter-spacing:.004em; color:#E8D8C4; max-width:40rem;
}
.njt-phero__sub{
  font-family:var(--sans); font-style:normal; font-weight:400;
  font-size:clamp(1rem, 1.6vw, 1.2rem); line-height:1.6; letter-spacing:.004em;
}

/* 5) Chiffres / numéraux : plus fins, plus élégants */
.njt-stat strong{ font-weight:400; letter-spacing:.03em; }
.njt-pill__num{ font-weight:500; }

/* 6) Boutons & sur-titres : tracking légèrement réduit (Geist respire moins large) */
.njt-btn{ letter-spacing:.1em; font-size:.73rem; }
.njt-eyebrow, .njt-hero__eyebrow, .njt-phero__eyebrow{ letter-spacing:.26em; }

/* 7) Corps de texte : interlignage confortable */
.njt-expertise__copy p, .njt-about__copy p{ font-size:1.04rem; line-height:1.85; }

@media(max-width:560px){
  .nav__logo{ height:48px; }
  .nav.hero-nav .nav__logo{ height:52px; }
  .nav__wa span, .nav__wa{ font-size:.85rem; }
}

/* Citation éditoriale (accueil « Qui sommes-nous », pages) */
.njt-about blockquote{
  margin:1.8rem 0; padding:1rem 0 1rem 1.6rem;
  border-left:2px solid var(--terracotta);
  font-family:var(--font-head); font-weight:500;
  font-size:1.15rem; line-height:1.5; color:var(--charcoal);
}
.njt-about blockquote cite{
  display:block; margin-top:.6rem; font-style:normal;
  font-family:var(--sans); font-size:.85rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--terracotta);
}

/* Numéro d'étape (page Services — méthode en 3 temps) */
.njt-pill__num{
  display:block; font-family:var(--font-head); font-weight:600;
  font-size:1.4rem; letter-spacing:.04em; color:var(--terracotta);
  margin-bottom:.9rem; opacity:.85;
}
.njt-pills--alt{ background:var(--color-background); }
.njt-pills__grid--3{ grid-template-columns:repeat(3,1fr); }
@media(max-width:840px){ .njt-pills__grid--3{ grid-template-columns:1fr; } }

/* ============================================================
   HÉROS MARNY — vidéo drone + composition éditoriale (cinématique)
   Bloc faisant autorité (fin de feuille) : prime sur HERO + AFFINAGE.
   ============================================================ */
.njt-hero{
  min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end;
  align-items:stretch; text-align:left; overflow:hidden; color:#fff;
  padding:clamp(7rem,12vh,9rem) var(--gutter) clamp(2.4rem,5vh,3.6rem);
}
.njt-hero__bg{ position:absolute; inset:0; z-index:0; background:#561C24; }
.njt-hero__video,
.njt-hero__poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.njt-hero__poster{ z-index:0; }
.njt-hero__video{ z-index:1; transform:scale(1.05); will-change:auto; }
@media (prefers-reduced-motion: reduce){ .njt-hero__video{ display:none; } }

.njt-hero__veil{
  position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(180deg, rgba(12,9,7,.74) 0%, rgba(12,9,7,.20) 26%, rgba(12,9,7,.30) 55%, rgba(12,9,7,.88) 100%),
    radial-gradient(120% 80% at 18% 82%, rgba(86,28,36,.34) 0%, transparent 60%);
}

.njt-hero__inner{
  position:relative; z-index:3; width:100%; max-width:none; flex:1;
  display:flex; flex-direction:column; justify-content:space-between; gap:3rem;
  padding-top:13vh;
}
.njt-hero__eyebrow{
  font-family:var(--sans); font-size:.7rem; font-weight:600;
  letter-spacing:.34em; text-transform:uppercase; color:rgba(255,255,255,.82);
}
.njt-hero__title{
  font-family:'Cormorant Garamond', Georgia, serif !important;
  font-weight:400; color:#fff; margin:1.1rem 0 0;
  font-size:clamp(2.3rem, 5.2vw, 4.6rem); line-height:1.14; letter-spacing:.005em;
  text-shadow:0 2px 30px rgba(0,0,0,.3);
}
.njt-hero__title span{ display:block; }
.njt-hero__title span:last-child{ padding-left:clamp(0px, 6vw, 7rem); }
.njt-hero__title em{ font-style:italic; color:var(--dore-clair); }

.njt-hero__foot{ display:flex; justify-content:space-between; align-items:flex-end; gap:2.5rem; flex-wrap:wrap; }
.njt-hero__actions{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.njt-hero__search{
  display:flex; align-items:center; gap:.4rem;
  background:rgba(248,240,232,.94); border:1px solid rgba(255,255,255,.5);
  border-radius:12px; padding:.34rem .34rem .34rem 1.1rem;
  box-shadow:0 18px 50px -22px rgba(0,0,0,.6); backdrop-filter:blur(4px);
}
.njt-hero__search input{
  border:0; background:transparent; outline:none; min-width:min(56vw,260px);
  font-family:var(--sans); font-size:.95rem; color:#561C24; padding:.55rem .25rem;
}
.njt-hero__search input::placeholder{ color:#E8D8C4; }
.njt-hero__search button{
  flex:0 0 auto; width:42px; height:42px; border:0; border-radius:9px; cursor:pointer;
  background:var(--terracotta); color:#fff; display:grid; place-items:center;
  transition:background .25s ease, transform .25s ease;
}
.njt-hero__search button:hover{ background:var(--rich-black); transform:translateY(-1px); }
.njt-hero__cta{ box-shadow:0 18px 50px -22px rgba(0,0,0,.6); }

.njt-hero__sub{
  font-family:var(--sans); font-weight:400; color:rgba(255,255,255,.92);
  font-size:clamp(.98rem,1.4vw,1.12rem); line-height:1.6; letter-spacing:.004em;
  max-width:30rem; text-align:right; margin:0 0 0 auto;
}

/* L'indicateur de défilement chevaucherait la barre de recherche : on l'enlève */
.njt-hero__scroll{ display:none; }

@media(max-width:860px){
  .njt-hero__inner{ padding-top:18vh; gap:2.2rem; }
  .njt-hero__title span:last-child{ padding-left:0; }
  .njt-hero__foot{ flex-direction:column; align-items:stretch; gap:1.6rem; }
  .njt-hero__sub{ text-align:left; margin-left:0; max-width:100%; }
  .njt-hero__actions{ width:100%; }
  .njt-hero__search{ flex:1 1 auto; }
  .njt-hero__search input{ min-width:0; width:100%; }
}

/* ============================================================
   CURSEUR NATIF RESTAURÉ
   Le curseur personnalisé est désactivé : on neutralise les
   `cursor:none` dispersés pour un pointeur instantané et fiable.
   ============================================================ */
body{ cursor:auto !important; }
a, button, [class*="btn"], .pgc, .prop, .nav__menu, [role="button"],
label, summary, select, input[type="submit"], input[type="button"]{ cursor:pointer !important; }
input[type="text"], input[type="email"], input[type="tel"], input[type="search"],
input[type="number"], textarea{ cursor:text !important; }
#cursor, #cursor-dot{ display:none !important; }

/* ============================================================
   ÉLÉVATION ÉDITORIALE — titres en Playfair Display
   Cohérence luxe avec le héros : serif élégant pour les grands
   titres, Geist/DM Sans conservés pour le corps et les sur-titres.
   ============================================================ */
.njt-h2, .njt-phero h1, .display{
  font-family:'Cormorant Garamond', Georgia, serif;
  font-weight:500; letter-spacing:-.005em; line-height:1.12;
}
.njt-h2{ font-size:clamp(1.7rem, 3.2vw, 2.5rem); }
.njt-phero h1{ font-size:clamp(2rem, 4.4vw, 3.3rem); line-height:1.12; }
/* Accent de titre en véritable italique (Cormorant en a un superbe) */
.njt-h2 em, .njt-phero h1 em, .njt-about__copy h2 em, .njt-cta__inner h2 em{
  font-style:italic; font-weight:600; color:var(--terracotta);
}
/* Sur-titres : un cran plus raffinés */
.njt-eyebrow, .njt-hero__eyebrow, .njt-phero__eyebrow{
  font-size:.7rem; letter-spacing:.32em; font-weight:600;
}

/* ============================================================
   BARRE DE NAVIGATION — refonte (logo gauche · liens centre · actions droite)
   Bloc faisant autorité (fin de feuille).
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:60;
  display:flex; align-items:center; gap:1.4rem;
  height:90px; padding:0 clamp(1.1rem, 3.2vw, 2.6rem);
  transition:height .4s ease, background .4s ease, box-shadow .4s ease, backdrop-filter .4s ease;
}
.nav.hero-nav:not(.scrolled){ background:transparent; box-shadow:none; }
.nav.scrolled{
  height:78px;
  background:rgba(248,244,236,.93); backdrop-filter:saturate(140%) blur(10px);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  box-shadow:0 1px 0 rgba(75,34,5,.07), 0 14px 34px -24px rgba(0,0,0,.4);
}

/* Marque à gauche */
.nav__brand{ display:inline-flex; align-items:center; flex:0 0 auto; justify-self:auto; }

/* Liens centrés */
.nav__links{
  display:flex; align-items:center; gap:clamp(1rem, 1.9vw, 2rem);
  margin:0 auto; flex-wrap:nowrap; white-space:nowrap;
}
.nav__links a{
  position:relative; font-family:var(--sans); font-size:.78rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; text-decoration:none; line-height:1;
  white-space:nowrap; padding:.45rem 0; color:rgba(255,255,255,.9);
  transition:color .25s ease, opacity .25s ease;
}
.nav__links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1.5px;
  background:currentColor; transform:scaleX(0); transform-origin:left;
  transition:transform .3s ease; opacity:.75;
}
.nav__links a:hover::after{ transform:scaleX(1); }
.nav.scrolled .nav__links a{ color:var(--charcoal); }
.nav.scrolled .nav__links a:hover{ color:var(--terracotta); }
.nav.hero-nav:not(.scrolled) .nav__links a:hover{ color:#fff; }

/* Actions à droite */
.nav__actions{ display:flex; align-items:center; gap:.7rem; flex:0 0 auto; }

/* Bouton WhatsApp (pastille) */
.nav__wa{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.55rem 1.05rem; border-radius:999px; text-decoration:none;
  font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.45); color:#fff; background:rgba(255,255,255,.06);
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.nav__wa svg{ color:#25D366; flex:0 0 auto; }
.nav__wa:hover{ background:#25D366; border-color:#25D366; color:#fff; transform:translateY(-1px); }
.nav__wa:hover svg{ color:#fff; }
.nav.scrolled .nav__wa{ border-color:rgba(75,34,5,.25); color:var(--charcoal); background:transparent; }
.nav.scrolled .nav__wa:hover{ background:var(--rich-black); border-color:var(--rich-black); color:#fff; }
.nav.scrolled .nav__wa:hover svg{ color:#25D366; }

/* Sélecteur de langue */
.nav__lang{ display:inline-flex; align-items:center; gap:.3rem; }
.nav__lang-btn{
  display:inline-flex; align-items:center; gap:.35rem; cursor:pointer; line-height:1;
  padding:.42rem .58rem; border-radius:999px; border:1px solid transparent; background:transparent;
  font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.06em;
  color:rgba(255,255,255,.78); transition:color .2s ease, background .2s ease, border-color .2s ease;
}
.nav__lang-btn svg{ display:block; border-radius:2px; }
.nav__lang-btn.active{ color:#fff; border-color:rgba(255,255,255,.4); background:rgba(255,255,255,.08); }
.nav.scrolled .nav__lang-btn{ color:#E8D8C4; }
.nav.scrolled .nav__lang-btn.active{ color:var(--charcoal); border-color:rgba(75,34,5,.2); background:rgba(75,34,5,.05); }

/* Hamburger (mobile uniquement) */
.nav__menu{
  display:none; width:42px; height:42px; padding:0; border:0; background:transparent; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.nav__menu span{ display:block; width:22px; height:2px; background:#fff; border-radius:2px; transition:background .3s ease; }
.nav.scrolled .nav__menu span{ background:var(--charcoal); }

/* Responsive */
@media(max-width:1080px){
  .nav__links{ display:none; }
  .nav__menu{ display:inline-flex; }
  .nav__wa span{ display:none; }
  .nav__wa{ padding:.55rem; }
}
@media(max-width:560px){
  .nav{ height:64px; padding:0 1rem; gap:.55rem; }
  .nav__lang{ display:none; }
}

/* ============================================================
   FOOTER — réseaux sociaux (logos officiels) + colonne contact
   ============================================================ */
.footer__socials{ display:flex; gap:.8rem; margin-top:1.5rem; flex-wrap:wrap; }
.footer__social{
  display:grid; place-items:center; width:52px; height:52px; border-radius:50%;
  border:0; color:#fff;
  box-shadow:0 8px 22px -10px rgba(0,0,0,.55);
  transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.footer__social svg{ display:block; width:26px; height:26px; }
.footer__social:hover{ transform:translateY(-3px) scale(1.06); box-shadow:0 14px 28px -10px rgba(0,0,0,.6); filter:saturate(1.1); }
/* Couleurs officielles, appliquées PAR DÉFAUT */
.footer__social--instagram{
  background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 70%, #285AEB 100%);
}
.footer__social--tiktok{ background:#010101; }
.footer__social--snapchat{ background:#FFFC00; color:#561C24; }

.footer__col--contact li{ margin-bottom:.95rem; line-height:1.35; }
.footer__col--contact .footer__lbl{
  display:block; font-family:var(--sans); font-size:.62rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(242,237,229,.5); margin-bottom:.15rem;
}
.footer__col--contact li > a,
.footer__col--contact li > span:not(.footer__lbl){ font-size:.95rem; }

/* ============================================================
   HÉROS — anti-chevauchement avec le bouton WhatsApp flottant
   ============================================================ */
.njt-hero{ padding-bottom:clamp(4.2rem, 9vh, 6rem); }
/* le paragraphe (bas-droite) ne doit pas passer sous la pastille flottante */
.njt-hero__sub{ padding-right:clamp(0px, 5vw, 5.5rem); }
@media(max-width:860px){
  .njt-hero__sub{ padding-right:0; }
  .njt-hero{ padding-bottom:7rem; }   /* place pour la pastille en bas */
}
/* CTA secondaire (clair) du héros */
.njt-hero__cta-ghost{ color:#fff; border-color:rgba(255,255,255,.55); }
.njt-hero__cta-ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; }

/* ============================================================
   PAGE NOS BIENS — sections par catégorie (Off-Market / Vente / Location)
   ============================================================ */
.njt-cat{ margin-bottom:clamp(3.5rem, 7vw, 6rem); }
.njt-cat:last-child{ margin-bottom:0; }
.njt-cat__head{
  display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; flex-wrap:wrap;
  margin-bottom:2.2rem; padding-bottom:1.2rem; border-bottom:1px solid var(--line);
}
.njt-cat__title{
  font-family:'Cormorant Garamond', Georgia, serif; font-weight:500;
  font-size:clamp(1.8rem, 3.6vw, 2.7rem); line-height:1.1; color:var(--charcoal); margin:0;
}
.njt-cat__sub{
  font-family:var(--sans); color:var(--charcoal); opacity:.68;
  margin:.55rem 0 0; font-size:1rem; line-height:1.5; max-width:42rem;
}
.njt-cat__count{
  font-family:var(--sans); font-size:.74rem; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--terracotta); white-space:nowrap; padding-bottom:.3rem;
}

/* ============================================================
   LISIBILITÉ — texte sur image renforcé (héros de page, fiche bien, CTA)
   ============================================================ */
.njt-phero__bg img,
.prop-single-hero__bg img{ filter:brightness(.66) saturate(1.04); }

.njt-phero__veil{
  background:
    linear-gradient(180deg, rgba(18,13,10,.66) 0%, rgba(18,13,10,.36) 38%, rgba(18,13,10,.58) 72%, rgba(10,7,5,.93) 100%) !important;
}
.prop-single-hero__overlay{
  background:
    linear-gradient(180deg, rgba(18,9,12,.64) 0%, rgba(18,9,12,.34) 30%, rgba(18,9,12,.58) 64%, rgba(10,5,7,.94) 100%) !important;
}
/* Ombre douce sous les textes de héros pour les détacher du fond */
.njt-phero h1, .njt-phero__sub, .njt-phero__eyebrow,
.prop-single-hero__title, .prop-single-hero__breadcrumb, .prop-single-hero__meta{
  text-shadow:0 2px 20px rgba(0,0,0,.5);
}
.njt-cta__veil{ background:linear-gradient(180deg, rgba(18,13,10,.80), rgba(10,7,5,.88)) !important; }

/* ============================================================
   PAGE NOS BIENS — onglets de tri rapide (Tous / Off-Market / Vente / Location)
   ============================================================ */
.biens-tabs-wrap{ background:var(--color-background); padding:clamp(1.8rem,3.5vw,2.6rem) var(--gutter) 0; }
.biens-tabs{ max-width:var(--maxw); margin-inline:auto; display:flex; gap:.7rem; flex-wrap:wrap; }
.biens-tab{
  display:inline-flex; align-items:center; gap:.5rem; cursor:pointer;
  padding:.72rem 1.35rem; border-radius:999px; border:1px solid var(--line);
  background:#fff; font-family:var(--sans); font-size:.82rem; font-weight:600;
  letter-spacing:.04em; color:var(--charcoal); line-height:1;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease;
}
.biens-tab span{ font-size:.72rem; opacity:.55; font-weight:600; }
.biens-tab:hover{ border-color:var(--terracotta); transform:translateY(-1px); }
.biens-tab.is-active{ background:var(--charcoal); color:#fff; border-color:var(--charcoal); }
.biens-tab.is-active span{ opacity:.75; }

/* ============================================================
   FICHE BIEN — équipements & unité de prix
   ============================================================ */
.prop-single__amenities{ margin-top:1.7rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.prop-single__amenities-title{ font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--terracotta); margin:0 0 1.1rem; }
.prop-single__amenities-list{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.55rem; }
.prop-single__amenities-list li{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--sans); font-size:.84rem; line-height:1; color:var(--charcoal);
  padding:.55rem .9rem .55rem .8rem; border-radius:999px;
  background:var(--warm-white); border:1px solid var(--line);
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.prop-single__amenities-list li:hover{ border-color:var(--terracotta); transform:translateY(-1px); box-shadow:0 8px 20px -14px rgba(75,34,5,.5); }
.prop-single__amenities-list li span{
  display:inline-grid; place-items:center; width:19px; height:19px; flex:0 0 auto;
  border-radius:50%; background:var(--terracotta); color:#fff;
}
.prop-single__amenities-list li span svg{ display:block; }
.pgc__price small, .pgc__back-price small{ font-size:.7em; opacity:.7; font-weight:400; margin-left:2px; }
.prop-single__price-main span{ font-size:.5em; letter-spacing:.04em; }

/* ============================================================
   PAGE NOS BIENS — choix de la ville (Tanger / Marrakech)
   ============================================================ */
.biens-cities__label{ max-width:var(--maxw); margin:0 auto .9rem; font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--terracotta); }
.biens-cities{ max-width:var(--maxw); margin-inline:auto; display:flex; gap:.9rem; flex-wrap:wrap; }
.biens-city{
  display:inline-flex; align-items:center; gap:.65rem; cursor:pointer;
  padding:1rem 2.1rem; border-radius:999px; border:1px solid var(--line);
  background:var(--warm-white); color:var(--charcoal); line-height:1;
  font-family:'Cormorant Garamond', Georgia, serif; font-size:1.15rem; font-weight:500;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease, box-shadow .25s ease;
}
.biens-city span{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.04em; opacity:.6; }
.biens-city:hover{ border-color:var(--color-primary); transform:translateY(-2px); box-shadow:0 12px 30px -18px rgba(86,28,36,.5); }
.biens-city.is-active{ background:var(--color-primary); color:#fff; border-color:var(--color-primary); }
.biens-city.is-active span{ opacity:.85; }

/* ============================================================
   LISIBILITÉ — texte clair (crème) garanti sur tous les fonds sombres
   (bordeaux #561C24 ou photo assombrie). Évite le bordeaux sur bordeaux.
   ============================================================ */
.footer, .footer h2, .footer h3, .footer h4, .footer p, .footer a, .footer li, .footer span,
.njt-contact, .njt-contact .njt-h2, .njt-contact h2, .njt-contact h3, .njt-contact p, .njt-contact__lead,
.njt-contact__list a, .njt-contact__list span,
.njt-cta, .njt-cta .njt-h2, .njt-cta h2, .njt-cta p,
.njt-phero h1, .njt-phero .njt-h2, .njt-phero__sub,
.prop-single-hero__title, .prop-single-hero__breadcrumb span{
  color:var(--color-secondary);
}
/* Sur-titres dorés → crème sur fond sombre */
.njt-contact .njt-eyebrow, .njt-cta .njt-eyebrow, .njt-phero__eyebrow,
.njt-eyebrow--light, .eyebrow--light{ color:var(--color-secondary); }
/* em d'accent sur fond sombre : crème plus lumineux (pas bordeaux) */
.njt-contact .njt-h2 em, .njt-cta h2 em, .njt-phero h1 em{ color:#FFFFFF; }
/* Voile des héros de page un peu plus dense au centre pour le contraste du texte */
.njt-phero__veil{
  background:linear-gradient(180deg, rgba(18,13,10,.66) 0%, rgba(18,13,10,.46) 40%, rgba(18,13,10,.64) 72%, rgba(10,7,5,.94) 100%) !important;
}

/* ============================================================
   ACCUEIL — méthode en 3 étapes + citation
   ============================================================ */
.marny-method{ background:var(--color-secondary); padding-block:var(--section-y); }
.marny-method__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.4rem,3vw,2.2rem); margin-top:3rem; }
@media(max-width:840px){ .marny-method__grid{ grid-template-columns:1fr; } }
.marny-step{
  background:var(--warm-white); border:1px solid var(--line); border-radius:var(--r-m);
  padding:clamp(1.6rem,3vw,2.4rem); box-shadow:0 18px 50px -34px rgba(86,28,36,.5);
}
.marny-step__num{ display:block; font-family:'Cormorant Garamond', Georgia, serif; font-size:2rem; line-height:1; color:var(--color-primary); margin-bottom:.9rem; }
.marny-step h3{ font-family:'Cormorant Garamond', Georgia, serif; font-weight:500; font-size:1.3rem; color:var(--charcoal); margin-bottom:.6rem; }
.marny-step p{ font-family:var(--sans); font-size:.95rem; line-height:1.6; color:var(--charcoal); opacity:.82; }

.marny-quote{ background:var(--color-primary); padding-block:clamp(4rem,8vw,7rem); text-align:center; }
.marny-quote blockquote{
  max-width:46rem; margin-inline:auto; padding-inline:var(--gutter);
  font-family:'Cormorant Garamond', Georgia, serif; font-style:italic; font-weight:500;
  font-size:clamp(1.5rem,3vw,2.3rem); line-height:1.42; color:var(--color-secondary);
}
.marny-quote cite{ display:block; margin-top:1.5rem; font-family:var(--sans); font-style:normal; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--color-secondary); opacity:.82; }

/* ============================================================
   VENDRE — tag de pilier · CONTACT — coordonnées & réseaux · FAQ · CARTE FICHE
   ============================================================ */
.njt-pill__tag{ display:inline-block; font-family:var(--sans); font-size:.62rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--terracotta); margin-bottom:.6rem; }

.njt-contact__list--labelled li{ display:block; }
.njt-contact__lbl{ display:block; font-family:var(--sans); font-size:.62rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(232,216,196,.55); margin-bottom:.15rem; }
.njt-contact__list--labelled li a, .njt-contact__list--labelled li > span:not(.njt-contact__lbl){ font-size:1.05rem; }
.njt-contact__socials{ display:flex; gap:.7rem; margin-top:1.7rem; flex-wrap:wrap; }

.marny-faq{ background:var(--color-background); padding-block:var(--section-y); }
.marny-faq__list{ max-width:60rem; margin:2.5rem auto 0; display:flex; flex-direction:column; gap:.8rem; }
.marny-faq__item{ background:var(--warm-white); border:1px solid var(--line); border-radius:var(--r-m); padding:1.2rem 1.6rem; transition:border-color .25s ease; }
.marny-faq__item[open]{ border-color:var(--terracotta); }
.marny-faq__item summary{ cursor:pointer; list-style:none; font-family:'Cormorant Garamond', Georgia, serif; font-size:1.12rem; color:var(--charcoal); display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.marny-faq__item summary::-webkit-details-marker{ display:none; }
.marny-faq__item summary::after{ content:'+'; font-family:var(--sans); font-size:1.4rem; line-height:1; color:var(--terracotta); transition:transform .3s ease; }
.marny-faq__item[open] summary::after{ transform:rotate(45deg); }
.marny-faq__item p{ margin-top:.9rem; font-family:var(--sans); font-size:.98rem; line-height:1.6; color:var(--charcoal); opacity:.82; }

.prop-single-map{ padding-block:clamp(3rem,6vw,5rem); background:var(--color-background); }
.prop-single-map__head{ margin-bottom:1.6rem; }
.prop-single-map__head .njt-h2{ font-size:clamp(1.6rem,3vw,2.4rem); }
.prop-single-map__frame{ height:clamp(320px,42vw,520px); border-radius:var(--r-l); overflow:hidden; border:1px solid var(--line); box-shadow:0 30px 70px -40px rgba(86,28,36,.5); }
.prop-single-map__frame iframe{ width:100%; height:100%; display:block; filter:grayscale(.15) contrast(1.02); }

/* ============================================================
   CARTE 3D — face arrière : accents en crème (lisibles sur le fond bordeaux)
   (corrige les chiffres/badge/CTA qui étaient bordeaux sur bordeaux)
   ============================================================ */
.pgc__back-spec strong{ color:var(--color-secondary); }
.pgc__back-divider{ background:var(--color-secondary); opacity:.55; }
.pgc__back-badge{ background:var(--color-secondary); color:#561C24; }
.pgc__back-cta{ background:var(--color-secondary); color:#561C24; }
.pgc__back-cta:hover{ background:#fff; color:#561C24; }

/* ============================================================
   TYPOGRAPHIE FINALE — titres FINS & élégants façon Kretz
   Cormorant Garamond en poids 400 (régulier), tracking neutre.
   Bloc faisant autorité : prime sur tous les poids 500/600 précédents.
   ============================================================ */
.njt-hero__title,
.njt-phero h1,
.njt-h2,
.display,
.prop-single-hero__title,
.njt-cat__title,
.njt-listing__count,
.marny-quote blockquote,
.njt-about blockquote,
.marny-faq__item summary,
.prop-single__desc-title,
.prop-related__title{
  font-family:'Cormorant Garamond', Georgia, serif !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
}
/* sur-titres / labels : plus fins aussi (sans capitales lourdes) */
.njt-eyebrow, .njt-hero__eyebrow, .njt-phero__eyebrow{ font-weight:500; }
/* Accents italiques de titre : fins (400), pas gras — comme « d'exception » du hero */
.njt-hero__title em, .njt-phero h1 em, .njt-h2 em, .display em,
.njt-about__copy h2 em, .njt-cta__inner h2 em, .marny-quote blockquote em{
  font-weight:400 !important; font-style:italic;
}

/* Crédit créateur (footer) */
.footer__credit{ opacity:.7; }
.footer__credit a{ color:var(--color-secondary); border-bottom:1px solid rgba(232,216,196,.4); transition:opacity .2s; }
.footer__credit a:hover{ opacity:1; }
