
    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0
    }

    :root {
      /* ── Nouvelle charte graphique 2025 ── */
      --encre:        #0F1A17;
      --encre-mid:    #1a2d28;
      --encre-soft:   #243830;
      --ivoire:       #F8F4EC;
      --sable:        #EDE3D2;
      --laiton:       #9C6F1C;
      --laiton-clair: #D6AF5C;
      --lagon:        #0E564D;
      --lagon-clair:  #1a7a6e;
      --orange:       #DD5600;
      --orange-hover: #c04c00;
      --muted:        #6b7c78;
      --muted-light:  #9aada9;
      --fd: 'Lora', Georgia, serif;
      --fb: 'Poppins', sans-serif;
      /* Legacy aliases pour compatibilitÃ© */
      --sand:       var(--sable);
      --gold:       var(--laiton);
      --gold-light: var(--laiton-clair);
      --night:      var(--encre);
      --night-mid:  var(--encre-mid);
      --night-soft: var(--encre-soft);
      --cream:      var(--ivoire);
      --font-display: var(--fd);
      --font-body:    var(--fb);
      --text-muted:   var(--muted);
      /* Typographie */
      --fs-body:    17.5px;
      --lh-body:    1.68;
      --btn-h:      54px;
      --radius:     3px;
    }

    html {
      scroll-behavior: smooth
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
      html { scroll-behavior: auto }
    }

    body {
      background: var(--ivoire);
      color: var(--encre);
      font-family: var(--fb);
      font-size: var(--fs-body);
      font-weight: 400;
      line-height: var(--lh-body);
      overflow-x: hidden
    }

    /* Focus clavier visible sur tous les Ã©lÃ©ments */
    :focus-visible {
      outline: 2px solid var(--orange);
      outline-offset: 3px
    }

    /* â”€â”€ CURTAIN â”€â”€ */
    #curtain {
      display: none !important;
      pointer-events: none !important;
      visibility: hidden !important;
    }

    .ct,
    .cb {
      display: none !important;
    }

    .cl {
      display: none !important;
    }

    #clogo {
      display: none !important;
      pointer-events: none !important;
      visibility: hidden !important;
      white-space: nowrap
    }

    #clogo span {
      display: none !important;
    }

    /* â”€â”€ NAV â”€â”€ */
    nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 900;
      padding: 20px 60px;
      display: grid;
      grid-template-columns: auto 1fr auto;
      align-items: center;
      gap: 24px;
      background: rgba(15, 26, 23, .96);
      border-bottom: 1px solid rgba(214, 175, 92, .15)
    }

    .nav-logo {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      text-decoration: none;
      color: var(--sand);
      font-family: var(--fd);
      font-size: 1.15rem;
      font-weight: 300;
      letter-spacing: .25em;
      text-transform: uppercase;
      background: #fff;
      border-radius: 999px;
      padding: 10px 22px
    }

    .nav-logo span {
      color: var(--gold)
    }

    .nav-logo img {
      width: auto;
      height: 70px;
      max-width: 280px;
      object-fit: contain;
      display: block
    }

    .nav-links {
      display: flex;
      gap: 36px;
      list-style: none;
      justify-self: center
    }

    .nav-links a {
      font-size: .72rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(248, 244, 236, .75);
      text-decoration: none;
      transition: opacity .3s, color .3s;
      position: relative;
      padding-bottom: 4px
    }

    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: var(--gold);
      transform: scaleX(0);
      transition: transform .3s
    }

    .nav-links a:hover,
    .nav-links a.active {
      opacity: 1;
      color: var(--laiton-clair)
    }

    .nav-links a:hover::after,
    .nav-links a.active::after {
      transform: scaleX(1)
    }

    .bha-lang-btn:hover {
      color: var(--laiton-clair) !important;
      opacity: 1 !important;
    }

    .nav-cta {
      font-size: .68rem;
      font-family: var(--fb);
      font-weight: 600;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: #fff;
      background: var(--orange);
      padding: 0 22px;
      min-height: var(--btn-h);
      display: inline-flex;
      align-items: center;
      text-decoration: none;
      border-radius: var(--radius);
      transition: background .25s
    }

    .nav-cta:hover {
      background: var(--orange-hover)
    }

    .nav-actions {
      display: flex;
      align-items: center;
      gap: 12px;
      justify-self: end
    }

    .nav-menu-btn {
      display: none;
      background: transparent;
      border: 1px solid rgba(184, 147, 90, .4);
      color: var(--sand);
      font-family: var(--fb);
      font-size: .65rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      padding: 10px 16px;
      cursor: pointer
    }

    /* â”€â”€ HERO â”€â”€ */
    .hero {
      position: relative;
      min-height: 100vh;
      overflow: hidden;
      display: flex;
      align-items: stretch; /* Permet Ã  hero-cnt de prendre toute la hauteur */
      justify-content: center;
      background: #0F1A17
    }

    /* Overlay masqué - Image claire et visible */
    .hero-ov {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom,
        rgba(10, 16, 14, .88) 0%,
        rgba(10, 16, 14, .45) 35%,
        rgba(10, 16, 14, .12) 70%,
        transparent 100%
      );
      z-index: 1
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      background: url('accueil.png') center center / cover no-repeat;
      will-change: auto
    }

    @media(max-width:768px){
      .hero-bg {
        background: url('accueil.jpg') center center / cover no-repeat;
      }
    }



    .hero-cnt {
      position: relative;
      z-index: 4;
      width: 100%;
      max-width: 1100px;
      padding: 110px 60px 50px; /* Espace pour le menu en haut, et padding bas */
      text-align: center;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      align-items: center;
      animation: fadeUp .9s ease both
    }

    /* Bloc titre : prend l'espace restant pour pousser les cartes vers le bas */
    .hero-title-block {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: 100%;
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(28px)
      }

      to {
        opacity: 1;
        transform: translateY(0)
      }
    }

    .hero-eye {
      font-size: .62rem;
      letter-spacing: .35em;
      text-transform: uppercase;
      color: #f0d4a4;
      margin-bottom: 18px;
      text-shadow: 0 3px 16px rgba(0, 0, 0, .52)
    }

    .hero-h1 {
      font-family: var(--fd);
      font-size: clamp(4rem, 9vw, 7.3rem);
      font-weight: 300;
      line-height: .95;
      letter-spacing: .01em;
      color: var(--cream);
      text-shadow: 0 10px 30px rgba(0, 0, 0, .58)
    }

    .hero-h1 em {
      font-style: italic;
      color: var(--cream)
    }

    .hero-sub {
      margin-top: 18px;
      font-size: .8rem;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: rgba(250, 247, 242, .92);
      max-width: 680px;
      line-height: 1.75;
      text-shadow: 0 6px 22px rgba(0, 0, 0, .48)
    }

    .hero-btns {
      margin-top: 34px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 14px;
      flex-wrap: wrap
    }

    .hero-btns .btn-s,
    .hero-btns .btn-p {
      min-width: 244px;
      justify-content: center;
      padding: 15px 28px;
      font-size: .62rem;
      letter-spacing: .22em;
      backdrop-filter: blur(2px)
    }

    .hero-btns .btn-s {
      background: rgba(255, 255, 255, .14);
      border-color: rgba(255, 255, 255, .3);
      color: var(--cream)
    }

    .hero-btns .btn-s:hover {
      border-color: rgba(255, 255, 255, .58);
      color: var(--cream);
      background: rgba(255, 255, 255, .2)
    }

    /* â”€â”€ INTRO â”€â”€ */
    .intro {
      padding: 100px 60px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
      background: var(--ivoire)
    }

    .intro-label {
      font-size: .65rem;
      letter-spacing: .3em;
      text-transform: uppercase;
      color: var(--laiton);
      font-weight: 600;
      margin-bottom: 16px
    }

    .intro-title {
      font-family: var(--fd);
      font-size: clamp(2rem, 3.5vw, 3rem);
      font-weight: 500;
      line-height: 1.12;
      color: var(--encre)
    }

    .intro-title em {
      font-style: italic;
      color: var(--laiton)
    }

    .intro-div {
      width: 40px;
      height: 2px;
      background: var(--laiton);
      margin: 20px 0
    }

    .intro-text {
      font-size: var(--fs-body);
      line-height: var(--lh-body);
      color: var(--muted)
    }

    .stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 36px
    }

    .stat-n {
      font-family: var(--fd);
      font-size: 3rem;
      font-weight: 500;
      color: var(--laiton);
      line-height: 1
    }

    .stat-l {
      font-size: .68rem;
      font-weight: 500;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 6px
    }

    .story {
      padding: 80px 60px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 72px;
      align-items: center;
      background: var(--sable)
    }

    .story-media {
      position: relative;
      min-height: 620px
    }

    .story-img {
      position: absolute;
      overflow: hidden;
      box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
      opacity: 0;
      transition: opacity .9s ease, transform .9s cubic-bezier(.25, .46, .45, .94)
    }

    .story-img::after,
    .vgal::after,
    .support-img::after {
      content: '';
      position: absolute;
      inset: 0;
      background: var(--night);
      transform: scaleY(1);
      transform-origin: top;
      transition: transform .9s cubic-bezier(.77, 0, .18, 1);
      z-index: 2;
      pointer-events: none
    }

    .story-img img,
    .story-img video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block
    }

    .story-img img {
      transition: transform .9s ease
    }

    .story-img video {
      background: #000
    }

    .story-img.main {
      left: 0;
      top: 0;
      width: 82%;
      height: 560px;
      transform: translateX(-70px)
    }

    .story-img.small {
      right: 0;
      bottom: 0;
      width: 44%;
      height: 330px;
      border: 10px solid var(--cream);
      transform: translateX(70px)
    }

    .story-media.vis .story-img {
      opacity: 1;
      transform: translateX(0)
    }

    .story-media.vis .story-img::after,
    .vcard.vis .vgal::after,
    .support.vis .support-img::after {
      transform: scaleY(0)
    }

    .story-media.vis .story-img img {
      transform: scale(1.04)
    }

    .story-copy {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity .8s ease, transform .8s ease
    }

    .story-copy.vis {
      opacity: 1;
      transform: translateY(0)
    }

    .story-eye,
    .reviews-eye {
      font-size: .62rem;
      letter-spacing: .35em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 22px
    }

    .story-title,
    .reviews-title {
      font-family: var(--fd);
      font-size: clamp(2rem, 4vw, 3.2rem);
      font-weight: 500;
      line-height: 1.12;
      color: var(--encre)
    }

    .story-title em,
    .reviews-title em {
      font-style: italic;
      color: var(--laiton)
    }

    .story-line,
    .reviews-line {
      width: 48px;
      height: 2px;
      background: var(--gold);
      margin: 28px 0 34px
    }

    .story-text {
      font-size: var(--fs-body);
      line-height: var(--lh-body);
      color: var(--muted);
      margin-bottom: 20px
    }

    .story-points {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px 24px;
      margin-top: 34px
    }

    .story-point {
      display: flex;
      gap: 12px;
      align-items: flex-start;
      font-size: .78rem;
      line-height: 1.5;
      color: var(--sand)
    }

    .story-point::before {
      content: '';
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--gold);
      margin-top: 7px;
      flex: 0 0 auto
    }

    .support {
      margin: 0 60px 110px;
      background: var(--night-mid);
      display: grid;
      grid-template-columns: 1fr 1fr;
      overflow: hidden
    }

    .support-img {
      position: relative;
      min-height: 520px;
      background: #0f0d0a;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden
    }

    .support-copy {
      background: #13251a;
      padding: 76px 64px;
      display: flex;
      flex-direction: column;
      justify-content: center
    }

    .support-copy .story-eye {
      margin-bottom: 24px;
      color: var(--laiton-clair);
    }

    .support-copy .story-title {
      margin-bottom: 24px;
      color: var(--ivoire);
    }

    .support-copy .story-title em {
      color: var(--laiton-clair);
    }

    .support-copy .story-text {
      color: rgba(248, 244, 236, 0.9);
    }

    .support-list {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 18px 26px;
      margin: 34px 0 38px
    }

    .support-point {
      display: flex;
      gap: 12px;
      color: var(--sand);
      font-size: .82rem;
      line-height: 1.55
    }

    .support-point::before {
      content: '';
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--gold);
      margin-top: 7px;
      flex: 0 0 auto
    }

    /* â”€â”€ FILTERS â”€â”€ */
    .filters {
      padding: 0 60px 56px
    }

    .filter-bar {
      display: flex;
      gap: 2px;
      border-bottom: 1px solid rgba(184, 147, 90, .2);
      width: fit-content
    }

    .fbtn {
      background: none;
      border: none;
      cursor: pointer;
      font-family: var(--fb);
      font-size: .63rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--muted);
      padding: 11px 26px;
      position: relative;
      transition: color .3s
    }

    .fbtn::after {
      content: '';
      position: absolute;
      bottom: -1px;
      left: 0;
      right: 0;
      height: 1px;
      background: var(--gold);
      transform: scaleX(0);
      transition: transform .3s
    }

    .fbtn.active,
    .fbtn:hover {
      color: var(--gold)
    }

    .fbtn.active::after,
    .fbtn:hover::after {
      transform: scaleX(1)
    }

    /* â”€â”€ VILLAS â”€â”€ */
    .villas {
      padding: 0 60px 110px
    }

    .sec-hd {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      margin-bottom: 56px
    }

    .sec-title {
      font-family: var(--fd);
      font-size: clamp(2rem, 3.5vw, 3rem);
      font-weight: 300;
      color: var(--laiton-clair);
    }

    .sec-title em {
      font-style: italic;
      color: var(--gold-light)
    }

    .sec-ct {
      font-size: .63rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--muted)
    }

    /* â”€â”€ VILLA CARD â”€â”€ */
    .vcard {
      display: grid;
      grid-template-columns: 1fr 1fr;
      height: 560px;
      margin-bottom: 4px;
      overflow: hidden;
      opacity: 0;
      transform: translateY(36px);
      transition: opacity .7s ease, transform .7s ease
    }

    .vcard.vis {
      opacity: 1;
      transform: translateY(0)
    }

    .vcard:nth-child(even) {
      direction: rtl
    }

    .vcard:nth-child(even)>* {
      direction: ltr
    }

    .vgal {
      position: relative;
      overflow: hidden;
      cursor: pointer;
      display: block;
      text-decoration: none
    }

    .vgal img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .8s cubic-bezier(.25, .46, .45, .94)
    }

    .vcard:hover .vgal img {
      transform: scale(1.06)
    }

    .gcnt {
      position: absolute;
      bottom: 18px;
      right: 18px;
      font-size: .58rem;
      letter-spacing: .15em;
      color: var(--cream);
      background: rgba(15, 13, 10, .6);
      padding: 5px 11px;
      backdrop-filter: blur(4px);
      z-index: 3
    }

    .gnav {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 14px;
      opacity: 0;
      transition: opacity .3s;
      z-index: 3;
      pointer-events: none
    }

    .gnav .gbtn {
      pointer-events: auto
    }

    .vgal:hover .gnav {
      opacity: 1
    }

    @media(hover:none) {
      .gnav {
        opacity: 1
      }
    }

    .gbtn {
      width: 34px;
      height: 34px;
      border: 1px solid rgba(255, 255, 255, .45);
      background: rgba(15, 13, 10, .5);
      color: var(--cream);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      backdrop-filter: blur(4px);
      transition: background .2s, border-color .2s;
      font-size: .95rem
    }

    .gbtn:hover {
      background: var(--gold);
      border-color: var(--gold)
    }

    .vinfo {
      background: var(--night-mid);
      padding: 30px 48px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      position: relative
    }

    .vinfo::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, var(--gold), transparent)
    }

    .vzone {
      font-size: .58rem;
      letter-spacing: .3em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 14px
    }

    .vname {
      font-family: var(--fd);
      font-size: clamp(1.8rem, 2.5vw, 2.5rem);
      font-weight: 300;
      color: var(--cream);
      line-height: 1.1;
      margin-bottom: 16px
    }

    .vname em {
      font-style: italic
    }

    .vspecs {
      display: flex;
      gap: 28px;
      margin-bottom: 16px;
      padding-bottom: 16px;
      border-bottom: 1px solid rgba(184, 147, 90, .15)
    }

    .sv {
      font-family: var(--fd);
      font-size: 1.5rem;
      font-weight: 300;
      color: var(--cream)
    }

    .sl {
      font-size: .53rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 3px
    }

    .vtags {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      margin-bottom: 16px
    }

    .tag {
      font-size: .56rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--muted);
      border: 1px solid rgba(184, 147, 90, .25);
      padding: 5px 11px
    }

    .desc {
      font-size: .84rem;
      line-height: 1.8;
      color: var(--muted);
      margin-bottom: 16px;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .vdesc {
      font-size: .78rem;
      line-height: 1.85;
      color: var(--muted);
      margin-bottom: 16px;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .vfoot {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      margin-top: auto
    }

    .price-a {
      font-family: var(--fd);
      font-size: 1.9rem;
      font-weight: 300;
      color: var(--gold)
    }

    .price-u {
      font-size: .58rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 3px
    }

    .price-n {
      font-size: .56rem;
      color: var(--muted);
      margin-top: 2px
    }

    .vacts {
      display: flex;
      flex-direction: column;
      gap: 9px
    }

    .btn-p {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: var(--orange);
      color: #fff;
      font-family: var(--fb);
      font-size: .72rem;
      font-weight: 600;
      letter-spacing: .1em;
      text-transform: uppercase;
      text-decoration: none;
      padding: 0 28px;
      min-height: var(--btn-h);
      border-radius: var(--radius);
      border: none;
      transition: background .25s;
      cursor: pointer
    }

    .btn-p:hover {
      background: var(--orange-hover)
    }

    .btn-s {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      border: 2px solid var(--laiton);
      color: var(--encre);
      background: transparent;
      font-family: var(--fb);
      font-size: .72rem;
      font-weight: 500;
      letter-spacing: .1em;
      text-transform: uppercase;
      text-decoration: none;
      padding: 0 24px;
      min-height: var(--btn-h);
      border-radius: var(--radius);
      transition: border-color .25s, color .25s, background .25s;
      cursor: pointer
    }

    .btn-s:hover {
      border-color: var(--orange);
      color: var(--orange);
      background: rgba(221, 86, 0, .06)
    }

    /* Universal fix for contrast inside dark-theme and light-theme card containers */
    .dark-theme .btn-s,
    .dark-theme button.btn-s,
    .dark-theme a.btn-s {
      color: #0f1a17 !important;
    }
    .light-theme .btn-s,
    .light-theme button.btn-s,
    .light-theme a.btn-s {
      color: #ffffff !important;
    }

    .btn-pay {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      background: rgba(184, 147, 90, .14);
      border: 1px solid var(--gold);
      color: var(--gold-light);
      font-family: var(--fb);
      font-size: .58rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      padding: 13px 20px;
      cursor: pointer;
      transition: background .3s, border-color .3s, color .3s
    }

    .btn-pay:hover {
      background: rgba(184, 147, 90, .3);
      border-color: var(--gold-light);
      color: var(--cream)
    }

    .btn-pay::before {
      content: '';
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--gold-light);
      flex-shrink: 0
    }

    .btn-pay:hover::before {
      background: var(--cream)
    }

    /* â”€â”€ LONGUE DURÃ‰E â”€â”€ */
    .ld {
      margin: 0 60px 4px;
      background: var(--night-soft);
      padding: 80px;
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 72px;
      align-items: center;
      position: relative;
      overflow: hidden
    }

    .ld::before {
      content: 'LD';
      position: absolute;
      right: 50px;
      top: 50%;
      transform: translateY(-50%);
      font-family: var(--fd);
      font-size: 16rem;
      font-weight: 300;
      color: rgba(184, 147, 90, .04);
      pointer-events: none;
      line-height: 1
    }

    .ld-badge {
      display: inline-block;
      font-size: .53rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--night);
      background: var(--gold);
      padding: 5px 13px;
      margin-bottom: 22px
    }

    .ld-title {
      font-family: var(--fd);
      font-size: clamp(2rem, 3vw, 2.8rem);
      font-weight: 300;
      color: var(--cream);
      line-height: 1.15;
      margin-bottom: 18px
    }

    .ld-title em {
      font-style: italic;
      color: var(--gold-light)
    }

    .ld-desc {
      font-size: .8rem;
      line-height: 1.9;
      color: var(--muted)
    }

    .ld-info {
      display: flex;
      flex-direction: column;
      gap: 28px
    }

    .ld-pb {
      padding: 28px;
      background: rgba(184, 147, 90, .06);
      border: 1px solid rgba(184, 147, 90, .15)
    }

    .ld-pl {
      font-size: .56rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 10px
    }

    .ld-pa {
      font-family: var(--fd);
      font-size: 2.3rem;
      font-weight: 300;
      color: var(--gold)
    }

    .ld-ps {
      font-size: .58rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 5px
    }

    .ld-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px
    }

    .ld-sp {
      padding: 14px;
      border: 1px solid rgba(184, 147, 90, .12)
    }

    .ld-sv {
      font-family: var(--fd);
      font-size: 1.3rem;
      font-weight: 300;
      color: var(--cream)
    }

    .ld-sl {
      font-size: .53rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 3px
    }

    /* â”€â”€ COMMERCIAUX â”€â”€ */
    .comm {
      margin: 0 60px 110px;
      border: 1px solid rgba(184, 147, 90, .15);
      padding: 68px
    }

    .comm-hd {
      display: flex;
      align-items: baseline;
      gap: 28px;
      margin-bottom: 52px
    }

    .comm-tag {
      font-size: .53rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--night);
      background: var(--muted);
      padding: 5px 11px;
      white-space: nowrap
    }

    .comm-title {
      font-family: var(--fd);
      font-size: clamp(1.8rem, 2.8vw, 2.5rem);
      font-weight: 300;
      color: var(--cream)
    }

    .comm-title em {
      font-style: italic;
      color: var(--gold-light)
    }

    .comm-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 2px;
      margin-bottom: 36px
    }

    .ci {
      background: var(--night-soft);
      padding: 26px 22px;
      border-top: 2px solid transparent;
      transition: border-color .3s, background .3s
    }

    .ci:hover {
      border-color: var(--gold);
      background: rgba(184, 147, 90, .06)
    }

    .ci-n {
      font-family: var(--fd);
      font-size: 2rem;
      font-weight: 300;
      color: rgba(184, 147, 90, .3);
      line-height: 1
    }

    .ci-s {
      font-size: .73rem;
      color: var(--cream);
      margin: 10px 0 3px;
      font-weight: 400
    }

    .ci-p {
      font-size: .63rem;
      color: var(--gold);
      letter-spacing: .05em
    }

    .ci-note {
      font-size: .53rem;
      color: var(--muted);
      margin-top: 3px
    }

    .comm-ft {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-top: 28px;
      border-top: 1px solid rgba(184, 147, 90, .12)
    }

    .comm-ft p {
      font-size: .73rem;
      line-height: 1.7;
      color: var(--muted);
      max-width: 460px
    }

    /* â”€â”€ CTA BANNER â”€â”€ */
    .cta {
      margin: 0 60px 110px;
      background: url('https://images.unsplash.com/photo-1566073771259-6a8506099945?w=1600&q=80') center/cover no-repeat;
      position: relative;
      padding: 110px 80px;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      overflow: hidden
    }

    .cta::before {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(15, 13, 10, .76)
    }

    .cta>* {
      position: relative;
      z-index: 1
    }

    .cta-eye {
      font-size: .58rem;
      letter-spacing: .35em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 18px
    }

    .cta-h2 {
      font-family: var(--fd);
      font-size: clamp(2.2rem, 4vw, 3.6rem);
      font-weight: 300;
      color: var(--cream);
      line-height: 1.1;
      margin-bottom: 18px
    }

    .cta-h2 em {
      font-style: italic;
      color: var(--gold-light)
    }

    .cta-sub {
      font-size: .78rem;
      color: var(--muted);
      letter-spacing: .1em;
      margin-bottom: 44px
    }

    .cta-btns {
      display: flex;
      gap: 14px
    }

    .reviews {
      padding: 80px 60px;
      background: var(--ivoire)
    }

    .reviews-head {
      text-align: center;
      max-width: 760px;
      margin: 0 auto 54px
    }

    .reviews-line {
      margin-left: auto;
      margin-right: auto
    }

    .reviews-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 24px;
      max-width: 880px;
      margin: 0 auto 40px
    }

    .review-card {
      background: var(--sable);
      border: 1px solid rgba(156, 111, 28, .2);
      border-radius: var(--radius);
      padding: 36px 30px;
      opacity: 0;
      transform: translateY(34px);
      transition: opacity .75s ease, transform .75s ease, border-color .3s
    }

    .review-card.vis {
      opacity: 1;
      transform: translateY(0)
    }

    .review-card:hover {
      border-color: rgba(156, 111, 28, .5)
    }

    .quote {
      font-family: var(--fd);
      font-size: 3rem;
      line-height: .7;
      color: var(--laiton);
      margin-bottom: 18px
    }

    .review-text {
      font-size: var(--fs-body);
      line-height: var(--lh-body);
      color: var(--muted);
      font-style: italic;
      margin-bottom: 24px
    }

    .review-author {
      display: flex;
      align-items: center;
      gap: 14px
    }

    .avatar {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: var(--gold);
      color: var(--night);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--fd);
      font-size: 1rem
    }

    .author-name {
      font-size: .9rem;
      font-weight: 600;
      color: var(--encre)
    }

    .author-meta {
      font-size: .75rem;
      color: var(--muted);
      margin-top: 2px
    }

    .stars {
      font-size: .85rem;
      letter-spacing: .1em;
      color: var(--laiton);
      margin-top: 5px
    }

    /* â”€â”€ VOIR TOUS LES AVIS â”€â”€ */
    .reviews-all {
      text-align: center;
      margin-top: 36px
    }

    /* â”€â”€ FOOTER â”€â”€ */
    footer {
      background: var(--night-mid);
      padding: 76px 60px 36px;
      border-top: 1px solid rgba(184, 147, 90, .1)
    }

    .ft {
      display: grid;
      grid-template-columns: 1.5fr 1fr 1fr 1fr;
      gap: 56px;
      margin-bottom: 56px
    }

    .f-logo {
      font-family: var(--fd);
      font-size: 1.2rem;
      font-weight: 300;
      letter-spacing: .2em;
      color: var(--cream);
      text-transform: uppercase;
      margin-bottom: 18px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      text-decoration: none
    }

    .footer-logo img, .f-logo img {
      width: auto;
      height: 70px;
      max-width: 280px;
      object-fit: contain;
      background: #fff;
      border-radius: 999px;
      padding: 10px 22px;
      display: block
    }


    .f-tag {
      font-size: .73rem;
    }

    .f-sl svg {
      width: 17px;
      height: 17px;
      fill: currentColor;
      display: block
    }

    .f-col h4 {
      font-size: .58rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 22px
    }

    .f-col ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 11px
    }

    .f-col a, .f-col span {
      font-size: .73rem;
      color: var(--muted);
      text-decoration: none;
      transition: color .3s
    }

    .f-col a:hover {
      color: var(--sand)
    }

    .f-bot {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-top: 28px;
      border-top: 1px solid rgba(184, 147, 90, .08);
      font-size: .58rem;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--muted)
    }

    .sponsors-bar {
      background: var(--encre-mid);
      border-top: 1px solid rgba(214, 175, 92, .12);
      border-bottom: 1px solid rgba(214, 175, 92, .12);
      padding: 36px 0 32px;
      overflow: hidden
    }

    .sponsors-label {
      text-align: center;
      font-size: .58rem;
      letter-spacing: .28em;
      text-transform: uppercase;
      color: var(--laiton-clair);
      font-weight: 600;
      margin-bottom: 24px
    }

    .sponsors-track-wrap {
      overflow: hidden;
      -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
      mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent)
    }

    .sponsors-track {
      display: flex;
      width: max-content;
      animation: sponsorsScroll 35s linear infinite;
      will-change: transform
    }

    .sponsors-track:hover {
      animation-play-state: paused
    }

    .sponsors-group {
      display: flex;
      align-items: center;
      gap: 72px;
      flex-shrink: 0;
      padding-right: 72px
    }

    .sponsor-logo {
      height: 44px;
      object-fit: contain;
      mix-blend-mode: screen; /* Rend le fond blanc transparent sur le fond sombre */
      opacity: 0.9;
      transition: opacity 0.3s;
    }
    
    .sponsor-logo:hover {
      opacity: 1;
    }

    .sponsor-item {
      font-size: 1.05rem;
      font-weight: 500;
      letter-spacing: 0.06em;
      white-space: nowrap;
      opacity: 0.88;
    }
    .sponsor-item.canal {
      color: #fff;
      font-weight: 700;
      font-size: 1.2rem;
    }
    .sponsor-item.canal sup {
      font-size: 0.55em;
      color: var(--gold-light);
      vertical-align: super;
    }
    .sponsor-item.ff {
      color: var(--sand);
      font-style: italic;
      font-family: var(--font-display);
      font-size: 1.3rem;
    }
    .sponsor-item.netflix {
      color: #e50914;
      font-weight: 700;
    }
    .sponsor-item.sir {
      color: #4a9fd4;
      font-weight: 600;
    }
    .sponsor-item.sar {
      color: var(--gold-light);
      font-weight: 600;
      letter-spacing: 0.15em;
    }

    @keyframes sponsorsScroll {
      0% { transform: translateX(0) }
      100% { transform: translateX(-50%) }
    }

    /* â”€â”€ MODAL â”€â”€ */
    .modal {
      position: fixed;
      inset: 0;
      z-index: 9000;
      background: rgba(10, 8, 6, .95);
      backdrop-filter: blur(8px);
      display: none;
      align-items: center;
      justify-content: center
    }

    .modal.open {
      display: flex
    }

    .modal-in {
      position: relative;
      max-width: 880px;
      width: 90%;
      max-height: 85vh
    }

    .modal-img {
      width: 100%;
      max-height: 80vh;
      object-fit: contain;
      display: block
    }

    .modal-cl {
      position: absolute;
      top: -46px;
      right: 0;
      background: none;
      border: none;
      cursor: pointer;
      color: var(--sand);
      font-family: var(--fb);
      font-size: .63rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      padding: 8px
    }

    .modal-cl:hover {
      color: var(--gold)
    }

    .modal-nav {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      display: flex;
      justify-content: space-between;
      width: calc(100% + 90px);
      left: -45px
    }

    .mbtn {
      background: rgba(184, 147, 90, .15);
      border: 1px solid rgba(184, 147, 90, .3);
      color: var(--sand);
      width: 42px;
      height: 42px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      font-size: 1.1rem;
      transition: background .2s
    }

    .mbtn:hover {
      background: var(--gold);
      border-color: var(--gold);
      color: var(--night)
    }

    .modal-cap {
      text-align: center;
      margin-top: 18px;
      font-size: .63rem;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--muted)
    }

    /* â”€â”€ ADMIN â”€â”€ */
    .nav-admin-btn {
      position: relative;
      z-index: 100001;
      background: transparent;
      border: 1px solid rgba(184, 147, 90, .45);
      color: var(--sand);
      font-family: var(--fb);
      font-size: .62rem;
      letter-spacing: .16em;
      text-transform: uppercase;
      padding: 10px 16px;
      cursor: pointer
    }

    .nav-admin-btn:hover {
      background: rgba(184, 147, 90, .15);
      border-color: var(--gold);
      color: var(--gold-light)
    }

    .bh-admin-overlay {
      position: fixed;
      inset: 0;
      z-index: 100020;
      background: rgba(10, 8, 6, .92);
      display: none;
      align-items: center;
      justify-content: center;
      padding: 16px
    }

    .bh-admin-overlay.open {
      display: flex
    }

    .bh-admin-box {
      position: relative;
      width: min(920px, 100%);
      max-height: min(92vh, 900px);
      overflow: auto;
      background: var(--night-mid);
      border: 1px solid rgba(184, 147, 90, .22);
      padding: 24px 22px 28px
    }

    .bh-admin-close {
      position: absolute;
      top: 12px;
      right: 12px;
      width: 40px;
      height: 40px;
      border: 1px solid rgba(184, 147, 90, .25);
      background: transparent;
      color: var(--sand);
      font-size: 1.3rem;
      cursor: pointer;
      line-height: 1
    }

    .bh-admin-title {
      font-family: var(--fd);
      font-size: 1.8rem;
      font-weight: 300;
      color: var(--cream);
      margin-bottom: 8px
    }

    .bh-admin-sub {
      color: var(--muted);
      line-height: 1.6;
      margin-bottom: 18px;
      font-size: .92rem
    }

    .bh-admin-label {
      display: block;
      font-size: .68rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 8px
    }

    .bh-admin-input,
    .bh-admin-select {
      width: 100%;
      padding: 11px 12px;
      background: var(--night-soft);
      border: 1px solid rgba(184, 147, 90, .25);
      color: var(--cream);
      font: inherit
    }

    .bh-admin-btn {
      display: inline-flex;
      padding: 11px 16px;
      border: 1px solid var(--gold);
      background: var(--gold);
      color: var(--night);
      font: inherit;
      font-size: .74rem;
      cursor: pointer
    }

    .bh-admin-btn-ghost {
      background: transparent;
      color: var(--sand)
    }

    .bh-admin-btn-danger {
      background: transparent;
      border-color: #c45c5c;
      color: #c45c5c
    }

    .bh-admin-hidden {
      display: none !important
    }

    .bh-admin-drop {
      border: 2px dashed rgba(184, 147, 90, .35);
      padding: 24px;
      text-align: center;
      color: var(--muted);
      cursor: pointer;
      margin-bottom: 16px
    }

    .bh-admin-drop input {
      display: none
    }

    .bh-admin-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
      gap: 12px
    }

    .bh-admin-photo {
      position: relative;
      background: var(--night-soft);
      aspect-ratio: 4/3;
      overflow: hidden
    }

    .bh-admin-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover
    }

    .bh-admin-msg {
      margin-top: 12px;
      padding: 10px;
      font-size: .85rem
    }

    .bh-admin-msg.err {
      background: rgba(196, 92, 92, .12);
      color: #f0b0b0
    }

    .bh-admin-msg.ok {
      background: rgba(90, 158, 111, .12);
      color: #b8e0c4
    }

    /* â”€â”€ RESPONSIVE â”€â”€ */
    @media(max-width:1024px) {
      nav {
        padding: 24px 20px;
        background: rgba(15, 13, 10, .96)
      }

      .nav-admin-btn {
        position: relative;
        z-index: 100001;
        background: transparent;
        border: 1px solid rgba(184, 147, 90, .45);
        color: var(--sand);
        font-family: var(--font-body);
        font-size: .62rem;
        letter-spacing: .16em;
        text-transform: uppercase;
        padding: 10px 16px;
        cursor: pointer;
        text-decoration: none;
        display: inline-flex;
        align-items: center
      }

      .nav-admin-btn:hover {
        background: rgba(184, 147, 90, .15);
        border-color: var(--gold);
        color: var(--gold-light)
      }

      .nav-menu-btn {
        display: inline-flex;
        white-space: nowrap
      }

      .nav-logo {
        font-size: .9rem;
        letter-spacing: .18em;
        padding: 8px 16px
      }

      .nav-logo img {
        height: 70px;
        max-width: 280px
      }

      .nav-links {
        position: absolute;
        top: 100%;
        right: 0;
        left: auto;
        display: none;
        flex-direction: column;
        gap: 0;
        background: var(--night-mid);
        border: 1px solid rgba(184, 147, 90, .22);
        padding: 10px;
        min-width: 200px;
        z-index: 100002
      }

      nav.nav-open .nav-links, header.nav-open .nav-links {
        display: flex !important;
      }

      .nav-links li {
        width: 100%
      }

      .nav-links a {
        display: block;
        padding: 16px 14px;
        opacity: 1;
        border-bottom: 1px solid rgba(184, 147, 90, .08)
      }

      .nav-links li:last-child a {
        border-bottom: 0
      }

      .hero-cnt {
        padding: 128px 28px 64px
      }

      .intro {
        padding: 72px 28px;
        grid-template-columns: 1fr;
        gap: 44px
      }

      .filters,
      .villas {
        padding: 0 28px 72px
      }

      .story {
        padding: 0 28px 72px;
        grid-template-columns: 1fr;
        gap: 46px
      }

      .story-media {
        min-height: 520px
      }

      .story-img.main {
        width: 86%;
        height: 460px
      }

      .story-img.small {
        width: 48%;
        height: 260px
      }

      .support {
        margin: 0 28px 72px;
        grid-template-columns: 1fr
      }

      .support-img {
        min-height: 360px
      }

      .support-copy {
        padding: 52px 36px
      }

      .reviews {
        padding: 0 28px 72px
      }

      .reviews-grid {
        grid-template-columns: 1fr 1fr
      }

      .vcard {
        grid-template-columns: 1fr;
        min-height: auto;
        height: auto
      }

      .vcard:nth-child(even) {
        direction: ltr
      }

      .vgal {
        height: 300px
      }

      .vinfo {
        padding: 36px 28px
      }

      .ld {
        margin: 0 28px 4px;
        padding: 52px 36px;
        grid-template-columns: 1fr;
        gap: 44px
      }

      .comm {
        margin: 0 28px 72px;
        padding: 44px 28px
      }

      .comm-grid {
        grid-template-columns: repeat(2, 1fr)
      }

      .cta {
        margin: 0 28px 72px;
        padding: 72px 28px
      }

      .ft {
        grid-template-columns: 1fr 1fr;
        gap: 36px
      }

      footer {
        padding: 56px 28px 28px
      }
    }

    @media(max-width:640px) {
      .hero-h1 {
        font-size: 3rem
      }

      .nav-cta {
        display: none
      }

      .nav-links {
        right: 0;
        left: auto;
        min-width: 180px
      }

      .comm-grid {
        grid-template-columns: 1fr
      }

      .ft {
        grid-template-columns: 1fr
      }

      .reviews-grid {
        grid-template-columns: 1fr
      }

      .cta-btns {
        flex-direction: column
      }

      .vspecs {
        flex-wrap: wrap
      }

      .support-list {
        grid-template-columns: 1fr
      }

      .support-copy {
        padding: 42px 26px
      }

      .vfoot {
        flex-direction: column;
        align-items: flex-start;
        gap: 22px
      }
    }

    @media(max-width:768px) {

      html,
      body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden
      }

      body {
        min-width: 0
      }

      nav {
        width: 100%;
        max-width: 100vw
      }

      img,
      iframe {
        max-width: 100%
      }

      .hero,
      .intro,
      .story,
      .support,
      .filters,
      .villas,
      .ld,
      .comm,
      .cta,
      footer {
        max-width: 100%;
        overflow: hidden
      }

      .intro,
      .stats,
      .story,
      .support,
      .support-list,
      .story-points,
      .vcard,
      .ld,
      .comm-grid,
      .reviews-grid,
      .ft {
        grid-template-columns: 1fr
      }

      .hero-cnt {
        padding-left: 20px;
        padding-right: 20px
      }

      .hero-h1 {
        font-size: clamp(2.7rem, 18vw, 4rem)
      }

      .hero-btns {
        flex-direction: column;
        width: 100%
      }

      .hero-btns .btn-s,
      .hero-btns .btn-p {
        width: 100%;
        min-width: 0
      }

      .intro,
      .filters,
      .villas {
        padding-left: 20px;
        padding-right: 20px
      }

      .story {
        padding-left: 20px;
        padding-right: 20px
      }

      .support,
      .ld,
      .comm,
      .cta {
        margin-left: 20px;
        margin-right: 20px
      }

      .support-copy {
        padding: 44px 24px
      }

      .sec-hd,
      .comm-hd,
      .comm-ft {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px
      }

      .filter-bar {
        width: 100%;
        overflow-x: auto
      }

      .fbtn {
        padding-left: 16px;
        padding-right: 16px;
        white-space: nowrap
      }

      .vcard {
        display: grid;
        grid-template-columns: 1fr;
        min-height: auto;
        height: auto
      }

      .vcard:nth-child(even) {
        direction: ltr
      }

      .vgal {
        min-height: 280px
      }

      .vinfo {
        padding: 30px 22px
      }

      .vspecs,
      .vtags,
      .cta-btns {
        flex-wrap: wrap
      }

      .btn-p,
      .btn-s,
      .btn-pay {
        width: 100%;
        justify-content: center;
        text-align: center
      }

      .modal-in {
        width: calc(100vw - 32px)
      }

      .modal-nav {
        position: static;
        transform: none;
        width: 100%;
        left: auto;
        margin-top: 14px
      }
    }

    .lead-modal {
      position: fixed;
      inset: 0;
      z-index: 9400;
      background: rgba(10, 8, 6, .92);
      display: none;
      align-items: center;
      justify-content: center;
      padding: 20px
    }

    .lead-modal.open {
      display: flex
    }

    .lead-box {
      position: relative;
      width: min(760px, 100%);
      max-height: min(92vh, 900px);
      overflow: auto;
      background: var(--night-mid);
      border: 1px solid rgba(184, 147, 90, .2);
      padding: 32px 28px;
      box-shadow: 0 30px 80px rgba(0, 0, 0, .45)
    }

    .lead-close {
      position: absolute;
      top: 14px;
      right: 14px;
      width: 42px;
      height: 42px;
      border: 1px solid rgba(184, 147, 90, .25);
      background: transparent;
      color: var(--sand);
      font-size: 1.4rem;
      line-height: 1;
      cursor: pointer
    }

    .lead-close:hover {
      border-color: var(--gold);
      color: var(--gold)
    }

    .lead-eyebrow {
      font-size: .62rem;
      letter-spacing: .24em;
      text-transform: uppercase;
      color: var(--gold-light);
      margin-bottom: 10px
    }

    .lead-title {
      font-family: var(--font-display);
      font-size: 2rem;
      font-weight: 300;
      line-height: 1.05;
      color: var(--cream);
      margin-bottom: 10px
    }

    .lead-sub {
      color: var(--text-muted);
      line-height: 1.7;
      margin-bottom: 22px
    }

    .lead-summary {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
      margin-bottom: 22px
    }

    .lead-summary div {
      padding: 14px 16px;
      border: 1px solid rgba(184, 147, 90, .14);
      background: rgba(255, 255, 255, .02)
    }

    .lead-summary span {
      display: block;
      font-size: .62rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 6px
    }

    .lead-summary strong {
      font-size: 1rem;
      font-weight: 400;
      color: var(--sand)
    }

    .lead-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px
    }

    .lead-field {
      display: flex;
      flex-direction: column;
      gap: 8px
    }

    .lead-field.full {
      grid-column: 1/-1
    }

    .lead-field label {
      font-size: .68rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--sand)
    }

    .lead-field input,
    .lead-field select,
    .lead-field textarea {
      width: 100%;
      border: 1px solid rgba(184, 147, 90, .2);
      background: rgba(255, 255, 255, .03);
      color: var(--cream);
      padding: 14px 15px;
      font: inherit;
      outline: none
    }

    .lead-field input:focus,
    .lead-field select:focus,
    .lead-field textarea:focus {
      border-color: var(--gold);
      box-shadow: 0 0 0 1px rgba(184, 147, 90, .2)
    }

    .lead-field textarea {
      min-height: 110px;
      resize: vertical
    }

    .lead-field select option {
      color: #111
    }

    .lead-field input[readonly] {
      opacity: .8;
      background: rgba(255, 255, 255, .02)
    }

    .lead-note {
      margin-top: 18px;
      color: var(--text-muted);
      line-height: 1.6
    }

    .lead-actions {
      display: flex;
      justify-content: flex-end;
      gap: 12px;
      margin-top: 22px
    }

    .lead-cancel,
    .lead-submit {
      border: 0;
      font-family: var(--font-body);
      font-size: .68rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      padding: 14px 22px;
      cursor: pointer
    }

    .lead-cancel {
      background: transparent;
      color: var(--sand);
      border: 1px solid rgba(184, 147, 90, .25)
    }

    .lead-submit {
      background: var(--gold);
      color: #fff
    }

    .lead-cancel:hover {
      border-color: var(--gold);
      color: var(--gold)
    }

    .lead-submit:hover {
      background: var(--gold-light)
    }

    .lead-hidden {
      display: none !important
    }

      }

      .lead-cancel,
      .lead-submit {
        width: 100%
      }
    }

    /* ── HERO INTENTION SELECTOR ── */
    .intent-section {
      background: var(--ivoire);
      padding: 80px 0 20px;
      display: flex;
      justify-content: center;
      width: 100%;
    }

    .hero-intent {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
      width: 100%;
    }

    .intent-card {
      background: var(--encre);
      border: 1px solid rgba(214, 175, 92, .25);
      border-radius: var(--radius);
      padding: 24px 22px;
      cursor: pointer;
      text-decoration: none;
      transition: background .25s, border-color .25s, transform .2s;
      text-align: left;
      display: flex;
      flex-direction: column;
      gap: 8px;
      min-height: 110px;
      backdrop-filter: blur(6px);
      color: var(--ivoire)
    }

    .intent-card:hover,
    .intent-card:focus-visible {
      background: rgba(221, 86, 0, .85);
      border-color: var(--orange);
      transform: translateY(-3px)
    }

    .intent-card:focus-visible {
      outline: 2px solid #fff;
      outline-offset: 3px
    }

    .intent-icon {
      font-size: 1.5rem;
      line-height: 1
    }

    .intent-title {
      font-family: var(--fb);
      font-size: .88rem;
      font-weight: 600;
      letter-spacing: .02em;
      line-height: 1.25;
      color: #fff
    }

    .intent-sub {
      font-size: .72rem;
      color: rgba(248, 244, 236, .72);
      line-height: 1.4;
      margin-top: 2px
    }

    @media(max-width:768px) {
      .hero-intent {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin-top: 32px
      }
      .intent-card {
        min-height: 90px;
        padding: 18px 14px
      }
    }

    @media(max-width:480px) {
      .hero-intent {
        grid-template-columns: 1fr 1fr
      }
    }

    /* â”€â”€ NOS ZONES â”€â”€ */
    .zones {\n      padding: 80px 60px;\n      background: var(--encre)
    }

    .zones-head {
      text-align: center;
      margin-bottom: 48px
    }

    .zones-eye {
      font-size: .65rem;
      letter-spacing: .32em;
      text-transform: uppercase;
      color: var(--laiton-clair);
      font-weight: 600;
      margin-bottom: 14px
    }

    .zones-title {
      font-family: var(--fd);
      font-size: clamp(1.8rem, 3vw, 2.6rem);
      font-weight: 500;
      color: var(--ivoire);
      line-height: 1.15
    }

    .zones-title em {
      font-style: italic;
      color: var(--laiton-clair)
    }

    .zones-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 3px
    }

    .zone-card {
      background: var(--encre-mid);
      padding: 44px 32px;
      border-top: 3px solid transparent;
      transition: border-color .3s, background .3s;
      text-decoration: none
    }

    .zone-card:hover {
      border-color: var(--orange);
      background: rgba(221, 86, 0, .08)
    }

    .zone-num {
      font-family: var(--fd);
      font-size: 3rem;
      font-weight: 500;
      color: rgba(214, 175, 92, .25);
      line-height: 1;
      margin-bottom: 14px
    }

    .zone-name {
      font-family: var(--fd);
      font-size: 1.6rem;
      font-weight: 500;
      color: var(--ivoire);
      line-height: 1.1;
      margin-bottom: 10px
    }

    .zone-name em {
      font-style: italic;
      color: var(--laiton-clair)
    }

    .zone-desc {
      font-size: .8rem;
      line-height: 1.7;
      color: var(--muted-light);
      margin-bottom: 20px
    }

    .zone-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px
    }

    .zone-tag {
      font-size: .6rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--laiton-clair);
      border: 1px solid rgba(214, 175, 92, .3);
      padding: 4px 10px;
      border-radius: var(--radius)
    }

    @media(max-width:1024px) {
      .zones-grid { grid-template-columns: 1fr 1fr }
    }

    @media(max-width:640px) {
      .zones { padding: 60px 20px }
      .zones-grid { grid-template-columns: 1fr }
      .zone-card { padding: 32px 20px }
    }

    /* â”€â”€ TRUSTED BAR â”€â”€ */
    .trusted-bar {
      background: var(--sable);
      border-top: 1px solid rgba(156, 111, 28, .15);
      border-bottom: 1px solid rgba(156, 111, 28, .15);
      padding: 60px 60px;
      text-align: center
    }

    .trusted-label {
      font-size: .65rem;
      letter-spacing: .32em;
      text-transform: uppercase;
      color: var(--laiton);
      font-weight: 600;
      margin-bottom: 36px
    }

    .trusted-grid {
      display: flex;
      justify-content: center;
      align-items: center;
      flex-wrap: wrap;
      gap: 32px 56px
    }

    .trusted-item {
      font-family: var(--fd);
      font-size: 1.15rem;
      font-weight: 500;
      color: var(--muted);
      letter-spacing: .06em;
      opacity: .75;
      transition: opacity .3s, color .3s
    }

    .trusted-item:hover {
      opacity: 1;
      color: var(--laiton)
    }

    .trusted-note {
      margin-top: 32px;
      font-size: .75rem;
      color: var(--muted);
      line-height: 1.6
    }

    /* â”€â”€ FOOTER UPDATES â”€â”€ */
    footer {
      background: var(--encre);
      padding: 76px 60px 36px;
      border-top: 1px solid rgba(214, 175, 92, .15)
    }

    .f-bot a {
      color: var(--muted-light);
      text-decoration: none;
      transition: color .3s
    }

    .f-bot a:hover {
      color: var(--laiton-clair)
    }

    .avatar {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: var(--laiton);
      color: var(--ivoire);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--fd);
      font-size: 1rem;
      font-weight: 600
    }

    @media(max-width:768px) {
      .trusted-bar { padding: 48px 20px }
      .trusted-grid { gap: 24px 32px }
    }
  


/* ==========================================================================
   PAGE-SPECIFIC STYLES (AUTOMATICALLY CONSOLIDATED)
   ========================================================================== */

/* --- Page: Ventes --- */
.btn-primary{display:inline-flex;align-items:center;gap:12px;background:var(--gold);color:var(--night);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:14px 28px;transition:.3s}.btn-primary:hover{background:var(--gold-light)}.btn-secondary{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(184,147,90,.4);color:var(--sand);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:13px 28px;transition:.3s}.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}.hero{position:relative;min-height:86vh;display:flex;align-items:flex-end;overflow:hidden;background:#0f0d0a;}.hero-bg{position:absolute;inset:0;background: url('accueil.png') center center / cover no-repeat;transform:scale(1)}.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(15,13,10,.72) 0%,rgba(15,13,10,.28) 42%,rgba(15,13,10,.10) 100%)}.hero-content{position:relative;z-index:1;padding:0 60px 80px}.eyebrow{font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;color:#f0d4a4;margin-bottom:20px;text-shadow:0 3px 16px rgba(0,0,0,.52)}.hero-title{font-family:var(--font-display);font-size:clamp(3.5rem,8vw,7rem);font-weight:300;line-height:1;color:var(--cream);text-shadow:0 10px 30px rgba(0,0,0,.58)}.hero-title em,.section-title em,.card-title em,.cta-title em{font-style:italic;color:var(--gold-light)}.hero-sub{margin-top:20px;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(250,247,242,.92);max-width:560px;text-shadow:0 6px 22px rgba(0,0,0,.48)}.intro{padding:110px 60px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.section-title{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3.6rem);font-weight:300;line-height:1.12;color:var(--cream)}.text{font-size:.86rem;line-height:1.85;color:var(--text-muted);margin-top:28px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:36px}.stat-number{font-family:var(--font-display);font-size:3rem;color:var(--gold);line-height:1}.stat-label{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-top:8px}.properties{padding:0 60px 120px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:54px}.count{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.property-card{display:grid;grid-template-columns:1fr 1fr;min-height:520px;margin-bottom:4px;background:var(--night-mid);overflow:hidden}.property-card:nth-child(even){direction:rtl}.property-card:nth-child(even)>*{direction:ltr}.property-img{min-height:420px;overflow:hidden}.property-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s}.property-card:hover img{transform:scale(1.06)}.property-info{padding:58px 54px;display:flex;flex-direction:column;justify-content:center}.zone{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}.card-title{font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.8rem);font-weight:300;color:var(--cream);line-height:1.08;margin-bottom:28px}.specs{display:flex;gap:28px;flex-wrap:wrap;padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid rgba(184,147,90,.15)}.spec-val{font-family:var(--font-display);font-size:1.55rem;color:var(--cream)}.spec-label{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}.tag{font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);border:1px solid rgba(184,147,90,.25);padding:5px 12px}.desc{font-size:.82rem;line-height:1.8;color:var(--text-muted);margin-bottom:36px}.card-.price{font-family:var(--font-display);font-size:2rem;color:var(--gold)}.price-sub{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}.actions{display:flex;flex-direction:column;gap:10px}.service{margin:0 60px 120px;padding:76px;background:var(--night-soft);display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;position:relative;overflow:hidden}.steps{display:grid;gap:16px}.step{border:1px solid rgba(184,147,90,.15);padding:22px}.step strong{display:block;font-family:var(--font-display);font-size:1.45rem;font-weight:300;color:var(--cream);margin-bottom:8px}.step span{font-size:.78rem;line-height:1.7;color:var(--text-muted)}.cta{margin:0 60px 120px;background:url('https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=1600&q=80') center/cover no-repeat;position:relative;padding:110px 70px;text-align:center}.cta::before{content:'';position:absolute;inset:0;background:rgba(15,13,10,.78)}.cta>*{position:relative;z-index:1}.cta-title{font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.8rem);font-weight:300;color:var(--cream);line-height:1.1;margin-bottom:18px}.cta-sub{font-size:.82rem;color:var(--text-muted);letter-spacing:.1em;margin-bottom:42px}.cta-btns{display:flex;gap:16px;justify-content:center}@media(max-width:1024px){.hero-content,.intro,.properties{padding-left:32px;padding-right:32px}.intro,.property-card,.service{grid-template-columns:1fr}.property-card:nth-child(even){direction:ltr}.service,.cta{margin-left:32px;margin-right:32px;padding:54px 36px}}@media(max-width:640px){.hero-title{font-size:3rem}.section-head,.card-footer,.cta-btns{flex-direction:column}.property-info{padding:38px 28px}.stats{grid-template-columns:1fr}}
@media(max-width:1024px){nav.nav-open .nav-links li{width:100%}.nav-links li:last-child a{border-bottom:0}}@media(max-width:640px){}
.nav-logo45%{transform:scale(1.05);letter-spacing:.32em}100%{transform:scale(1)}}
.property-img{position:relative;overflow:hidden}.property-img::after{content:'';position:absolute;inset:0;background:var(--night);transform:scaleY(1);transform-origin:top;transition:transform .9s cubic-bezier(.77,0,.18,1);z-index:2}.property-card.window-open .property-img::after{transform:scaleY(0)}

@media(max-width:768px){html,.hero,.intro,.properties,.service,.cta,.hero{min-height:100svh}.hero-content{padding-left:20px!important;padding-right:20px!important}.hero-title{font-size:clamp(2.7rem,18vw,4rem)!important}.intro,.properties,.service{padding-left:20px!important;padding-right:20px!important;grid-template-columns:1fr!important}.stats,.property-card,.specs,.steps,.property-card{display:grid!important;min-height:auto!important}.property-img{min-height:280px}.property-info{padding:30px 22px!important}.section-head,.card-footer,.cta-btns{flex-direction:column!important;align-items:flex-start!important;gap:16px}.tags,.actions{flex-wrap:wrap}.btn-primary,.btn-secondary{width:100%;justify-content:center;text-align:center}img,iframe{max-width:100%}}
    .zones-eye {
      font-size: .65rem;
      letter-spacing: .32em;
      text-transform: uppercase;
      color: var(--laiton-clair);
      font-weight: 600;
      margin-bottom: 14px
    }

    .zones-title {
      font-family: var(--fd);
      font-size: clamp(1.8rem, 3vw, 2.6rem);
      font-weight: 500;
      color: var(--ivoire);
      line-height: 1.15
    }

    .zones-title em {
      font-style: italic;
      color: var(--laiton-clair)
    }

    .zones-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 3px
    }

    .zone-card {
      background: var(--encre-mid);
      padding: 44px 32px;
      border-top: 3px solid transparent;
      transition: border-color .3s, background .3s;
      text-decoration: none
    }

    .zone-card:hover {
      border-color: var(--orange);
      background: rgba(221, 86, 0, .08)
    }

    .zone-num {
      font-family: var(--fd);
      font-size: 3rem;
      font-weight: 500;
      color: rgba(214, 175, 92, .25);
      line-height: 1;
      margin-bottom: 14px
    }

    .zone-name {
      font-family: var(--fd);
      font-size: 1.6rem;
      font-weight: 500;
      color: var(--ivoire);
      line-height: 1.1;
      margin-bottom: 10px
    }

    .zone-name em {
      font-style: italic;
      color: var(--laiton-clair)
    }

    .zone-desc {
      font-size: .8rem;
      line-height: 1.7;
      color: var(--muted-light);
      margin-bottom: 20px
    }

    .zone-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px
    }

    .zone-tag {
      font-size: .6rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--laiton-clair);
      border: 1px solid rgba(214, 175, 92, .3);
      padding: 4px 10px;
      border-radius: var(--radius)
    }

    @media(max-width:1024px) {
      .zones-grid { grid-template-columns: 1fr 1fr }
    }

    @media(max-width:640px) {
      .zones { padding: 60px 20px }
      .zones-grid { grid-template-columns: 1fr }
      .zone-card { padding: 32px 20px }
    }

    /* â”€â”€ TRUSTED BAR â”€â”€ */
    .trusted-bar {
      background: var(--sable);
      border-top: 1px solid rgba(156, 111, 28, .15);
      border-bottom: 1px solid rgba(156, 111, 28, .15);
      padding: 60px 60px;
      text-align: center
    }

    .trusted-label {
      font-size: .65rem;
      letter-spacing: .32em;
      text-transform: uppercase;
      color: var(--laiton);
      font-weight: 600;
      margin-bottom: 36px
    }

    .trusted-grid {
      display: flex;
      justify-content: center;
      align-items: center;
      flex-wrap: wrap;
      gap: 32px 56px
    }

    .trusted-item {
      font-family: var(--fd);
      font-size: 1.15rem;
      font-weight: 500;
      color: var(--muted);
      letter-spacing: .06em;
      opacity: .75;
      transition: opacity .3s, color .3s
    }

    .trusted-item:hover {
      opacity: 1;
      color: var(--laiton)
    }

    .trusted-note {
      margin-top: 32px;
      font-size: .75rem;
      color: var(--muted);
      line-height: 1.6
    }

    /* â”€â”€ FOOTER UPDATES â”€â”€ */
    footer {
      background: var(--encre);
      padding: 76px 60px 36px;
      border-top: 1px solid rgba(214, 175, 92, .15)
    }

    .f-col a {
      font-size: .73rem;
      color: var(--muted);
      text-decoration: none;
      transition: color .3s
    }

    .f-col a:hover {
      color: var(--sand)
    }

    .f-bot a {
      color: var(--muted-light);
      text-decoration: none;
      transition: color .3s
    }

    .f-bot a:hover {
      color: var(--laiton-clair)
    }

    .avatar {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: var(--laiton);
      color: var(--ivoire);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--fd);
      font-size: 1rem;
      font-weight: 600
    }

    @media(max-width:768px) {
      .trusted-bar { padding: 48px 20px }
      .trusted-grid { gap: 24px 32px }
    }
  


/* ==========================================================================
   PAGE-SPECIFIC STYLES (AUTOMATICALLY CONSOLIDATED)
   ========================================================================== */

/* --- Page: Ventes --- */
.btn-primary{display:inline-flex;align-items:center;gap:12px;background:var(--gold);color:var(--night);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:14px 28px;transition:.3s}.btn-primary:hover{background:var(--gold-light)}.btn-secondary{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(184,147,90,.4);color:var(--sand);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:13px 28px;transition:.3s}.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}.hero{position:relative;min-height:86vh;display:flex;align-items:flex-end;overflow:hidden;background:#0f0d0a}.hero-bg{position:absolute;inset:0;background: url('accueil.png') center center / cover no-repeat;transform:scale(1)}.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(15,13,10,.72) 0%,rgba(15,13,10,.28) 42%,rgba(15,13,10,.10) 100%)}.hero-content{position:relative;z-index:1;padding:0 60px 80px}.eyebrow{font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;color:#f0d4a4;margin-bottom:20px;text-shadow:0 3px 16px rgba(0,0,0,.52)}.hero-title{font-family:var(--font-display);font-size:clamp(3.5rem,8vw,7rem);font-weight:300;line-height:1;color:var(--cream);text-shadow:0 10px 30px rgba(0,0,0,.58)}.hero-title em,.section-title em,.card-title em,.cta-title em{font-style:italic;color:var(--gold-light)}.hero-sub{margin-top:20px;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(250,247,242,.92);max-width:560px;text-shadow:0 6px 22px rgba(0,0,0,.48)}.intro{padding:110px 60px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.section-title{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3.6rem);font-weight:300;line-height:1.12;color:var(--cream)}.text{font-size:.86rem;line-height:1.85;color:var(--text-muted);margin-top:28px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:36px}.stat-number{font-family:var(--font-display);font-size:3rem;color:var(--gold);line-height:1}.stat-label{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-top:8px}.properties{padding:0 60px 120px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:54px}.count{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.property-card{display:grid;grid-template-columns:1fr 1fr;min-height:520px;margin-bottom:4px;background:var(--night-mid);overflow:hidden}.property-card:nth-child(even){direction:rtl}.property-card:nth-child(even)>*{direction:ltr}.property-img{min-height:420px;overflow:hidden}.property-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s}.property-card:hover img{transform:scale(1.06)}.property-info{padding:58px 54px;display:flex;flex-direction:column;justify-content:center}.zone{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}.card-title{font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.8rem);font-weight:300;color:var(--cream);line-height:1.08;margin-bottom:28px}.specs{display:flex;gap:28px;flex-wrap:wrap;padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid rgba(184,147,90,.15)}.spec-val{font-family:var(--font-display);font-size:1.55rem;color:var(--cream)}.spec-label{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}.tag{font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);border:1px solid rgba(184,147,90,.25);padding:5px 12px}.desc{font-size:.82rem;line-height:1.8;color:var(--text-muted);margin-bottom:36px}.card-.price{font-family:var(--font-display);font-size:2rem;color:var(--gold)}.price-sub{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}.actions{display:flex;flex-direction:column;gap:10px}.service{margin:0 60px 120px;padding:76px;background:var(--night-soft);display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;position:relative;overflow:hidden}.steps{display:grid;gap:16px}.step{border:1px solid rgba(184,147,90,.15);padding:22px}.step strong{display:block;font-family:var(--font-display);font-size:1.45rem;font-weight:300;color:var(--cream);margin-bottom:8px}.step span{font-size:.78rem;line-height:1.7;color:var(--text-muted)}.cta{margin:0 60px 120px;background:url('https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=1600&q=80') center/cover no-repeat;position:relative;padding:110px 70px;text-align:center}.cta::before{content:'';position:absolute;inset:0;background:rgba(15,13,10,.78)}.cta>*{position:relative;z-index:1}.cta-title{font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.8rem);font-weight:300;color:var(--cream);line-height:1.1;margin-bottom:18px}.cta-sub{font-size:.82rem;color:var(--text-muted);letter-spacing:.1em;margin-bottom:42px}.cta-btns{display:flex;gap:16px;justify-content:center}@media(max-width:1024px){.hero-content,.intro,.properties{padding-left:32px;padding-right:32px}.intro,.property-card,.service{grid-template-columns:1fr}.property-card:nth-child(even){direction:ltr}.service,.cta{margin-left:32px;margin-right:32px;padding:54px 36px}}@media(max-width:640px){.hero-title{font-size:3rem}.section-head,.card-footer,.cta-btns{flex-direction:column}.property-info{padding:38px 28px}.stats{grid-template-columns:1fr}}
.nav-logo45%{transform:scale(1.05);letter-spacing:.32em}100%{transform:scale(1)}}
.property-img{position:relative;overflow:hidden}.property-img::after{content:'';position:absolute;inset:0;background:var(--night);transform:scaleY(1);transform-origin:top;transition:transform .9s cubic-bezier(.77,0,.18,1);z-index:2}.property-card.window-open .property-img::after{transform:scaleY(0)}

@media(max-width:768px){html,.hero,.intro,.properties,.service,.cta,.hero{min-height:100svh}.hero-content{padding-left:20px!important;padding-right:20px!important}.hero-title{font-size:clamp(2.7rem,18vw,4rem)!important}.intro,.properties,.service{padding-left:20px!important;padding-right:20px!important;grid-template-columns:1fr!important}.stats,.property-card,.specs,.steps,.property-card{display:grid!important;min-height:auto!important}.property-img{min-height:280px}.property-info{padding:30px 22px!important}.section-head,.card-footer,.cta-btns{flex-direction:column!important;align-items:flex-start!important;gap:16px}.tags,.actions{flex-wrap:wrap}.btn-primary,.btn-secondary{width:100%;justify-content:center;text-align:center}img,iframe{max-width:100%}}
100%{transform:translateX(-25%)}}.pay-modal{position:fixed;inset:0;z-index:9500;background:rgba(10,8,6,.92);display:none;align-items:center;justify-content:center;padding:20px}.pay-modal.open{display:flex}.pay-box{background:var(--night-mid);border:1px solid rgba(184,147,90,.2);max-width:460px;width:100%;padding:32px 28px;position:relative;max-height:90vh;overflow-y:auto}.pay-close{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer}.pay-title{font-family:var(--font-display);font-size:1.45rem;color:var(--cream);margin-bottom:6px}.pay-title em{font-style:italic;color:var(--gold-light)}.pay-sub{font-size:.72rem;color:var(--text-muted);margin-bottom:18px}.pay-form{display:grid;gap:10px;margin-bottom:18px}.pay-form label{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.pay-form input{width:100%;background:var(--night);border:1px solid rgba(184,147,90,.22);color:var(--sand);font-family:var(--font-body);font-size:.86rem;padding:12px 14px}.pay-choose{font-size:.68rem;color:var(--text-muted);margin-bottom:12px;text-align:center}.pay-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.btn-pay{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:rgba(184,147,90,.14);border:1px solid var(--gold);color:var(--gold-light);font-family:var(--font-body);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:13px 20px;cursor:pointer;transition:background .3s,border-color .3s,color .3s}.btn-pay:hover{background:rgba(184,147,90,.3);border-color:var(--gold-light);color:var(--cream)}.btn-pay::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold-light);flex-shrink:0}.btn-pay:hover::before{background:var(--cream)}.actions .btn-pay{width:100%}.pay-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:14px 12px;transition:.3s;border:1px solid}.pay-btn-wave{background:rgba(29,200,242,.1);border-color:rgba(29,200,242,.4);color:#9fd4e8}.pay-btn-wave:hover{background:rgba(29,200,242,.18);border-color:#1dc8f2;color:#c5ebf7}.pay-btn-orange{background:rgba(255,121,0,.12);border-color:rgba(255,121,0,.5);color:#f5a85a}.pay-btn-orange:hover{background:rgba(255,121,0,.22);border-color:#ff7900;color:#ffd9b3}.pay-logo{height:26px;width:auto;object-fit:contain;flex-shrink:0;display:block}.pay-btn-wave .pay-logo{height:30px;border-radius:50%}.pay-btn-orange .pay-logo{height:22px}.pay-ref{font-size:.7rem;color:var(--text-muted);margin-bottom:12px}.pay-hint{font-size:.72rem;color:var(--text-muted);line-height:1.7}.pay-ussd{display:block;margin-top:8px;padding:10px;background:var(--night-soft);font-family:monospace;font-size:.74rem;color:var(--gold-light);word-break:break-all}.lead-modal{position:fixed;inset:0;z-index:9400;background:rgba(10,8,6,.92);display:none;align-items:center;justify-content:center;padding:20px}.lead-modal.open{display:flex}.lead-box{position:relative;width:min(760px,100%);max-height:min(92vh,900px);overflow:auto;background:var(--night-mid);border:1px solid rgba(184,147,90,.2);padding:32px 28px;box-shadow:0 30px 80px rgba(0,0,0,.45)}.lead-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(184,147,90,.25);background:transparent;color:var(--sand);font-size:1.4rem;line-height:1;cursor:pointer}.lead-close:hover{border-color:var(--gold);color:var(--gold)}.lead-eyebrow{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light);margin-bottom:10px}.lead-title{font-family:var(--font-display);font-size:2rem;font-weight:300;line-height:1.05;color:var(--cream);margin-bottom:10px}.lead-sub{color:var(--text-muted);line-height:1.7;margin-bottom:22px}.lead-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px}.lead-summary div{padding:14px 16px;border:1px solid rgba(184,147,90,.14);background:rgba(255,255,255,.02)}.lead-summary span{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.lead-summary strong{font-size:1rem;font-weight:400;color:var(--sand)}.lead-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lead-field{display:flex;flex-direction:column;gap:8px}.lead-field.full{grid-column:1/-1}.lead-field label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sand)}.lead-field input,.lead-field select,.lead-field textarea{width:100%;border:1px solid rgba(184,147,90,.2);background:rgba(255,255,255,.03);color:var(--cream);padding:14px 15px;font:inherit;outline:none}.lead-field input:focus,.lead-field select:focus,.lead-field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 1px rgba(184,147,90,.2)}.lead-field textarea{min-height:110px;resize:vertical}.lead-field select option{color:#111}.lead-field input[readonly]{opacity:.8;background:rgba(255,255,255,.02)}.lead-note{margin-top:18px;color:var(--text-muted);line-height:1.6}.lead-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.lead-cancel,.lead-submit{border:0;font-family:var(--font-body);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;padding:14px 22px;cursor:pointer}.lead-cancel{background:transparent;color:var(--sand);border:1px solid rgba(184,147,90,.25)}.lead-submit{background:var(--gold);color:var(--night)}.lead-cancel:hover{border-color:var(--gold);color:var(--gold)}.lead-submit:hover{background:var(--gold-light)}.lead-hidden{display:none!important}@media(max-width:700px){.lead-box{padding:28px 18px}.lead-summary,.lead-grid{grid-template-columns:1fr}.lead-actions{flex-direction:column}.lead-cancel,.lead-submit{width:100%}}
.terrain-card .property-img{display:flex;align-items:center;justify-content:center;background:var(--night);padding:18px;min-height:560px}.terrain-card .property-img::after{display:none}.terrain-video{width:min(100%,720px);height:560px;object-fit:cover;display:block;background:#000}.terrain-card .property-info{justify-content:flex-start}.terrain-card .desc{margin-bottom:28px}@media(max-width:768px){.terrain-card .property-img{min-height:320px;padding:14px}.terrain-video{width:min(100%,320px);height:320px}}

/* --- Page: Vacances --- */
.btn-primary{display:inline-flex;align-items:center;gap:12px;background:var(--gold);color:var(--night);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:14px 28px;transition:.3s}.btn-primary:hover{background:var(--gold-light)}.btn-secondary{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(184,147,90,.4);color:var(--sand);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:13px 28px;transition:.3s}.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}.hero{position:relative;min-height:90vh;display:flex;align-items:flex-end;overflow:hidden;background:#0f0d0a}.hero-bg{position:absolute;inset:0;background: url('accueil.png') center center / cover no-repeat;transform:scale(1)}.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(15,13,10,.72) 0%,rgba(15,13,10,.28) 42%,rgba(15,13,10,.10) 100%)}.hero-content{position:relative;z-index:1;padding:0 60px 80px}.eyebrow{font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;color:#f0d4a4;margin-bottom:20px;text-shadow:0 3px 16px rgba(0,0,0,.52)}.hero-title{font-family:var(--font-display);font-size:clamp(3.5rem,8vw,7rem);font-weight:300;line-height:1;color:var(--cream);text-shadow:0 10px 30px rgba(0,0,0,.58)}.hero-title em,.section-title em,.card-title em,.cta-title em{font-style:italic;color:var(--gold-light)}.hero-sub{margin-top:20px;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(250,247,242,.92);max-width:560px;text-shadow:0 6px 22px rgba(0,0,0,.48)}.intro{padding:110px 60px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.section-title{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3.6rem);font-weight:300;line-height:1.12;color:var(--cream)}.text{font-size:.86rem;line-height:1.85;color:var(--text-muted);margin-top:28px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:36px}.stat-number{font-family:var(--font-display);font-size:3rem;color:var(--gold);line-height:1}.stat-label{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-top:8px}.section{padding:0 60px 120px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:54px}.count{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.rental-card{display:grid;grid-template-columns:1fr 1fr;min-height:520px;height:auto;margin-bottom:4px;background:var(--night-mid);overflow:hidden}.rental-card:nth-child(even){direction:rtl}.rental-card:nth-child(even)>*{direction:ltr}.rental-img{min-height:420px;overflow:hidden}.rental-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s}.rental-card:hover img{transform:scale(1.06)}.rental-info{padding:30px 40px;display:flex;flex-direction:column;justify-content:center}.zone{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}.card-title{font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.8rem);font-weight:300;color:var(--cream);line-height:1.08;margin-bottom:16px}.specs{display:flex;gap:28px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid rgba(184,147,90,.15)}.spec-val{font-family:var(--font-display);font-size:1.55rem;color:var(--cream)}.spec-label{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.tag{font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);border:1px solid rgba(184,147,90,.25);padding:5px 12px}.desc{font-size:.82rem;line-height:1.8;color:var(--text-muted);margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-.price{font-family:var(--font-display);font-size:2rem;color:var(--gold)}.price-sub{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}.actions{display:flex;flex-direction:column;gap:10px}.long-stay{margin:0 60px 4px;padding:76px;background:var(--night-soft);display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.price-box{padding:32px;background:rgba(184,147,90,.06);border:1px solid rgba(184,147,90,.15);margin-bottom:26px}.price-box .price{font-size:2.4rem}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.commercial{margin:0 60px 120px;padding:72px;border:1px solid rgba(184,147,90,.15)}.comm-item{background:var(--night-soft);padding:28px 22px;border-top:2px solid transparent;transition:.3s}.comm-item:hover{border-color:var(--gold);background:rgba(184,147,90,.06)}.comm-num{font-family:var(--font-display);font-size:2.1rem;color:rgba(184,147,90,.35)}.comm-size{font-size:.78rem;color:var(--cream);margin:10px 0 5px}.comm-price{font-size:.65rem;color:var(--gold)}.cta{margin:0 60px 120px;background:url('https://images.unsplash.com/photo-1499793983690-e29da59ef1c2?w=1600&q=80') center/cover no-repeat;position:relative;padding:110px 70px;text-align:center}.cta::before{content:'';position:absolute;inset:0;background:rgba(15,13,10,.78)}.cta>*{position:relative;z-index:1}.cta-title{font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.8rem);font-weight:300;color:var(--cream);line-height:1.1;margin-bottom:18px}.cta-sub{font-size:.82rem;color:var(--text-muted);letter-spacing:.1em;margin-bottom:42px}.cta-btns{display:flex;gap:16px;justify-content:center}@media(max-width:1024px){.hero-content,.intro,.section{padding-left:32px;padding-right:32px}.intro,.rental-card,.long-stay{grid-template-columns:1fr}.rental-card:nth-child(even){direction:ltr}.long-stay,.commercial,.cta{margin-left:32px;margin-right:32px;padding:54px 36px}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.hero-title{font-size:3rem}.section-head,.card-footer,.cta-btns{flex-direction:column}.footer-top,.grid,.stats{grid-template-columns:1fr}.rental-info{padding:38px 28px}}
.nav-logo45%{transform:scale(1.05);letter-spacing:.32em}100%{transform:scale(1)}}@media(max-width:1024px){nav.nav-open .nav-links li{width:100%}.nav-links li:last-child a{border-bottom:0}}@media(max-width:640px){}
.rental-img{position:relative;overflow:hidden}.rental-img::after{content:'';position:absolute;inset:0;background:var(--night);transform:scaleY(1);transform-origin:top;transition:transform .9s cubic-bezier(.77,0,.18,1);z-index:2}.rental-card.window-open .rental-img::after{transform:scaleY(0)}@media(max-width:768px){html,.hero,.intro,.section,.long-stay,.commercial,.cta,.hero{min-height:100svh}.hero-content{padding-left:20px!important;padding-right:20px!important}.hero-title{font-size:clamp(2.7rem,18vw,4rem)!important}.intro,.section,.long-stay,.commercial{padding-left:20px!important;padding-right:20px!important;grid-template-columns:1fr!important}.stats,.rental-card,.specs,.grid,.rental-card{display:grid!important;min-height:auto!important;height:auto!important}.rental-card:nth-child(even){direction:ltr!important}.rental-img{min-height:280px}.rental-info{padding:30px 22px!important}.section-head,.card-footer,.cta-btns{flex-direction:column!important;align-items:flex-start!important;gap:16px}.tags,.actions{flex-wrap:wrap}.btn-primary,.btn-secondary{width:100%;justify-content:center;text-align:center}img,iframe{max-width:100%}}
100%{transform:translateX(-25%)}}.pay-modal{position:fixed;inset:0;z-index:9500;background:rgba(10,8,6,.92);display:none;align-items:center;justify-content:center;padding:20px}.pay-modal.open{display:flex}.pay-box{background:var(--night-mid);border:1px solid rgba(184,147,90,.2);max-width:460px;width:100%;padding:32px 28px;position:relative;max-height:90vh;overflow-y:auto}.pay-close{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer}.pay-title{font-family:var(--font-display);font-size:1.45rem;color:var(--cream);margin-bottom:6px}.pay-title em{font-style:italic;color:var(--gold-light)}.pay-sub{font-size:.72rem;color:var(--text-muted);margin-bottom:18px}.pay-form{display:grid;gap:10px;margin-bottom:18px}.pay-form label{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.pay-form input{width:100%;background:var(--night);border:1px solid rgba(184,147,90,.22);color:var(--sand);font-family:var(--font-body);font-size:.86rem;padding:12px 14px}.pay-choose{font-size:.68rem;color:var(--text-muted);margin-bottom:12px;text-align:center}.pay-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.btn-pay{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:rgba(184,147,90,.14);border:1px solid var(--gold);color:var(--gold-light);font-family:var(--font-body);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:13px 20px;cursor:pointer;transition:background .3s,border-color .3s,color .3s}.btn-pay:hover{background:rgba(184,147,90,.3);border-color:var(--gold-light);color:var(--cream)}.btn-pay::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold-light);flex-shrink:0}.btn-pay:hover::before{background:var(--cream)}.actions .btn-pay{width:100%}.pay-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:14px 12px;transition:.3s;border:1px solid}.pay-btn-wave{background:rgba(29,200,242,.1);border-color:rgba(29,200,242,.4);color:#9fd4e8}.pay-btn-wave:hover{background:rgba(29,200,242,.18);border-color:#1dc8f2;color:#c5ebf7}.pay-btn-orange{background:rgba(255,121,0,.12);border-color:rgba(255,121,0,.5);color:#f5a85a}.pay-btn-orange:hover{background:rgba(255,121,0,.22);border-color:#ff7900;color:#ffd9b3}.pay-logo{height:26px;width:auto;object-fit:contain;flex-shrink:0;display:block}.pay-btn-wave .pay-logo{height:30px;border-radius:50%}.pay-btn-orange .pay-logo{height:22px}.pay-ref{font-size:.7rem;color:var(--text-muted);margin-bottom:12px}.pay-hint{font-size:.72rem;color:var(--text-muted);line-height:1.7}.pay-ussd{display:block;margin-top:8px;padding:10px;background:var(--night-soft);font-family:monospace;font-size:.74rem;color:var(--gold-light);word-break:break-all}.lead-modal{position:fixed;inset:0;z-index:9400;background:rgba(10,8,6,.92);display:none;align-items:center;justify-content:center;padding:20px}.lead-modal.open{display:flex}.lead-box{position:relative;width:min(760px,100%);max-height:min(92vh,900px);overflow:auto;background:var(--night-mid);border:1px solid rgba(184,147,90,.2);padding:32px 28px;box-shadow:0 30px 80px rgba(0,0,0,.45)}.lead-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(184,147,90,.25);background:transparent;color:var(--sand);font-size:1.4rem;line-height:1;cursor:pointer}.lead-close:hover{border-color:var(--gold);color:var(--gold)}.lead-eyebrow{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light);margin-bottom:10px}.lead-title{font-family:var(--font-display);font-size:2rem;font-weight:300;line-height:1.05;color:var(--cream);margin-bottom:10px}.lead-sub{color:var(--text-muted);line-height:1.7;margin-bottom:22px}.lead-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px}.lead-summary div{padding:14px 16px;border:1px solid rgba(184,147,90,.14);background:rgba(255,255,255,.02)}.lead-summary span{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.lead-summary strong{font-size:1rem;font-weight:400;color:var(--sand)}.lead-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lead-field{display:flex;flex-direction:column;gap:8px}.lead-field.full{grid-column:1/-1}.lead-field label{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sand)}.lead-field input,.lead-field select,.lead-field textarea{width:100%;border:1px solid rgba(184,147,90,.2);background:rgba(255,255,255,.03);color:var(--cream);padding:14px 15px;font:inherit;outline:none}.lead-field input:focus,.lead-field select:focus,.lead-field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 1px rgba(184,147,90,.2)}.lead-field textarea{min-height:110px;resize:vertical}.lead-field select option{color:#111}.lead-field input[readonly]{opacity:.8;background:rgba(255,255,255,.02)}.lead-note{margin-top:18px;color:var(--text-muted);line-height:1.6}.lead-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.lead-cancel,.lead-submit{border:0;font-family:var(--font-body);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;padding:14px 22px;cursor:pointer}.lead-cancel{background:transparent;color:var(--sand);border:1px solid rgba(184,147,90,.25)}.lead-submit{background:var(--gold);color:var(--night)}.lead-cancel:hover{border-color:var(--gold);color:var(--gold)}.lead-submit:hover{background:var(--gold-light)}.lead-hidden{display:none!important}@media(max-width:700px){.lead-box{padding:28px 18px}.lead-summary,.lead-grid{grid-template-columns:1fr}.lead-actions{flex-direction:column}.lead-cancel,.lead-submit{width:100%}}

/* --- Page: Contact --- */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--gold);color:var(--night);font-family:var(--font-body);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:14px 28px;border:0;transition:.3s;cursor:pointer}.btn-primary:hover{background:var(--gold-light)}.btn-secondary{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(184,147,90,.4);color:var(--sand);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:13px 28px;transition:.3s}.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}.hero{position:relative;min-height:82vh;display:flex;align-items:flex-end;overflow:hidden;background:#0f0d0a}.hero-bg{position:absolute;inset:0;background: url('accueil.png') center center / cover no-repeat;transform:scale(1)}.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(15,13,10,.72) 0%,rgba(15,13,10,.28) 42%,rgba(15,13,10,.10) 100%)}.hero-content{position:relative;z-index:1;padding:0 60px 80px}.eyebrow{font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;color:#f0d4a4;margin-bottom:20px;text-shadow:0 3px 16px rgba(0,0,0,.52)}.hero-title{font-family:var(--font-display);font-size:clamp(3.5rem,8vw,7rem);font-weight:300;line-height:1;color:var(--cream);text-shadow:0 10px 30px rgba(0,0,0,.58)}.hero-title em,.section-title em,.card-title em{font-style:italic;color:var(--gold-light)}.hero-sub{margin-top:20px;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(250,247,242,.92);max-width:620px;text-shadow:0 6px 22px rgba(0,0,0,.48)}.contact-section{padding:110px 60px 120px;display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}.section-title{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3.6rem);font-weight:300;line-height:1.12;color:var(--cream)}.text{font-size:.86rem;line-height:1.85;color:var(--text-muted);margin-top:28px}.contact-cards{display:grid;gap:14px;margin-top:38px}.contact-card{background:var(--night-mid);border:1px solid rgba(184,147,90,.14);padding:28px;transition:.3s}.contact-card:hover{border-color:rgba(184,147,90,.45);background:rgba(184,147,90,.04)}.contact-label{font-size:.58rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}.contact-value{font-family:var(--font-display);font-size:1.55rem;color:var(--cream);font-weight:300}.contact-link{display:inline-block;margin-top:10px;font-size:.76rem;color:var(--text-muted);text-decoration:none}.contact-link:hover{color:var(--gold)}.form-panel{background:var(--night-mid);border:1px solid rgba(184,147,90,.16);padding:52px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:9px}.field.full{grid-column:1/-1}label{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}input,select,textarea{width:100%;background:var(--night);border:1px solid rgba(184,147,90,.22);color:var(--sand);font-family:var(--font-body);font-size:.86rem;padding:15px 16px;outline:none;transition:.3s}textarea{min-height:150px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--gold);background:#120f0c}.form-actions{display:flex;gap:14px;align-items:center;margin-top:24px;flex-wrap:wrap}.form-note{font-size:.72rem;line-height:1.7;color:var(--text-muted);margin-top:18px}.quick{padding:0 60px 120px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:48px}.quick-card{background:var(--night-soft);padding:38px;border-top:2px solid transparent;transition:.3s}.quick-card:hover{border-color:var(--gold);background:rgba(184,147,90,.06)}.quick-num{font-family:var(--font-display);font-size:2.4rem;color:rgba(184,147,90,.35);line-height:1}.card-title{font-family:var(--font-display);font-size:1.7rem;font-weight:300;color:var(--cream);margin:18px 0 12px}.quick-card p{font-size:.8rem;line-height:1.75;color:var(--text-muted);margin-bottom:24px}.map-panel{margin:0 60px 120px;display:grid;grid-template-columns:1fr 1fr;background:var(--night-mid);min-height:430px}.map-copy{padding:70px;display:flex;flex-direction:column;justify-content:center}.map-visual{background:linear-gradient(135deg,rgba(184,147,90,.12),rgba(15,13,10,.2)),url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?w=1200&q=80') center/cover no-repeat;min-height:360px}.cta-btns{display:flex;gap:16px;margin-top:34px;flex-wrap:wrap}@media(max-width:1024px){.hero-content,.contact-section,.quick{padding-left:32px;padding-right:32px}.contact-section,.map-panel{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}.map-panel{margin-left:32px;margin-right:32px}.map-copy{padding:48px 36px}}@media(max-width:640px){.hero-title{font-size:3rem}.form-grid{grid-template-columns:1fr}.form-panel{padding:34px 24px}.contact-section{gap:48px}}
.nav-logo45%{transform:scale(1.05);letter-spacing:.32em}100%{transform:scale(1)}}.map-visual{position:relative;overflow:hidden;background:var(--night);min-height:430px}.google-map{width:100%;height:100%;min-height:430px;border:0;filter:saturate(.75) contrast(1.05) brightness(.78)}.map-zones{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:30px}.map-zone{display:flex;align-items:center;gap:10px;color:var(--sand);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}.map-zone::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 6px rgba(184,147,90,.12)}@media(max-width:1024px){nav.nav-open .nav-links li{width:100%}.nav-links li:last-child a{border-bottom:0}}@media(max-width:640px){.map-zones{grid-template-columns:1fr}.map-visual,.google-map{min-height:360px}}

@media(max-width:1024px){}

/* --- Page: Hotel --- */
    .hero-ov {
      display: none !important;
      background: transparent !important;
    }
a {
      color: var(--gold-light);
      text-decoration: none;
      transition: color 0.3s;
    }
    
    a:hover {
      color: var(--cream);
    }
    
    
    header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      padding: 20px 60px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      background: linear-gradient(to bottom, rgba(15, 13, 10, 0.95), transparent);
      border-bottom: 1px solid rgba(184, 147, 90, 0.1);
      backdrop-filter: blur(10px);
    }
    
    .logo {
      display: flex;
      align-items: center;
      text-decoration: none;
    }
    
    .logo img {
      height: 50px;
      width: auto;
      object-fit: contain;
      display: block;
    }
    
    nav ul {
      display: flex;
      gap: 30px;
      list-style: none;
    }
    
    nav a {
      font-size: 0.75rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--sand);
      opacity: 0.8;
      transition: all 0.3s;
    }
    
    nav a:hover, nav a.active {
      opacity: 1;
      color: var(--gold);
    }
    
    
    
    
    .nav-menu-btn:hover {
      border-color: var(--gold);
      color: var(--gold);
    }
    .mobile-only {
      display: none;
    }
    
    .btn-gold {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: var(--gold);
      color: var(--night);
      border: 1px solid var(--gold);
      font-size: 0.7rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      padding: 10px 20px;
      font-weight: 500;
      cursor: pointer;
      transition: all 0.3s;
    }
    
    .btn-gold:hover {
      background: var(--gold-light);
      border-color: var(--gold-light);
      color: var(--night);
    }
    
    .btn-outline {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: transparent;
      color: var(--sand);
      border: 1px solid rgba(184, 147, 90, 0.4);
      font-size: 0.7rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      padding: 10px 20px;
      cursor: pointer;
      transition: all 0.3s;
    }
    
    .btn-outline:hover {
      border-color: var(--gold);
      background: rgba(184, 147, 90, 0.1);
      color: var(--cream);
    }
    
    /* Overlay removed - Image 100% claire et visible */
    .hero-ov,
    .hero::after,
    .hero::before {
      display: none !important;
      background: transparent !important;
    }
    
    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 800px;
      margin-top: 60px;
    }
    
    .olympics-badge {
      display: inline-flex;
      align-items: center;
      background: rgba(184, 147, 90, 0.1);
      border: 1px solid rgba(184, 147, 90, 0.4);
      padding: 8px 20px;
      border-radius: 50px;
      font-size: 0.72rem;
      font-weight: 400;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold-light);
      margin-bottom: 24px;
      backdrop-filter: blur(5px);
      box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    }
    
    .hero-eyebrow {
      font-size: 0.8rem;
      letter-spacing: 0.35em;
      text-transform: uppercase;
      color: var(--gold-light);
      margin-bottom: 20px;
    }
    
    .hero-title {
      font-family: var(--font-display);
      font-size: clamp(2.5rem, 6vw, 4.8rem);
      font-weight: 300;
      line-height: 1.1;
      color: var(--cream);
      margin-bottom: 24px;
      text-shadow: 0 10px 30px rgba(0,0,0,0.5);
    }
    
    .hero-sub {
      font-size: 1rem;
      color: var(--sand);
      max-width: 600px;
      margin: 0 auto 36px;
      opacity: 0.9;
    }
    
    
    .search-bar {
      position: relative;
      z-index: 5;
      max-width: 1000px;
      margin: -60px auto 0;
      background: var(--night-mid);
      border: 1px solid rgba(184, 147, 90, 0.25);
      padding: 24px 30px;
      box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
    }
    
    .search-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr) auto;
      gap: 16px;
      align-items: flex-end;
    }
    
    .search-field {
      display: flex;
      flex-direction: column;
      gap: 8px;
      min-width: 0;
    }
    
    .search-field label {
      font-size: 0.65rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--muted);
      text-align: left;
    }
    
    .search-field input, .search-field select {
      background: var(--night-soft);
      border: 1px solid rgba(184, 147, 90, 0.2);
      color: var(--cream);
      padding: 0 14px;
      height: 48px; 
      font-family: var(--font-body);
      font-size: 0.85rem;
      outline: none;
      width: 100%;
      min-width: 0;
      box-sizing: border-box;
    }
    
    .search-field input:focus, .search-field select:focus {
      border-color: var(--gold);
    }
    
    
    input[type="date"] {
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
      display: inline-flex;
      align-items: center;
    }
    input[type="date"]::-webkit-date-and-time-value {
      min-height: 1.5em;
      text-align: left;
      margin: 0;
      padding: 0;
      width: 100%;
    }
    .search-field input, .search-field select, .fgroup input, .fgroup select {
      -webkit-border-radius: 0px;
      border-radius: 0px;
    }
    
    .sec-title {
      font-family: var(--fd);
      font-size: clamp(2rem, 3.5vw, 3rem);
      font-weight: 300;
      color: var(--cream)
    }

    .sec-title em {
      font-style: italic;
      color: var(--laiton-clair);
    }
    
    .section {
      padding: 100px 60px;
    }
    
    .section-head {
      max-width: 700px;
      margin-bottom: 50px;
    }
    
    .section-eyebrow {
      font-size: 0.7rem;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 12px;
      display: block;
    }
    
    .section-title {
      font-family: var(--font-display);
      font-size: clamp(2rem, 3.5vw, 3rem);
      font-weight: 300;
      color: var(--cream);
      line-height: 1.15;
    }
    
    
    .rooms-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 30px;
    }
    
    .room-card {
      background: var(--night-mid);
      border: 1px solid rgba(184, 147, 90, 0.15);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      transition: transform 0.4s, border-color 0.4s;
    }
    
    .room-card:hover {
      transform: translateY(-5px);
      border-color: var(--gold);
    }
    
    .room-img {
      aspect-ratio: 16/10;
      overflow: hidden;
    }
    
    .room-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.6s;
    }
    
    .room-card:hover .room-img img {
      transform: scale(1.05);
    }
    
    .room-info {
      padding: 24px;
      display: flex;
      flex-direction: column;
      flex: 1;
    }
    
    .room-name {
      font-family: var(--font-display);
      font-size: 1.4rem;
      font-weight: 300;
      color: var(--cream);
      margin-bottom: 10px;
    }
    
    .room-desc {
      font-size: 0.8rem;
      color: var(--muted);
      margin-bottom: 16px;
      line-height: 1.5;
      flex: 1;
    }
    
    .room-specs {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-bottom: 20px;
    }
    
    .room-spec-tag {
      font-size: 0.58rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      border: 1px solid rgba(184, 147, 90, 0.15);
      padding: 3px 8px;
      color: var(--sand);
      background: rgba(255, 255, 255, 0.02);
    }
    
    .room-
    
    .room-price {
      font-family: var(--font-display);
      font-size: 1.6rem;
      color: var(--gold);
      line-height: 1;
    }
    
    .room-price span {
      display: block;
      font-family: var(--font-body);
      font-size: 0.6rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 4px;
    }
    
    
    .meeting-section {
      background: var(--night-mid);
      border: 1px solid rgba(184, 147, 90, 0.2);
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      margin-bottom: 50px;
    }
    
    .meeting-img {
      background: url('https://images.unsplash.com/photo-1517502884422-41eaaced0168?w=1200&q=80') center/cover no-repeat;
      min-height: 380px;
    }
    
    .meeting-info {
      padding: 50px 40px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    
    
    .services-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 20px;
    }
    
    .service-card {
      background: var(--night-mid);
      border: 1px solid rgba(184, 147, 90, 0.12);
      padding: 30px 24px;
      text-align: center;
      transition: all 0.3s;
    }
    
    .service-card:hover {
      border-color: var(--gold);
      background: rgba(184, 147, 90, 0.03);
    }
    
    .service-icon {
      font-size: 2.2rem;
      color: var(--gold-light);
      margin-bottom: 16px;
    }
    
    .service-title {
      font-family: var(--font-display);
      font-size: 1.25rem;
      color: var(--cream);
      margin-bottom: 8px;
    }
    
    .service-desc {
      font-size: 0.8rem;
      color: var(--muted);
      line-height: 1.5;
    }
    
    
    .booking-overlay {
      position: fixed;
      inset: 0;
      z-index: 1100;
      background: rgba(10, 8, 6, 0.96);
      display: none;
      align-items: center;
      justify-content: center;
      padding: 20px;
    }
    
    .booking-overlay.open {
      display: flex;
    }
    
    .booking-box {
      background: var(--night-mid);
      border: 1px solid var(--gold);
      width: min(800px, 100%);
      max-height: 90vh;
      overflow-y: auto;
      position: relative;
      box-shadow: 0 25px 60px rgba(0,0,0,0.6);
    }
    
    .booking-close {
      position: absolute;
      top: 14px;
      right: 14px;
      background: transparent;
      border: 1px solid rgba(184, 147, 90, 0.2);
      color: var(--sand);
      width: 40px;
      height: 40px;
      font-size: 1.5rem;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 1;
    }
    
    .booking-close:hover {
      border-color: var(--gold);
      color: var(--gold);
    }
    
    .booking-nav-steps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      border-bottom: 1px solid rgba(184, 147, 90, 0.15);
      background: rgba(0, 0, 0, 0.2);
    }
    
    .bstep {
      padding: 16px;
      text-align: center;
      font-size: 0.7rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--muted);
      border-right: 1px solid rgba(184, 147, 90, 0.15);
    }
    
    .bstep.active {
      color: var(--gold);
      background: rgba(184, 147, 90, 0.05);
      font-weight: 500;
    }
    
    .bstep:last-child {
      border-right: 0;
    }
    
    .booking-
    
    .form-group-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      margin-bottom: 20px;
    }
    
    .fgroup {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    
    .fgroup label {
      font-size: 0.65rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--muted);
    }
    
    .fgroup input, .fgroup select {
      background: var(--night-soft);
      border: 1px solid rgba(184, 147, 90, 0.22);
      color: var(--cream);
      padding: 0 14px;
      height: 46px; 
      font-family: var(--font-body);
      font-size: 0.85rem;
      outline: none;
      width: 100%;
      box-sizing: border-box;
    }
    .fgroup textarea {
      background: var(--night-soft);
      border: 1px solid rgba(184, 147, 90, 0.22);
      color: var(--cream);
      padding: 12px 14px;
      font-family: var(--font-body);
      font-size: 0.85rem;
      outline: none;
      width: 100%;
      box-sizing: border-box;
      min-height: 90px;
    }
    
    .fgroup input:focus, .fgroup select:focus, .fgroup textarea:focus {
      border-color: var(--gold);
    }
    
    
    .payment-methods-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
      margin-bottom: 24px;
    }
    
    .pm-card {
      background: var(--night-soft);
      border: 1px solid rgba(184, 147, 90, 0.15);
      padding: 16px;
      text-align: center;
      cursor: pointer;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      transition: all 0.3s;
    }
    
    .pm-card:hover, .pm-card.selected {
      border-color: var(--gold);
      background: rgba(184, 147, 90, 0.05);
    }
    
    .pm-logo {
      height: 24px;
      width: auto;
      object-fit: contain;
    }
    
    .pm-name {
      font-size: 0.7rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--sand);
    }
    
    .summary-box {
      background: rgba(184, 147, 90, 0.05);
      border: 1px solid rgba(184, 147, 90, 0.2);
      padding: 20px;
      margin-bottom: 24px;
    }
    
    .summary-row {
      display: flex;
      justify-content: space-between;
      margin-bottom: 10px;
      font-size: 0.85rem;
    }
    
    .summary-row.total {
      border-top: 1px solid rgba(184, 147, 90, 0.25);
      padding-top: 10px;
      font-size: 1.1rem;
      color: var(--gold-light);
      font-weight: 500;
    }
    
    
    .about-section {
      background: var(--night-mid);
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 50px;
      align-items: center;
      padding: 80px 60px;
    }
    
    .about-img {
      height: 480px;
      background: url('https://images.unsplash.com/photo-1566073771259-6a8506099945?w=1200&q=80') center/cover no-repeat;
      border: 1px solid rgba(184, 147, 90, 0.2);
    }
    
    .contact-grid {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 60px;
    }
    
    .contact-info-list {
      display: flex;
      flex-direction: column;
      gap: 24px;
    }
    
    .contact-info-item {
      display: flex;
      gap: 16px;
    }
    
    .contact-info-icon {
      font-size: 1.4rem;
      color: var(--gold);
    }
    
    .contact-info-content h4 {
      font-family: var(--font-display);
      font-size: 1.1rem;
      color: var(--cream);
      margin-bottom: 4px;
    }
    
    .contact-info-content p {
      font-size: 0.85rem;
      color: var(--muted);
    }
    
    
    
    
    
    
    
    
    .footer-links a {
      font-size: 0.75rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--muted);
    }
    
    
    
    
    
    
    .hidden {
      display: none !important;
    }
    
    
    @media (max-width: 1024px) {
      header {
        position: fixed; 
        padding: 16px 20px;
        background: rgba(15, 13, 10, 0.95);
        backdrop-filter: blur(10px);
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
      }
      header 
      header.nav-open 
      header nav ul {
        flex-direction: column;
        gap: 15px;
        align-items: center;
      }
      header nav ul li {
        width: 100%;
        text-align: center;
      }
      header nav ul a {
        display: block;
        padding: 10px;
        font-size: 0.85rem;
      }
      
      .mobile-only {
        display: block;
      }
      .hero {
        min-height: 100vh;
        padding: 0 20px;
      }
      .hero-content {
        margin-top: 60px;
      }
      .section {
        padding: 60px 20px;
      }
      .search-bar {
        margin: -40px auto 0;
        width: calc(100% - 32px);
        box-sizing: border-box;
        padding: 20px 15px;
      }
      .search-grid {
        grid-template-columns: 1fr;
      }
      .meeting-section, .about-section {
        grid-template-columns: 1fr;
      }
      .meeting-img {
        min-height: 280px;
      }
      .about-img {
        height: 320px;
      }
      .contact-grid {
        grid-template-columns: 1fr;
      }
    }
    
    @media (max-width: 640px) {
      header {
        padding: 12px 16px;
      }
      .logo img {
        height: 40px;
      }
      
      .nav-actions .btn-outline {
        display: none; 
      }
      .nav-actions .btn-gold {
        padding: 8px 16px;
        font-size: 0.65rem;
      }
      
      .hero-title {
        font-size: clamp(2rem, 8vw, 3rem);
      }
      .search-bar {
        margin: 20px auto 0;
        width: calc(100% - 24px);
        box-sizing: border-box;
      }
      .form-group-grid {
        grid-template-columns: 1fr;
      }
      .payment-methods-grid {
        grid-template-columns: 1fr;
      }
    }


/* ══════════════════════════════════════════════════
   ZONES D'ACTIVITÉ — Petite Côte du Sénégal
   ══════════════════════════════════════════════════ */

.zones-section {
  background: var(--encre);
  padding: 96px 0 80px;
  position: relative;
  overflow: hidden;
}

.zones-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 20% 50%, rgba(14,86,77,0.18) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 80% 20%, rgba(156,111,28,0.10) 0%, transparent 60%);
  pointer-events: none;
}

.zones-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 1;
}

/* ── Header ── */
.zones-header {
  text-align: center;
  margin-bottom: 60px;
}

.zones-eyebrow {
  display: inline-block;
  font-family: var(--fb);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--laiton-clair);
  margin-bottom: 14px;
}

.zones-title {
  font-family: var(--fd);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 500;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 12px;
}

.zones-title em {
  font-style: italic;
  color: var(--laiton-clair);
}

.zones-subtitle {
  font-family: var(--fb);
  font-size: 0.95rem;
  color: var(--muted-light);
  letter-spacing: 0.08em;
  margin-bottom: 24px;
}

.zones-divider {
  width: 56px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--laiton-clair), transparent);
  margin: 0 auto;
  border-radius: 2px;
}

/* ── Layout ── */
/* ── Carte Leaflet Interactive ── */
.zones-map-full-wrap {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgba(214,175,92,0.15),
    0 30px 80px rgba(0,0,0,0.5),
    0 8px 20px rgba(0,0,0,0.3);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  z-index: 1;
}

.zones-map-full-wrap:hover {
  transform: translateY(-4px);
  box-shadow:
    0 0 0 1px rgba(214,175,92,0.3),
    0 40px 100px rgba(0,0,0,0.55),
    0 12px 30px rgba(14,86,77,0.25);
}

#zones-interactive-map {
  width: 100%;
  height: 580px;
  background: #f4f3f0;
}

.zones-gmap {
  width: 100%;
  height: 700px;
  border: 0;
  display: block;
}

.zones-map-badge {
  position: absolute;
  bottom: 16px;
  left: 16px;
  background: rgba(15,26,23,0.85);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(214,175,92,0.3);
  border-radius: 50px;
  padding: 8px 18px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--fb);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--laiton-clair);
  letter-spacing: 0.06em;
  z-index: 1000;
  pointer-events: none;
}

/* Customisation des popups de Leaflet */
.leaflet-popup-content-wrapper {
  background: #0f1a17 !important;
  color: #fff !important;
  border: 1px solid rgba(214,175,92,0.3) !important;
  border-radius: 8px !important;
  font-family: var(--fb) !important;
  box-shadow: 0 4px 15px rgba(0,0,0,0.4) !important;
}

.leaflet-popup-tip {
  background: #0f1a17 !important;
  border-left: 1px solid rgba(214,175,92,0.3) !important;
  border-bottom: 1px solid rgba(214,175,92,0.3) !important;
}

.leaflet-popup-content {
  margin: 8px 12px !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.04em !important;
}

/* ── Responsive ── */
@media (max-width: 900px) {
  #zones-interactive-map { height: 480px; }
  .zones-gmap { height: 480px; }
}

@media (max-width: 600px) {
  .zones-section {
    padding: 60px 0 56px;
  }
  .zones-inner {
    padding: 0 16px;
  }
  #zones-interactive-map { height: 380px; }
  .zones-gmap { height: 380px; }
}


/* FORCED MOBILE MENU DISPLAY OVERRIDE */
@media (max-width: 1024px) {
  .nav-menu-btn {
    display: inline-flex !important;
    white-space: nowrap !important;
    cursor: pointer !important;
  }
  nav .nav-links, header .nav-links {
    display: none;
  }
  nav.nav-open .nav-links, header.nav-open .nav-links {
    display: flex !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: 0 !important;
    background: #1a1612 !important;
    border-bottom: 2px solid #D6AF5C !important;
    border-top: 1px solid rgba(184, 147, 90, 0.2) !important;
    padding: 12px 20px !important;
    width: 100% !important;
    z-index: 999999 !important;
    box-shadow: 0 15px 35px rgba(0,0,0,0.7) !important;
  }
  nav.nav-open .nav-links li, header.nav-open .nav-links li {
    width: 100% !important;
    display: block !important;
  }
  nav.nav-open .nav-links a, header.nav-open .nav-links a {
    display: block !important;
    padding: 14px 16px !important;
    color: #F8F4EC !important;
    opacity: 1 !important;
    border-bottom: 1px solid rgba(184, 147, 90, 0.12) !important;
    text-align: left !important;
    font-size: 0.8rem !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
  }
  nav.nav-open .nav-links a:hover, header.nav-open .nav-links a:hover,
  nav.nav-open .nav-links a.active, header.nav-open .nav-links a.active {
    color: #D6AF5C !important;
  }
  nav.nav-open .nav-links li:last-child a, header.nav-open .nav-links li:last-child a {
    border-bottom: 0 !important;
  }
}

/* FORCED UNIFIED NAVBAR HEADER STYLING ACROSS ALL PAGES */
nav, header {
  background: rgba(15, 26, 23, 0.96) !important;
  border-bottom: 1px solid rgba(214, 175, 92, 0.2) !important;
}

nav .nav-logo, header .nav-logo {
  color: #F8F4EC !important;
}

nav .nav-logo span, header .nav-logo span {
  color: #D6AF5C !important;
}

nav .nav-links a, header .nav-links a {
  color: #F8F4EC !important;
  opacity: 0.85 !important;
  text-decoration: none !important;
}

nav .nav-links a:hover, header .nav-links a:hover,
nav .nav-links a.active, header .nav-links a.active {
  color: #D6AF5C !important;
  opacity: 1 !important;
}

nav .nav-cta, header .nav-cta {
  background: #db6f27 !important;
  color: #FFFFFF !important;
  border: none !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}

nav .nav-cta:hover, header .nav-cta:hover {
  background: #b55a1d !important;
  color: #FFFFFF !important;
}

nav .nav-menu-btn, header .nav-menu-btn {
  color: #F8F4EC !important;
  border: 1px solid rgba(184, 147, 90, 0.4) !important;
  background: transparent !important;
}

.bha-lang-switcher, .bha-lang-switcher span {
  color: #FFFFFF !important;
}
.bha-lang-btn {
  color: #FFFFFF !important;
  opacity: 0.95 !important;
}
.bha-lang-btn:hover {
  color: #D6AF5C !important;
  opacity: 1 !important;
}
.bha-lang-btn.active {
  color: #D6AF5C !important;
  opacity: 1 !important;
  font-weight: 700 !important;
  border-bottom: 2px solid #D6AF5C !important;
}

.nav-logo img, .footer-logo img, .f-logo img {
  width: auto !important;
  height: 70px !important;
  max-width: 280px !important;
  object-fit: contain !important;
  background: #ffffff !important;
  border-radius: 999px !important;
  padding: 10px 22px !important;
  display: block !important;
}

@media (max-width: 1024px) {
  nav {
    padding: 12px 16px !important;
  }
  .nav-logo img, .footer-logo img, .f-logo img {
    padding: 8px 16px !important;
    height: 70px !important;
    max-width: 280px !important;
    width: auto !important;
  }
  .nav-actions {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    flex-shrink: 0 !important;
  }
  .bha-lang-switcher, .bha-lang-switcher span {
    color: #FFFFFF !important;
  }
  .bha-lang-btn {
    color: #FFFFFF !important;
    opacity: 0.95 !important;
  }
  .bha-lang-btn.active {
    color: #D6AF5C !important;
    opacity: 1 !important;
    font-weight: 700 !important;
    border-bottom: 2px solid #D6AF5C !important;
  }
}

/* MATCH MOBILE BUTTON STYLING TO PC (INLINE-FLEX, UNTOUCHED PC SIZING & SPACING) */
@media (max-width: 1024px) {
  .btn-primary, .btn-secondary, .lead-submit, .lead-cancel {
    width: auto !important;
    max-width: 100% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 14px 28px !important;
    font-size: 0.62rem !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    white-space: normal !important;
    box-sizing: border-box !important;
  }
  .actions, .cta-btns, .card-footer, .form-actions {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    align-items: center !important;
  }
}

/* ── GUARANTEED VISIBILITY & ULTRA RESPONSIVE STORY / BAOBAB SECTION ── */
.bha-story-section {
  padding: 80px 60px !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 60px !important;
  align-items: center !important;
  background: var(--sable) !important;
  margin-top: 40px !important;
}

.bha-story-section .story-media {
  position: relative !important;
  min-height: 560px !important;
  width: 100% !important;
  opacity: 1 !important;
  transform: none !important;
}

.bha-story-section .story-img {
  position: absolute !important;
  overflow: hidden !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.22) !important;
  opacity: 1 !important;
  transform: none !important;
}

.bha-story-section .story-img::after {
  display: none !important;
}

.bha-story-section .story-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  opacity: 1 !important;
}

.bha-story-section .story-img.main {
  left: 0 !important;
  top: 0 !important;
  width: 82% !important;
  height: 480px !important;
}

.bha-story-section .story-img.small {
  right: 0 !important;
  bottom: 0 !important;
  width: 52% !important;
  height: 300px !important;
  border: 10px solid #ffffff !important;
  box-shadow: 0 20px 50px rgba(0,0,0,0.3) !important;
  background: #ffffff !important;
}

.bha-story-section .story-copy {
  opacity: 1 !important;
  transform: none !important;
}

.bha-story-section .story-eye {
  font-size: 0.78rem !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  margin-bottom: 12px !important;
}

.bha-story-section .story-title {
  font-family: var(--ff) !important;
  font-size: 2.2rem !important;
  line-height: 1.25 !important;
  color: var(--night) !important;
  margin-bottom: 18px !important;
  font-weight: 300 !important;
}

.bha-story-section .story-title em {
  font-style: italic !important;
  color: var(--gold) !important;
}

.bha-story-section .story-text {
  font-size: 0.95rem !important;
  line-height: 1.65 !important;
  color: #2c3e38 !important;
  margin-bottom: 24px !important;
}

.bha-story-section .story-points {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px 20px !important;
  margin-top: 28px !important;
}

.bha-story-section .story-point {
  display: flex !important;
  gap: 10px !important;
  align-items: flex-start !important;
  font-size: 0.86rem !important;
  line-height: 1.5 !important;
  color: #111111 !important;
  font-weight: 500 !important;
}

.bha-story-section .story-point::before {
  content: '' !important;
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: var(--gold) !important;
  margin-top: 6px !important;
  flex: 0 0 auto !important;
}

.bha-story-section .story-cta-wrap {
  text-align: center !important;
  margin-top: 32px !important;
  width: 100% !important;
}

.bha-story-section .story-cta-wrap .btn-p {
  display: inline-block !important;
  padding: 16px 40px !important;
  text-decoration: none !important;
}

/* MOBILE MEDIA QUERY (< 900px) */
@media (max-width: 900px) {
  .bha-story-section {
    padding: 36px 16px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 28px !important;
    margin-top: 20px !important;
  }
  .bha-story-section .story-media {
    min-height: 300px !important;
    width: 100% !important;
    position: relative !important;
    margin-bottom: 10px !important;
  }
  .bha-story-section .story-img.main {
    width: 82% !important;
    height: 240px !important;
    left: 0 !important;
    top: 0 !important;
    position: absolute !important;
  }
  .bha-story-section .story-img.small {
    width: 52% !important;
    height: 160px !important;
    right: 0 !important;
    bottom: 0 !important;
    position: absolute !important;
    border: 5px solid #ffffff !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.2) !important;
  }
  .bha-story-section .story-title {
    font-size: 1.45rem !important;
    line-height: 1.25 !important;
    margin-bottom: 14px !important;
  }
  .bha-story-section .story-text {
    font-size: 0.88rem !important;
    line-height: 1.6 !important;
    margin-bottom: 16px !important;
  }
  .bha-story-section .story-points {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 20px !important;
  }
  .bha-story-section .story-point {
    font-size: 0.85rem !important;
  }
}

/* ── UNIVERSAL MOBILE NAVIGATION DRAWER & TOGGLE ── */
@media (max-width: 1024px) {
  nav {
    position: relative !important;
  }
  .nav-cta {
    display: none !important;
  }
  .nav-menu-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 100003 !important;
  }
  nav.nav-open .nav-links,
  header.nav-open .nav-links,
  .nav-links.mobile-open,
  .nav-links.active {
    display: flex !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    background: #0d1a17 !important;
    border-bottom: 2px solid #D6AF5C !important;
    padding: 20px 24px !important;
    gap: 12px !important;
    z-index: 999999 !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.7) !important;
  }
  nav.nav-open .nav-links a,
  header.nav-open .nav-links a,
  .nav-links.mobile-open a,
  .nav-links.active a {
    display: block !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    color: #FAF7F2 !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid rgba(214, 175, 92, 0.15) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
  }
}

/* ── UNIFIED CIRCULAR LOGO CONTAINER (105px PC / 82px MOBILE) ── */
.nav-logo, .footer-logo, .f-logo {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 105px !important;
  height: 105px !important;
  min-width: 105px !important;
  min-height: 105px !important;
  aspect-ratio: 1/1 !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  padding: 3px !important;
  border: none !important;
  box-shadow: 0 4px 18px rgba(0,0,0,0.35) !important;
  overflow: hidden !important;
}

.nav-logo img, .footer-logo img, .f-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  border-radius: 50% !important;
  display: block !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
}

@media (max-width: 1024px) {
  .nav-logo, .footer-logo, .f-logo {
    width: 82px !important;
    height: 82px !important;
    min-width: 82px !important;
    min-height: 82px !important;
    padding: 2px !important;
  }
}

/* ── COMPTE PRIVILÈGE & REMISES CLIENT (1% & 2%) ── */
.nav-account-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  padding: 8px 14px !important;
  background: rgba(214, 175, 92, 0.12) !important;
  border: 1px solid rgba(214, 175, 92, 0.4) !important;
  color: #D6AF5C !important;
  font-family: 'Poppins', 'Jost', sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  transition: all 0.25s ease !important;
  line-height: 1 !important;
  text-decoration: none !important;
  height: auto !important;
}

.nav-account-btn:hover {
  background: rgba(214, 175, 92, 0.25) !important;
  border-color: #D6AF5C !important;
  color: #FFFFFF !important;
  box-shadow: 0 4px 15px rgba(214, 175, 92, 0.25) !important;
}

.nav-account-btn.registered {
  background: #D6AF5C !important;
  color: #0F1A17 !important;
  border-color: #D6AF5C !important;
}

@media (max-width: 1024px) {
  .nav-account-btn {
    padding: 6px 10px !important;
    font-size: 0.65rem !important;
  }
}

@media (max-width: 640px) {
  .nav-account-btn {
    padding: 6px 8px !important;
    font-size: 0.58rem !important;
  }
}

/* Dynamic text colors for custom villa backgrounds */
.light-theme, .light-theme * { color: #000000 !important; text-shadow: none !important; border-color: rgba(0,0,0,0.25) !important; }
.dark-theme, .dark-theme * { color: #ffffff !important; text-shadow: none !important; border-color: rgba(255,255,255,0.25) !important; }

/* ── FOOTER HARMONISÉ GLOBAL (COULEUR & STYLE DE L'ACCUEIL) ── */
footer {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 80px 60px 40px !important;
  background: #0B1613 !important;
  border-top: 1px solid rgba(184, 147, 90, 0.12) !important;
  overflow-x: hidden !important;
  margin: 0 !important;
}
.footer-top, .ft {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 60px 0 !important;
  display: grid !important;
  grid-template-columns: 1.5fr 1fr 1fr 1fr !important;
  gap: 60px !important;
  box-sizing: border-box !important;
  align-items: start !important;
}
.footer-tagline, .f-tag {
  font-size: .78rem !important;
  line-height: 1.65 !important;
  color: rgba(248, 244, 236, 0.65) !important;
  margin-top: 18px !important;
  margin-bottom: 22px !important;
  max-width: 320px !important;
}
.footer-social, .f-soc {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 16px !important;
  padding: 0 !important;
}
.footer-social a, .f-soc a, .f-sl {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  border: 1px solid rgba(214, 175, 92, 0.25) !important;
  border-radius: 4px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: rgba(248, 244, 236, 0.65) !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
  background: transparent !important;
  cursor: pointer !important;
}
.footer-social a:hover, .f-soc a:hover, .f-sl:hover {
  border-color: #D6AF5C !important;
  color: #D6AF5C !important;
  background: rgba(214, 175, 92, 0.12) !important;
}
.footer-social svg, .f-soc svg, .f-sl svg {
  width: 17px !important;
  height: 17px !important;
  min-width: 17px !important;
  min-height: 17px !important;
  fill: currentColor !important;
  display: block !important;
}
.footer-col-title, .f-col h4 {
  font-size: .64rem !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  color: #D6AF5C !important;
  margin-bottom: 26px !important;
  font-weight: 500 !important;
}
.footer-links, .f-col ul {
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  padding: 0 !important;
  margin: 0 !important;
}
.footer-links a, .f-col a, .f-col span {
  font-size: .74rem !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: rgba(248, 244, 236, 0.65) !important;
  text-decoration: none !important;
  transition: color 0.25s ease !important;
}
.footer-links a:hover, .f-col a:hover {
  color: #D6AF5C !important;
}
.footer-bottom, .f-bot {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding-top: 32px !important;
  border-top: 1px solid rgba(184, 147, 90, 0.1) !important;
  box-sizing: border-box !important;
  font-size: .62rem !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: rgba(248, 244, 236, 0.45) !important;
}
@media (max-width: 1024px) {
  footer {
    padding: 60px 32px 32px !important;
  }
  .footer-top, .ft {
    grid-template-columns: 1fr 1fr !important;
    gap: 36px !important;
  }
}
@media (max-width: 640px) {
  footer {
    padding: 50px 20px 30px !important;
  }
  .footer-top, .ft {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .footer-bottom, .f-bot {
    flex-direction: column !important;
    gap: 14px !important;
    text-align: left !important;
    align-items: flex-start !important;
  }
}

/* ── DETAIL PAGE STYLES (GUÉDÉ & EXPERIENCES) ── */
.hero-guede {
  position: relative !important;
  height: 100vh !important;
  min-height: 650px !important;
  display: flex !important;
  align-items: flex-end !important;
  padding: 140px 60px 80px !important;
  background: #0B1613 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
.hero-bg-image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
}
.hero-bg-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  filter: none !important;
}
.hero-overlay {
  display: none !important;
}
.hero-container {
  position: relative;
  z-index: 3;
  max-width: 1100px;
  width: 100%;
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.62rem;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: #ffffff !important;
  margin-bottom: 16px;
  font-weight: 500;
}
.hero-eyebrow::before {
  content: '';
  display: block;
  width: 32px;
  height: 1px;
  background: #ffffff !important;
}
.hero-title-guede {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(3rem, 7vw, 5.5rem);
  font-weight: 300;
  line-height: 1.05;
  color: #ffffff !important;
  margin-bottom: 16px;
  letter-spacing: -0.01em;
}
.hero-title-guede em {
  font-style: italic;
  color: #ffffff !important;
  font-weight: 400;
}
.hero-subtitle-guede {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  font-style: italic;
  color: rgba(247, 245, 240, 0.85);
  margin-bottom: 28px;
  max-width: 780px;
  font-weight: 300;
}
.hero-actions {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}

/* Specs Bar */
.specs-guede {
  background: #122520;
  border-top: 1px solid rgba(255,255,255,0.15);
  border-bottom: 1px solid rgba(255,255,255,0.15);
  padding: 40px 60px;
}
.specs-grid-guede {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 32px;
  max-width: 1200px;
  margin: 0 auto;
}
.spec-card-guede {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  padding: 10px;
}
.spec-icon-guede {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #D6AF5C;
  margin-bottom: 4px;
}
.spec-val-guede {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 2.2rem;
  font-weight: 400;
  color: #D6AF5C;
  line-height: 1;
}
.spec-lbl-guede {
  font-size: 0.65rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(247, 245, 240, 0.7);
}

/* Mosaic Gallery */
.gallery-guede {
  padding: 90px 60px;
  max-width: 1320px;
  margin: 0 auto;
}
.section-header-guede {
  text-align: center;
  margin-bottom: 60px;
}
.section-tag-guede {
  font-size: 0.6rem;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: #D6AF5C;
  margin-bottom: 10px;
  display: block;
}
.section-title-guede {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: #ffffff;
  line-height: 1.2;
}
.section-divider-guede {
  width: 60px;
  height: 2px;
  background: #D6AF5C;
  margin: 18px auto 0;
}
.gallery-grid-guede {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 20px;
}
.gallery-tile {
  position: relative;
  overflow: hidden;
  background: #122520;
  border: 1px solid rgba(214, 175, 92, 0.2);
  cursor: pointer;
  border-radius: 2px;
  transition: transform 0.4s ease, border-color 0.4s ease;
}
.gallery-tile:hover {
  transform: translateY(-4px);
  border-color: #D6AF5C;
}
.gallery-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.gallery-tile:hover img {
  transform: scale(1.06);
}
.gallery-tile.tile-large { grid-column: span 8; aspect-ratio: 16/10; }
.gallery-tile.tile-medium { grid-column: span 4; aspect-ratio: 4/5; }
.gallery-tile.tile-small { grid-column: span 4; aspect-ratio: 4/3; }
.gallery-tile.tile-wide { grid-column: span 6; aspect-ratio: 16/9; }

/* ── 4 TABLEAUX / EXPÉRIENCES (#0B1613) ── */
.experiences-guede {
  background: #122520;
  padding: 100px 60px;
  border-top: 1px solid rgba(214, 175, 92, 0.2);
  border-bottom: 1px solid rgba(214, 175, 92, 0.2);
}
.experiences-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 28px;
  max-width: 1240px;
  margin: 50px auto 0;
}
.exp-card {
  background: #0B1613 !important;
  border: 1px solid rgba(214, 175, 92, 0.25) !important;
  padding: 40px 30px;
  text-align: center;
  transition: 0.3s;
  border-radius: 4px;
}
.exp-card, .exp-card * {
  color: #ffffff !important;
}
.exp-card:hover {
  border-color: #D6AF5C !important;
  transform: translateY(-5px);
  box-shadow: 0 12px 35px rgba(0,0,0,0.5) !important;
}
.exp-icon {
  width: 52px;
  height: 52px;
  margin: 0 auto 20px;
  color: #D6AF5C !important;
}
.exp-icon svg {
  stroke: #D6AF5C !important;
}
.exp-title {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 1.45rem;
  color: #ffffff !important;
  margin-bottom: 12px;
  font-weight: 400;
}
.exp-desc {
  font-size: 0.8rem;
  color: rgba(248, 244, 236, 0.8) !important;
  line-height: 1.7;
}

/* Story section */
.story-guede {
  background: #FAF6F0;
  color: #122520;
  padding: 100px 60px;
}
.story-container {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.story-content h2 {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 400;
  color: #122520;
  margin-bottom: 24px;
  line-height: 1.15;
}
.story-content p {
  font-size: 0.88rem;
  line-height: 1.85;
  color: #3b4d47;
  margin-bottom: 24px;
}
.story-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.story-tag-pill {
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: 1px solid rgba(197, 160, 89, 0.4);
  color: #D6AF5C;
  padding: 8px 18px;
  border-radius: 2px;
  background: rgba(197, 160, 89, 0.08);
}
@keyframes bhaKenBurns {
  0% { transform: scale(1) translate(0, 0); }
  50% { transform: scale(1.08) translate(-1%, -1%); }
  100% { transform: scale(1) translate(0, 0); }
}
.story-image {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0,0,0,0.15);
  border: 1px solid rgba(214, 175, 92, 0.25);
  transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.6s cubic-bezier(0.165, 0.84, 0.44, 1), border-color 0.6s ease !important;
}
.story-image:hover {
  transform: translateY(-8px) scale(1.02) !important;
  box-shadow: 0 30px 60px rgba(214, 175, 92, 0.22) !important;
  border-color: #D6AF5C !important;
}
.story-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: bhaKenBurns 20s infinite ease-in-out;
  transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
}
.story-image:hover img {
  transform: scale(1.15) !important;
  animation-play-state: paused;
}

/* ── PRICING & CTA BANNER ── */
.booking-banner {
  padding: 90px 60px;
  max-width: 1200px;
  margin: 0 auto;
}
.booking-card {
  background: #122520;
  border: 1px solid rgba(214, 175, 92, 0.25);
  padding: 50px 60px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: center;
}
.price-amount {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: clamp(2.8rem, 5vw, 4rem);
  color: #D6AF5C;
  font-weight: 300;
  line-height: 1;
}
.price-unit {
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(248, 244, 236, 0.65);
  margin-top: 10px;
}

/* ── BUTTONS ── */
.btn-primary-guede {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, #D6AF5C 0%, #B8935A 100%);
  color: #000;
  font-family: var(--font-body, 'Poppins', sans-serif);
  font-weight: 500;
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 16px 36px;
  border: none;
  cursor: pointer;
  transition: 0.3s;
}
.btn-primary-guede:hover {
  background: #E5C378;
  box-shadow: 0 0 20px rgba(197, 160, 89, 0.4);
}
.btn-secondary-guede {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: transparent;
  border: 1px solid #D6AF5C;
  color: #D6AF5C;
  font-family: var(--font-body, 'Poppins', sans-serif);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 16px 36px;
  transition: 0.3s;
  cursor: pointer;
}
.btn-secondary-guede:hover {
  background: rgba(197, 160, 89, 0.12);
  color: #fff;
}

/* ── SIMILAR PROPERTIES ── */
.similar-guede {
  padding: 80px 60px 120px;
  max-width: 1280px;
  margin: 0 auto;
}
.similar-grid-guede {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 28px;
  margin-top: 40px;
}
.similar-card-guede {
  background: #122520;
  border: 1px solid rgba(214, 175, 92, 0.2);
  overflow: hidden;
  transition: 0.3s;
}
.similar-card-guede:hover {
  border-color: #D6AF5C;
  transform: translateY(-4px);
}
.similar-card-img {
  aspect-ratio: 4/3;
  overflow: hidden;
}
.similar-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
.similar-card-guede:hover .similar-card-img img {
  transform: scale(1.05);
}
.similar-card-body {
  padding: 24px;
}
.similar-card-name {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 1.3rem;
  color: #ffffff !important;
  margin-bottom: 6px;
}
.similar-card-zone {
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85) !important;
  margin-bottom: 14px;
}
.similar-card-price {
  font-family: var(--font-serif, 'Cormorant Garamond', serif);
  font-size: 1.4rem;
  color: #ffffff !important;
}
.similar-card-guede, .similar-card-guede * {
  color: #ffffff !important;
}

/* ── LIGHTBOX MODAL ── */
.modal-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9900;
  background: rgba(7, 14, 12, 0.96);
  display: none;
  align-items: center;
  justify-content: center;
}
.modal-lightbox.open { display: flex; }
.modal-lightbox img {
  max-width: 90vw;
  max-height: 88vh;
  object-fit: contain;
  box-shadow: 0 10px 40px rgba(0,0,0,0.8);
  border: 1px solid rgba(214, 175, 92, 0.25);
}
.modal-lightbox-close {
  position: absolute;
  top: 24px; right: 28px;
  background: transparent;
  border: none;
  color: #fff;
  font-size: 2.5rem;
  cursor: pointer;
  line-height: 1;
}
.modal-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: calc(100% - 60px);
  left: 30px;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
}
.modal-lightbox-nav button {
  width: 52px;
  height: 52px;
  background: rgba(18, 37, 32, 0.7);
  border: 1px solid rgba(214, 175, 92, 0.25);
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
  pointer-events: auto;
  transition: 0.3s;
}
.modal-lightbox-nav button:hover {
  background: #D6AF5C;
  color: #000;
}

@media (max-width: 1024px) {
  nav { padding: 16px 24px; }
  .hero-guede { padding: 120px 24px 60px; height: 100vh; min-height: 520px; }
  .specs-guede, .gallery-guede, .experiences-guede, .story-guede, .booking-banner, .similar-guede { padding-left: 24px; padding-right: 24px; }
  .story-container { grid-template-columns: 1fr; gap: 40px; }
  .booking-card { grid-template-columns: 1fr; gap: 24px; }
}
/* ── WHATSAPP FLOATING ANIMATED WIDGET ── */
@keyframes bhaWaPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.75), 0 8px 24px rgba(0, 0, 0, 0.35);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 0 16px rgba(37, 211, 102, 0), 0 12px 28px rgba(0, 0, 0, 0.45);
    transform: scale(1.05);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0), 0 8px 24px rgba(0, 0, 0, 0.35);
    transform: scale(1);
  }
}

@keyframes bhaWaIconWiggle {
  0%, 100% { transform: rotate(0deg) scale(1); }
  15% { transform: rotate(-14deg) scale(1.15); }
  30% { transform: rotate(14deg) scale(1.15); }
  45% { transform: rotate(-8deg) scale(1.1); }
  60% { transform: rotate(8deg) scale(1.1); }
  75% { transform: rotate(0deg) scale(1); }
}

.bha-wa-widget {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 99999;
}
.bha-wa-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 22px;
  background: #25D366;
  color: #ffffff !important;
  font-family: var(--font-body, 'Poppins', sans-serif);
  font-weight: 600;
  font-size: 0.84rem;
  letter-spacing: 0.02em;
  border-radius: 50px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.35);
  cursor: pointer;
  border: none;
  text-decoration: none;
  animation: bhaWaPulse 2.4s infinite ease-in-out;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.bha-wa-btn:hover {
  background: #20ba59;
  transform: scale(1.08) translateY(-2px);
  animation-play-state: paused;
  box-shadow: 0 12px 30px rgba(37, 211, 102, 0.45);
  color: #ffffff !important;
}
.bha-wa-btn svg, .bha-wa-btn .wa-icon {
  width: 22px;
  height: 22px;
  fill: currentColor;
  display: inline-block;
  animation: bhaWaIconWiggle 3.2s infinite ease-in-out;
}
.bha-wa-popover {
  position: absolute;
  bottom: 64px;
  right: 0;
  width: 300px;
  background: #162420;
  border: 1px solid #D6AF5C;
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 12px 35px rgba(0,0,0,0.7);
  display: none;
  box-sizing: border-box;
}
.bha-wa-popover.open {
  display: block;
}
.bha-agent-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background: #0b1412;
  border-radius: 4px;
  margin-top: 8px;
  border: 1px solid rgba(214, 175, 92, 0.2);
}

/* ── HERO INTENTION SELECTOR (3 EQUAL COLUMNS CENTERED / FULL-WIDTH) ── */
.intent-section {
  background: var(--ivoire, #F8F4EC) !important;
  padding: 50px 60px 20px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.hero-intent {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
  max-width: 1320px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

.intent-card {
  background: #0B1613 !important;
  border: 1px solid rgba(214, 175, 92, .25) !important;
  border-radius: 6px !important;
  padding: 26px 24px !important;
  cursor: pointer !important;
  text-decoration: none !important;
  transition: all .25s ease !important;
  text-align: left !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  min-height: 110px !important;
  color: #FAF7F2 !important;
  box-sizing: border-box !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.2) !important;
}

.intent-card:hover,
.intent-card:focus-visible {
  background: #142722 !important;
  border-color: #D6AF5C !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 30px rgba(214, 175, 92, 0.25) !important;
}

.intent-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 23px !important;
  height: 23px !important;
  margin-bottom: 4px !important;
  flex-shrink: 0 !important;
}

.intent-icon svg {
  width: 23px !important;
  height: 23px !important;
  display: block !important;
}

.intent-title {
  font-family: var(--font-serif, 'Lora', serif) !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  letter-spacing: .02em !important;
  line-height: 1.25 !important;
  color: #D6AF5C !important;
}

.intent-sub {
  font-size: .78rem !important;
  color: rgba(248, 244, 236, .78) !important;
  line-height: 1.4 !important;
  margin-top: 2px !important;
}

@media(max-width: 1024px) {
  .intent-section {
    padding: 36px 24px 16px !important;
  }
  .hero-intent {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 16px !important;
  }
}

@media(max-width: 768px) {
  .intent-section {
    padding: 24px 16px 12px !important;
  }
  .hero-intent {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .intent-card {
    min-height: auto !important;
    padding: 18px 16px !important;
  }
}

/* ── HERO BACKGROUND SLIDESHOW SMOOTH TRANSITION ── */
.hero-bg {
  position: absolute !important;
  inset: 0 !important;
  background-position: center center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  transition: background-image 0.5s ease-in-out !important;
  will-change: background-image;
}

/* ── BULLETPROOF CLARITY & VIEWPORT HEIGHT OVERRIDES FOR ALL HERO SECTIONS ── */
.hero {
  position: relative !important;
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 650px !important;
  display: flex !important;
  align-items: flex-end !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.hero::after, .hero-ov, .hero-overlay {
  display: none !important;
}

.hero-bg, .hero-bg-image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
  filter: none !important;
}

.hero-bg img, .hero-bg-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  filter: none !important;
}

.hero-title, .hero-h1 {
  text-shadow: 0 10px 30px rgba(0, 0, 0, 0.58) !important;
}
.hero-sub {
  text-shadow: 0 6px 22px rgba(0, 0, 0, 0.48) !important;
}
.hero-eye, .eyebrow {
  text-shadow: 0 3px 16px rgba(0, 0, 0, 0.52) !important;
}

/* ── MOBILE NAV RESPONSIVENESS OVERRIDES (<768px) ── */
@media (max-width: 768px) {
  html body nav {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 10px 16px !important;
    gap: 12px !important;
  }
  html body nav .nav-links {
    display: none !important;
  }
  html body nav .nav-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: end !important;
  }
  html body nav .nav-actions .bha-lang-switcher {
    display: inline-flex !important;
    align-items: center !important;
    gap: 2px !important;
    font-size: 0.65rem !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body nav .nav-actions .bha-lang-switcher span {
    padding: 2px 4px !important;
    font-size: 0.62rem !important;
  }
  html body nav .nav-actions .nav-cta,
  html body nav .nav-actions .nav-account-btn {
    display: none !important;
  }
  html body nav .nav-actions button.nav-menu-btn {
    display: inline-flex !important;
    font-size: 0 !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    border: 1px solid rgba(214, 175, 92, 0.4) !important;
    background: transparent linear-gradient(to bottom, #D6AF5C 2px, transparent 2px, transparent 6px, #D6AF5C 6px, #D6AF5C 8px, transparent 8px, transparent 12px, #D6AF5C 12px, #D6AF5C 14px) no-repeat center/18px 14px !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
  }
}

/* ── PC HEADER ADJUSTMENTS (min-width: 769px) ── */
@media (min-width: 769px) {
  html body nav .nav-actions .nav-cta {
    display: none !important;
  }
  html body nav .nav-links {
    gap: 48px !important;
  }
  html body nav .nav-links a {
    font-size: 0.76rem !important;
    letter-spacing: 0.2em !important;
  }
  html body nav .nav-actions .bha-lang-switcher {
    margin-left: 0 !important;
    margin-right: 20px !important;
    gap: 6px !important;
  }
  html body nav .nav-actions .bha-lang-switcher .bha-lang-btn {
    padding: 4px 8px !important;
    font-size: 0.72rem !important;
    border-radius: 4px !important;
    transition: all 0.3s ease !important;
    border-bottom: none !important;
  }
  html body nav .nav-actions .bha-lang-switcher .bha-lang-btn.active {
    background: rgba(214, 175, 92, 0.15) !important;
    color: #D6AF5C !important;
    border: 1px solid rgba(214, 175, 92, 0.3) !important;
  }
}


