:root {
  --bg:#070d18; --panel:#101827; --panel2:#0b1321; --line:rgba(255,255,255,.10);
  --text:#f6f8ff; --muted:#a7b1c5; --accent:#4b8dff; --accent2:#a94bf5;
  --card:#f7f7fb; --ink:#111827; --shadow:0 30px 90px rgba(0,0,0,.46);
  --radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; min-height:100vh; font-family:Inter,system-ui,sans-serif; color:var(--text);
  background:
   radial-gradient(circle at 18% 12%,rgba(78,125,255,.12),transparent 30%),
   radial-gradient(circle at 88% 86%,rgba(167,70,245,.10),transparent 26%),
   linear-gradient(145deg,#050a12 0%,#0a1220 48%,#050a12 100%);
  overflow-x:hidden;
}
button,a{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.app-shell{
  width:min(1450px,calc(100% - 32px)); min-height:min(920px,calc(100vh - 32px));
  margin:16px auto; border:1px solid rgba(255,255,255,.15); border-radius:var(--radius);
  overflow:hidden; background:linear-gradient(135deg,rgba(21,31,48,.98),rgba(8,15,27,.98));
  box-shadow:var(--shadow); display:grid; grid-template-columns:440px 1fr; position:relative;
}
.app-shell::after{
 content:""; position:absolute; inset:0; pointer-events:none;
 background:linear-gradient(120deg,rgba(255,255,255,.035),transparent 28%,transparent 70%,rgba(255,255,255,.025));
}
.profile{
 padding:54px 44px 38px; border-right:1px solid var(--line); display:flex;
 flex-direction:column; justify-content:center; position:relative; z-index:1;
}
.avatar-wrap{display:flex;justify-content:center;margin-bottom:28px}
.avatar{
 width:210px; aspect-ratio:1; border-radius:50%; object-fit:cover; object-position:center;
 border:3px solid rgba(255,255,255,.55); box-shadow:0 0 0 5px rgba(92,104,255,.18),0 0 38px rgba(87,103,255,.65);
}
.name{font-size:clamp(2.45rem,4vw,4rem);line-height:.95;margin:0;text-align:center;font-weight:800;letter-spacing:-.055em}
.name span{background:linear-gradient(90deg,#5da7ff,#a76cff);-webkit-background-clip:text;background-clip:text;color:transparent}
.role{text-align:center;color:#b8c3d6;font-size:1.35rem;margin:20px 0 6px}
.mini-line{width:62px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent2));margin:0 auto 34px}
.social-carousel{
  position:relative;
  width:100%;
  min-height:245px;
  margin:2px auto 8px;
  overflow:hidden;
  touch-action:pan-y;
  user-select:none;
}
.social-carousel::before{
  content:"";
  position:absolute;
  left:5%;right:5%;bottom:67px;height:105px;
  border-top:2px solid transparent;
  border-radius:50% 50% 0 0;
  background:linear-gradient(90deg,#a83dff,#4e91ff,#33d3ff) border-box;
  -webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;opacity:.9;
  filter:drop-shadow(0 0 8px rgba(91,111,255,.55));
}
.social-track{position:absolute;inset:0}
.social-slide{
  position:absolute;left:50%;top:20px;
  width:112px;text-align:center;
  transform:translateX(-50%);
  transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .35s ease,filter .35s ease;
  outline:none;
}
.social-bubble{
  width:72px;height:72px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;
  font-size:2.15rem;color:white;border:2px solid rgba(255,255,255,.45);
  box-shadow:0 12px 28px rgba(0,0,0,.34),0 0 0 5px rgba(103,102,255,.08);
  transition:inherit;
}
.social-slide[data-network="whatsapp"] .social-bubble{background:#25D366}
.social-slide[data-network="line"] .social-bubble{background:#06C755}
.social-slide[data-network="telegram"] .social-bubble{background:#229ED9}
.social-slide[data-network="wechat"] .social-bubble{background:#07C160}
.social-name{display:block;font-weight:800;font-size:.88rem;letter-spacing:-.01em;color:#d8deeb;transition:.35s ease}
.social-handle{display:none;color:#8f9bb0;font-size:.68rem;margin-top:4px}
.social-slide.is-active .social-bubble{
  width:112px;height:112px;font-size:3.25rem;
  border-color:rgba(255,255,255,.7);
  box-shadow:0 20px 42px rgba(0,0,0,.42),0 0 30px rgba(76,125,255,.55);
}
.social-slide.is-active .social-name{font-size:1.18rem;color:white}
.social-slide.is-active .social-handle{display:block}
.social-nav{
  position:absolute;top:78px;z-index:8;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(143,104,255,.7);background:rgba(8,14,26,.72);color:#b66cff;
  display:grid;place-items:center;backdrop-filter:blur(8px);pointer-events:auto;touch-action:manipulation;
}
.social-nav.prev-social{left:0}.social-nav.next-social{right:0}
.social-hint{position:absolute;left:0;right:0;bottom:12px;text-align:center;color:#8f9bb0;font-size:.72rem}
.social-hint i{color:#a267ff;margin-right:7px}

/* Ordinateur : garder les commandes hors de la trajectoire des icônes. */
@media (min-width:961px){
  .social-carousel{
    overflow:visible;
  }

  .social-nav{
    z-index:30;
  }

  .social-nav.prev-social{
    left:-40px;
  }

  .social-nav.next-social{
    right:-40px;
  }
}

.save-contact{
 display:flex;align-items:center;justify-content:center;
 width:100%; border:0;color:white;border-radius:19px;padding:18px 22px;margin-top:20px;font-weight:700;
 background:linear-gradient(90deg,#3789ff,#b143ec);box-shadow:0 14px 30px rgba(87,93,255,.26);
 transition:.25s ease;
}
.save-contact:hover{transform:translateY(-2px);filter:brightness(1.08)}
.footer-note{margin-top:54px;color:#8e99ab;font-size:.8rem;text-align:center}

.showcase{padding:56px 30px 28px;position:relative;display:flex;flex-direction:column;justify-content:center;z-index:1;overflow:hidden}
.eyebrow{text-align:center;text-transform:uppercase;letter-spacing:.34em;color:#9ca7b8;font-size:.78rem;margin-bottom:18px}
.eyebrow span{color:#6c89ff}
.title{text-align:center;font-size:clamp(2.25rem,4.2vw,4rem);letter-spacing:-.04em;margin:0 0 18px}
.dots{display:flex;justify-content:center;gap:10px;margin-bottom:26px}
.dot{width:38px;height:5px;border-radius:5px;background:#434c5d;border:0;padding:0}
.dot.active{background:linear-gradient(90deg,var(--accent),var(--accent2))}

.carousel-stage{position:relative;min-height:570px;display:flex;align-items:center;justify-content:center;perspective:1600px}
.carousel{width:min(830px,100%);height:540px;position:relative;transform-style:preserve-3d}
.activity-card{
 position:absolute;left:50%;top:50%;width:340px;height:610px;border-radius:28px;overflow:hidden;
 background:linear-gradient(#fff,#f2f3f8);color:var(--ink);border:1px solid rgba(255,255,255,.62);
 box-shadow:0 22px 55px rgba(0,0,0,.35);transform-origin:center center;
 transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .45s ease,filter .45s ease;
 display:flex;flex-direction:column;backface-visibility:hidden;
}
.activity-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.28),transparent 32%)}

.card-number{
  position:absolute;
  top:18px;
  left:18px;
  z-index:7;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:48px;
  min-height:38px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.30);
  border-radius:13px;
  color:#fff;
  background:rgba(10,16,29,.70);
  box-shadow:0 10px 24px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.16);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1;
  pointer-events:none;
}
@media (max-width:460px){
  .card-number{
    top:14px;
    left:14px;
    min-width:44px;
    min-height:34px;
    padding:7px 10px;
    border-radius:11px;
    font-size:.70rem;
  }
}

.agency-badge{
  position:absolute;
  top:18px;
  right:18px;
  z-index:6;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:9px 17px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:13px;
  color:#fff;
  background:linear-gradient(135deg,#247cff 0%,#7b3cff 55%,#b42cff 100%);
  box-shadow:0 10px 24px rgba(67,69,255,.38),inset 0 1px 0 rgba(255,255,255,.22);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
  line-height:1;
  pointer-events:none;
}
@media (max-width:460px){
  .agency-badge{
    top:14px;
    right:14px;
    min-height:34px;
    padding:8px 14px;
    border-radius:11px;
    font-size:.72rem;
  }
}

.card-image{height:245px;background:#7654e8;overflow:hidden}
.card-image img{width:100%;height:100%;object-fit:cover;display:block}
.card-body{padding:52px 22px 20px;text-align:center;position:relative;display:flex;flex-direction:column;flex:1}
.card-icon{
 position:absolute;left:50%;top:0;transform:translate(-50%,-50%);width:94px;height:94px;border-radius:50%;
 display:grid;place-items:center;color:white;font-size:2.1rem;background:linear-gradient(145deg,#8470ff,#7a35dc);
 border:3px solid rgba(255,255,255,.55);box-shadow:0 12px 24px rgba(94,49,208,.35);
}
.card-body h3{font-size:1.35rem;margin:0 0 12px}
.card-body p{margin:0;color:#444b59;line-height:1.65;font-size:.93rem}
.more{margin:auto auto 0;border:1px solid #7f6af0;background:transparent;color:#6a55da;border-radius:14px;padding:12px 24px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.more.site-url{font-size:.72rem;letter-spacing:-.015em;padding:12px 14px;max-width:100%;white-space:nowrap}
.nav-btn{
 position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:58px;height:58px;border-radius:50%;
 border:1px solid #727bff;background:rgba(7,14,26,.72);color:#aa6cff;font-size:1.3rem;backdrop-filter:blur(10px);
}
.nav-btn:hover{background:#151d32} .prev{left:8px} .next{right:8px}
.scroll-cue{display:flex;align-items:center;justify-content:center;gap:14px;color:#d5d9e1;font-size:.9rem;margin-top:8px}
.mouse{width:48px;height:31px;border:2px solid #e8ecf5;border-radius:18px;position:relative}
.mouse::after{content:"";position:absolute;width:8px;height:4px;background:#fff;border-radius:4px;left:9px;top:50%;transform:translateY(-50%);animation:wheel 1.6s infinite}
.scroll-cue span span{color:#7c73ff}
@keyframes wheel{0%{opacity:0;transform:translate(0,-50%)}30%{opacity:1}100%{opacity:0;transform:translate(16px,-50%)}}

.lang-switch{position:absolute;top:18px;right:18px;z-index:30;display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.lang-btn{border:1px solid var(--line);background:rgba(10,16,29,.7);color:#c7cfde;border-radius:999px;padding:7px 10px;font-size:.74rem}
.lang-btn.active{background:linear-gradient(90deg,var(--accent),var(--accent2));color:white;border-color:transparent}



@media (max-width:1050px){
 .app-shell{grid-template-columns:360px 1fr}
 .profile{padding:44px 30px}
 .avatar{width:170px}
 .carousel{transform:scale(.88)}
}
@media (max-width:800px){
 body{background:#08101d}
 .app-shell{width:100%;margin:0;border-radius:0;border:0;display:block;min-height:100vh}
 .profile{border-right:0;border-bottom:1px solid var(--line);padding:82px 22px 38px}
 .avatar{width:150px}.name{font-size:2.65rem}.role{font-size:1.1rem}
 .social-carousel{max-width:560px}.save-contact{max-width:560px;margin:20px auto 0}
 .footer-note{margin-top:30px}
 .showcase{padding:56px 8px 34px}
 .lang-switch{display:flex}
 
 
 
 
 .carousel-stage{
   min-height:555px;
   display:flex;
   align-items:center;
   justify-content:center;
   perspective:1200px;
   overflow:hidden;
   touch-action:pan-y;
 }
 .carousel{
   width:100%;
   height:520px;
   position:relative;
   transform-style:preserve-3d;
   overflow:visible;
 }
 .activity-card{
   position:absolute!important;
   left:50%!important;
   top:50%!important;
   width:min(78vw,340px)!important;
   height:590px;
   margin:0;
   transform-origin:center center;
   backface-visibility:hidden;
   will-change:transform,opacity,filter;
   transition:
     transform .55s cubic-bezier(.22,.8,.2,1),
     opacity .4s ease,
     filter .4s ease,
     box-shadow .4s ease;
 }
 .activity-card.is-active{
   box-shadow:0 30px 75px rgba(0,0,0,.52);
 }
 .card-image{height:215px}
 .nav-btn{top:50%;z-index:30}
 .prev{left:2px}.next{right:2px}
}
@media (max-width:460px){
 .lang-switch{top:12px;right:12px;left:12px;justify-content:center;gap:6px}
 .lang-btn{padding:7px 9px;font-size:.7rem}

 .profile{padding-inline:16px}
 .social-carousel{min-height:230px}
 .social-slide{width:98px}.social-slide.is-active .social-bubble{width:100px;height:100px;font-size:2.9rem}
 .showcase{padding-inline:0}
 .eyebrow{font-size:.64rem;letter-spacing:.22em;padding:0 15px}
 .title{font-size:2rem;padding:0 18px}
 .carousel-stage{min-height:500px}
 .carousel{height:470px}
 .activity-card{
   width:82vw!important;
   max-width:330px;
   height:560px;
   border-radius:23px;
 }
 .card-image{height:185px}.card-body{padding:44px 16px 16px}
 .card-icon{width:78px;height:78px;font-size:1.8rem}
 .card-body h3{font-size:1.18rem} .card-body p{font-size:.85rem;line-height:1.5}
 .nav-btn{width:48px;height:48px}
 .scroll-cue{font-size:.78rem}
}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}

@media (max-width:1024px){
  .nav-btn{
    display:none !important;
  }
}

/* Mobile : masquer uniquement les chevrons du carrousel de communication */
@media (max-width:800px){
  .social-carousel .social-nav,
  .social-nav.prev-social,
  .social-nav.next-social{
    display:none !important;
  }
}


/* Ajustement des nouvelles photos */
.avatar{
  object-position:center 24%;
}
.activity-card:nth-child(1) .card-image img,
.activity-card:nth-child(2) .card-image img{
  object-position:center 52%;
}
.activity-card:nth-child(3) .card-image img{
  object-position:center 55%;
}
.activity-card:nth-child(4) .card-image img{
  object-position:center center;
}


.contact-block{text-align:center;margin:0 0 22px}
.city{font-weight:800;letter-spacing:.12em;color:#fff;margin-bottom:8px}
.contact-block .contact-item{color:#b8c3d6;font-size:.63rem!important;line-height:1.55}


.property-info{
  margin:10px 0 14px;
  padding:12px 13px;
  border-radius:14px;
  background:rgba(91,75,210,.06);
  border:1px solid rgba(109,92,230,.16);
  color:#323846;
  font-size:.76rem;
  line-height:1.45;
  text-align:left;
}
.property-info strong{
  display:block;
  margin-bottom:5px;
  font-size:.78rem;
  color:#151827;
}
.property-info .availability{
  color:#6b4fe0;
  font-weight:800;
  text-transform:uppercase;
}
.property-info .price-line{
  display:block;
  margin-top:3px;
}

.property-info-sale{
  text-align:left;
  padding:14px 14px 13px;
}
.property-info-sale strong{
  text-align:center;
  margin-bottom:7px;
  font-size:.82rem;
  letter-spacing:.015em;
}
.property-info-sale .property-price{
  text-align:center;
  font-size:.9rem;
  font-weight:800;
  color:#5f46d7;
  margin:0 0 11px;
}
.property-specs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px 8px;
  padding-top:9px;
  border-top:1px solid rgba(109,92,230,.14);
}
.property-specs span{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.69rem;
  line-height:1.25;
  color:#343b49;
}
.property-specs i{
  width:14px;
  text-align:center;
  color:#6b4fe0;
  font-size:.72rem;
}
.property-info-sale .property-availability{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:11px;
  padding-top:9px;
  border-top:1px solid rgba(109,92,230,.14);
  font-size:.69rem;
  letter-spacing:.03em;
}
@media (max-width:460px){
  .property-info-sale{padding:11px 11px 10px}
  .property-info-sale strong{font-size:.76rem}
  .property-info-sale .property-price{font-size:.82rem}
  .property-specs{gap:6px}
  .property-specs span{font-size:.64rem}
  .property-info-sale .property-availability{font-size:.64rem}
}

.property-info-rental{
  text-align:left;
  padding:14px 14px 13px;
}
.property-info-rental .rental-availability{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin:0 0 10px;
  color:#6b4fe0;
  font-size:.69rem;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.property-info-rental .rental-main{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px 8px;
  padding:9px 0;
  border-top:1px solid rgba(109,92,230,.14);
  border-bottom:1px solid rgba(109,92,230,.14);
}
.property-info-rental .rental-main span{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.69rem;
  line-height:1.25;
  color:#343b49;
}
.property-info-rental i{
  width:14px;
  text-align:center;
  color:#6b4fe0;
  font-size:.72rem;
}
.property-info-rental .rental-monthly-title{
  display:block;
  text-align:center;
  margin:9px 0 6px;
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.06em;
  color:#6b7280;
  text-transform:uppercase;
}
.property-info-rental .rental-monthly{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px 8px;
}
.property-info-rental .rental-monthly span{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:.65rem;
  line-height:1.25;
  color:#343b49;
}
@media (max-width:460px){
  .property-info-rental{padding:11px 11px 10px}
  .property-info-rental .rental-availability{font-size:.64rem}
  .property-info-rental .rental-main span,
  .property-info-rental .rental-monthly span{font-size:.61rem}
  .property-info-rental .rental-monthly-title{font-size:.6rem}
}

@media (max-width:460px){
  .property-info{font-size:.7rem;line-height:1.4;padding:10px 11px}
  .property-info strong{font-size:.73rem}
}


/* Fullscreen intelligent */
.fullscreen-toggle{
  position:fixed;
  right:18px;
  top:18px;
  z-index:9999;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(7,13,24,.58);
  color:#fff;
  display:grid;
  place-items:center;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  opacity:.34;
  transition:opacity .25s ease, transform .25s ease, background .25s ease;
}
.fullscreen-toggle:hover,.fullscreen-toggle:focus-visible{opacity:1;transform:scale(1.04);background:rgba(12,20,36,.82)}
.fullscreen-toggle i{font-size:1rem}
@media(max-width:800px){
  .fullscreen-toggle{right:12px;top:12px;width:40px;height:40px;opacity:.22}
  body.user-active .fullscreen-toggle{opacity:.72}
}


/* V17 — Rééquilibrage des espaces de "Découvrez mes propriétés" sur tablette/mobile */
@media (max-width:1024px){
  .showcase{
    padding-top:38px;
    padding-bottom:24px;
  }
  .eyebrow{
    margin-bottom:11px;
  }
  .title{
    margin-bottom:14px;
  }
  .dots{
    margin-bottom:12px;
  }
  .carousel-stage{
    min-height:540px;
  }
  .scroll-cue{
    margin-top:0;
  }
}

@media (max-width:800px){
  .showcase{
    padding:36px 8px 24px;
  }
  .eyebrow{
    margin-bottom:10px;
  }
  .title{
    margin-bottom:12px;
  }
  .dots{
    margin-bottom:8px;
  }
  .carousel-stage{
    min-height:535px;
  }
  .scroll-cue{
    margin-top:2px;
  }
}

@media (max-width:460px){
  .showcase{
    padding-top:30px;
    padding-bottom:22px;
  }
  .eyebrow{
    margin-bottom:8px;
  }
  .title{
    margin-bottom:10px;
  }
  .dots{
    margin-bottom:6px;
  }
  .carousel-stage{
    min-height:510px;
  }
  .scroll-cue{
    margin-top:4px;
    padding:0 12px;
  }
}


/* V18 — Espace de scroll supplémentaire sous le carrousel sur mobile */
@media (max-width:460px){
  .showcase{
    padding-bottom:42vh;
  }
}


/* V19 — Section propriétés mobile : respiration équilibrée, sans grand vide final */
@media (max-width:460px){
  .showcase{
    padding-top:42px;
    padding-bottom:clamp(110px,18vh,160px);
  }

  .eyebrow{
    margin-bottom:12px;
  }

  .title{
    margin-bottom:16px;
  }

  .dots{
    margin-bottom:14px;
  }

  .carousel-stage{
    min-height:520px;
    margin-top:4px;
  }

  .scroll-cue{
    margin-top:16px;
    margin-bottom:0;
    padding:0 12px;
  }
}


/* V20 — Ajustement fin mobile : espace réparti autour du contenu, moins de vide final */
@media (max-width:460px){
  .showcase{
    padding-top:46px;
    padding-bottom:64px;
  }

  .eyebrow{
    margin-bottom:14px;
  }

  .title{
    margin-bottom:18px;
  }

  .dots{
    margin-bottom:24px;
  }

  .carousel-stage{
    min-height:522px;
    margin-top:8px;
    margin-bottom:0;
  }

  .scroll-cue{
    margin-top:20px;
    margin-bottom:0;
    padding:0 12px;
  }
}


/* V22 — TABLETTE UNIQUEMENT : reprendre le rendu mobile sans modifier le mobile */
@media (min-width:461px) and (max-width:960px){

  body{
    background:#08101d;
  }

  .app-shell{
    width:100%;
    margin:0;
    border-radius:0;
    border:0;
    display:block;
    min-height:100vh;
  }

  /* SECTION PROFIL — même logique visuelle que mobile */
  .profile{
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:82px 22px 38px;
  }

  .avatar{
    width:150px;
  }

  .name{
    font-size:2.65rem;
  }

  .role{
    font-size:1.1rem;
  }

  .social-carousel{
    max-width:560px;
    min-height:230px;
  }

  .social-slide{
    width:98px;
  }

  .social-slide.is-active .social-bubble{
    width:100px;
    height:100px;
    font-size:2.9rem;
  }

  .social-carousel .social-nav,
  .social-nav.prev-social,
  .social-nav.next-social{
    display:none!important;
  }

  .save-contact{
    max-width:560px;
    margin:20px auto 0;
  }

  .footer-note{
    margin-top:30px;
  }

  /* SECTION VILLAS — reprendre le rendu mobile */
  .showcase{
    padding:46px 0 64px;
  }

  .eyebrow{
    font-size:.64rem;
    letter-spacing:.22em;
    padding:0 15px;
    margin-bottom:14px;
  }

  .title{
    font-size:2rem;
    padding:0 18px;
    margin-bottom:18px;
  }

  .dots{
    margin-bottom:24px;
  }

  .carousel-stage{
    min-height:522px;
    display:flex;
    align-items:center;
    justify-content:center;
    perspective:1200px;
    overflow:hidden;
    touch-action:pan-y;
    margin-top:8px;
    margin-bottom:0;
  }

  .carousel{
    width:100%;
    height:470px;
    position:relative;
    transform:none!important;
    transform-style:preserve-3d;
    overflow:visible;
  }

  .activity-card{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:82vw!important;
    max-width:330px;
    height:560px;
    margin:0;
    border-radius:23px;
    transform-origin:center center;
    backface-visibility:hidden;
    will-change:transform,opacity,filter;
    transition:
      transform .55s cubic-bezier(.22,.8,.2,1),
      opacity .4s ease,
      filter .4s ease,
      box-shadow .4s ease;
  }

  .activity-card.is-active{
    box-shadow:0 30px 75px rgba(0,0,0,.52);
  }

  .card-image{
    height:185px;
  }

  .card-body{
    padding:44px 16px 16px;
  }

  .card-icon{
    width:78px;
    height:78px;
    font-size:1.8rem;
  }

  .card-body h3{
    font-size:1.18rem;
  }

  .card-body p{
    font-size:.85rem;
    line-height:1.5;
  }

  .nav-btn{
    display:none!important;
  }

  .scroll-cue{
    font-size:.78rem;
    margin-top:20px;
    margin-bottom:0;
    padding:0 12px;
  }

  .property-info{
    font-size:.7rem;
    line-height:1.4;
    padding:10px 11px;
  }

  .property-info strong{
    font-size:.73rem;
  }

  .property-info-sale{
    padding:11px 11px 10px;
  }

  .property-info-sale strong{
    font-size:.76rem;
  }

  .property-info-sale .property-price{
    font-size:.82rem;
  }

  .property-specs{
    gap:6px;
  }

  .property-specs span{
    font-size:.64rem;
  }

  .property-info-sale .property-availability{
    font-size:.64rem;
  }

  .property-info-rental{
    padding:11px 11px 10px;
  }

  .property-info-rental .rental-availability{
    font-size:.64rem;
  }

  .property-info-rental .rental-main span,
  .property-info-rental .rental-monthly span{
    font-size:.61rem;
  }

  .property-info-rental .rental-monthly-title{
    font-size:.6rem;
  }
}

/* Téléphone paysage : rester sur la logique mobile,
   sans modifier le portrait mobile existant */
@media (orientation:landscape) and (max-height:600px) and (min-width:461px) and (max-width:960px){
  .profile,
  .showcase{
    width:100%;
  }

  .carousel{
    transform:none!important;
  }
}


/* V23 — Correction du rognage vertical des cartes sur tablette */
@media (min-width:461px) and (max-width:960px){
  .carousel-stage{
    min-height:620px;
    overflow:visible;
    padding-top:24px;
    padding-bottom:24px;
  }

  .carousel{
    height:570px;
    overflow:visible;
  }

  .activity-card{
    top:50%!important;
  }

  .scroll-cue{
    margin-top:14px;
  }
}

/* En paysage sur téléphone/petite tablette, conserver toute la carte accessible */
@media (orientation:landscape) and (max-height:600px) and (min-width:461px) and (max-width:960px){
  .carousel-stage{
    min-height:620px;
    overflow:visible;
  }

  .carousel{
    height:570px;
    overflow:visible;
  }
}


/* V29 — Tablette + ordinateur : langues centrées et carrousel sans superposition */
@media (min-width:461px){

  /* Sélecteur de langue centré en haut, comme sur mobile */
  .lang-switch{
    top:18px;
    left:50%;
    right:auto;
    transform:translateX(-50%);
    justify-content:center;
    flex-wrap:nowrap;
    width:max-content;
    max-width:calc(100% - 140px);
    z-index:100;
  }

  /* Réserver une vraie zone sous le sélecteur de langue */
  .showcase{
    padding-top:92px;
    padding-bottom:44px;
    justify-content:flex-start;
  }

  .eyebrow{
    margin-bottom:14px;
  }

  .title{
    margin-bottom:20px;
  }

  .dots{
    margin-bottom:28px;
  }

  /* Plus de hauteur pour éviter que les cartes ne soient coupées
     et que l'indication de swipe ne les chevauche. */
  .carousel-stage{
    min-height:680px;
    height:auto;
    overflow:visible;
    padding-top:18px;
    padding-bottom:34px;
    align-items:center;
  }

  .carousel{
    height:630px;
    overflow:visible;
  }

  .activity-card{
    top:50%!important;
  }

  .scroll-cue{
    position:relative;
    z-index:25;
    margin-top:18px;
    margin-bottom:8px;
  }
}

/* Petites/moyennes tablettes : garder le rendu mobile-like,
   avec une vraie respiration verticale. */
@media (min-width:461px) and (max-width:960px){

  .lang-switch{
    top:16px;
  }

  .profile{
    padding-top:92px;
  }

  .showcase{
    padding-top:86px;
    padding-bottom:58px;
  }

  .dots{
    margin-bottom:28px;
  }

  .carousel-stage{
    min-height:650px;
    padding-top:20px;
    padding-bottom:30px;
    overflow:visible;
  }

  .carousel{
    height:590px;
    overflow:visible;
  }

  .scroll-cue{
    margin-top:20px;
  }
}

/* Ordinateur et grandes tablettes */
@media (min-width:961px){

  .app-shell{
    min-height:980px;
  }

  .showcase{
    padding-top:90px;
    padding-bottom:48px;
  }

  .carousel-stage{
    min-height:700px;
  }

  .carousel{
    height:650px;
  }
}
