    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --green:      #B5714A;
      --green-light:#D4956E;
      --green-pale: #FAF0E6;
      --beige:      #FDF7F0;
      --terra:      #7A3F20;
      --text:       #221510;
      --text-light: #6A5248;
      --white:      #ffffff;
      --shadow:     0 4px 24px rgba(0,0,0,.12);
    }

    html { scroll-behavior: smooth; scroll-padding-top: 68px; }

    body {
      font-family: 'Georgia', 'Times New Roman', serif;
      background: var(--beige);
      color: var(--text);
    }

    /* ── HEADER / NAV ── */
    #lang-bar {
      position: fixed;
      top: 0; right: 0; left: 0;
      z-index: 100;
      display: flex;
      align-items: center;
      padding: 0 2.5rem;
      height: 68px;
      background: rgba(18,25,31,.97);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid #f5c842;
    }

    /* Logo */
    .nav-logo {
      flex-shrink: 0;
      text-decoration: none;
      display: flex;
      flex-direction: column;
      line-height: 1;
    }
    .nav-logo-main {
      font-family: 'Georgia', 'Times New Roman', serif;
      font-style: italic;
      font-size: 1.22rem;
      color: #f5c842;
      letter-spacing: .01em;
      transition: color .2s;
    }
    .nav-logo-sub {
      font-family: sans-serif;
      font-size: .6rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(255,255,255,.42);
      margin-top: .18rem;
      transition: color .2s;
    }
    .nav-logo:hover .nav-logo-main { color: #ffe070; }

    /* Nav links — centered */
    #lang-bar nav {
      display: flex;
      align-items: center;
      gap: 0;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
    }

    #lang-bar nav a {
      text-decoration: none;
      font-family: sans-serif;
      font-size: .76rem;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: rgba(255,255,255,.58);
      padding: .5rem .85rem;
      position: relative;
      transition: color .22s;
      white-space: nowrap;
    }
    #lang-bar nav a::after {
      content: '';
      position: absolute;
      bottom: .1rem;
      left: .85rem;
      right: .85rem;
      height: 1px;
      background: #f5c842;
      transform: scaleX(0);
      transform-origin: center;
      transition: transform .28s cubic-bezier(.4,0,.2,1);
    }
    #lang-bar nav a:hover { color: #f5c842; }
    #lang-bar nav a:hover::after { transform: scaleX(1); }

    /* Right cluster */
    .nav-right {
      display: flex;
      align-items: center;
      gap: .35rem;
      margin-left: auto;
    }

    /* Lang toggle — minimal text style */
    .lang-btn {
      background: none;
      border: none;
      color: rgba(255,255,255,.5);
      font-family: sans-serif;
      font-size: .62rem;
      letter-spacing: .07em;
      text-transform: uppercase;
      cursor: pointer;
      padding: .3rem;
      transition: color .2s;
      position: relative;
    }
    .lang-btn::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 1.5px;
      background: #f5c842;
      transform: scaleX(0);
      transition: transform .22s;
    }
    .lang-btn:hover { color: #f5c842; }
    .lang-btn.active { color: #f5c842; font-weight: 700; }
    .lang-btn.active::after { transform: scaleX(1); }

    .lang-sep {
      width: 1px;
      height: 12px;
      background: rgba(255,255,255,.18);
      display: inline-block;
    }

    /* ── NAV CONTACT BUTTONS ── */
    .nav-contact-btns {
      display: flex;
      align-items: center;
      gap: .45rem;
      margin-right: .3rem;
    }

    .nav-contact-btn {
      display: inline-flex;
      align-items: center;
      gap: .4rem;
      border: 1px solid rgba(245,200,66,.45);
      background: transparent;
      color: #f5c842;
      border-radius: 2rem;
      padding: .38rem 1rem;
      font-family: sans-serif;
      font-size: .72rem;
      letter-spacing: .06em;
      text-decoration: none;
      white-space: nowrap;
      transition: background .22s, color .22s, border-color .22s;
    }
    .nav-contact-btn:hover {
      background: #f5c842;
      color: #12191f;
      border-color: #f5c842;
    }

    .nav-whatsapp-btn {
      border-color: rgba(37,211,102,.45);
      color: #4de089;
    }
    .nav-whatsapp-btn:hover {
      background: #25d366;
      color: #fff;
      border-color: #25d366;
    }

    .nav-mobile-contact { display: none; }

    /* ── HAMBURGER ── */
    .menu-toggle {
      display: none;
      flex-direction: column;
      justify-content: space-between;
      width: 22px;
      height: 15px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 0;
      flex-shrink: 0;
      margin-right: auto;
    }

    .menu-toggle span {
      display: block;
      height: 1.5px;
      width: 100%;
      background: #f5c842;
      border-radius: 2px;
      transition: transform .25s ease, opacity .25s ease;
      transform-origin: center;
    }

    .menu-toggle[aria-expanded="true"] span:nth-child(1) {
      transform: translateY(6.75px) rotate(45deg);
    }
    .menu-toggle[aria-expanded="true"] span:nth-child(2) {
      opacity: 0;
    }
    .menu-toggle[aria-expanded="true"] span:nth-child(3) {
      transform: translateY(-6.75px) rotate(-45deg);
    }

    /* ── HERO ── */
    .hero {
      position: relative;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 7rem 2rem 4rem;
      overflow: hidden;
      background-image: url('images/hero-fallback.jpg');
      background-image: image-set(
        url('images/hero.webp') type('image/webp'),
        url('images/hero-fallback.jpg') type('image/jpeg')
      );
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
    }

    .hero-img { display: none; }

    .hero-bg {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(160deg, rgba(20,12,5,.38) 0%, rgba(10,6,2,.28) 100%);
    }

    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 760px;
      width: 100%;
      min-width: 0;
    }

    .badge-hero {
      display: inline-block;
      background: rgba(255,255,255,.18);
      border: 1px solid rgba(255,255,255,.4);
      color: #fff;
      font-family: sans-serif;
      font-size: .72rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      padding: .4rem 1.2rem;
      border-radius: 2rem;
      margin-bottom: 1.6rem;
    }

    h1 {
      font-family: 'Great Vibes', cursive;
      font-size: clamp(4rem, 10vw, 7.5rem);
      font-weight: 400;
      font-style: normal;
      line-height: 1.1;
      padding-top: 1.5rem;
      margin-top: -1.5rem;
      margin-bottom: .7rem;
      background: linear-gradient(160deg, #ffe9a0 0%, #f5c842 35%, #e8a820 65%, #fde98a 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;

      filter:
        drop-shadow(0 0 18px rgba(0,0,0,.7))
        drop-shadow(0 2px 6px rgba(0,0,0,.9));
      letter-spacing: .02em;
    }

    .hero-sub {
      font-size: clamp(1rem, 2.5vw, 1.25rem);
      color: rgba(255,255,255,.85);
      letter-spacing: .04em;
      margin-bottom: 2.2rem;
    }

    .sep {
      width: 50px; height: 2px;
      background: rgba(255,255,255,.5);
      margin: 0 auto 2.2rem;
      border-radius: 2px;
    }

    .hero-desc {
      font-size: 1.05rem;
      line-height: 1.85;
      color: rgba(255,255,255,.88);
      margin-bottom: 2.8rem;
    }

    .btn-primary {
      display: inline-block;
      background: linear-gradient(135deg, #f5c842 0%, #c9a86c 100%);
      color: #12191f;
      text-decoration: none;
      padding: .65rem 2.6rem;
      border-radius: 3rem;
      font-family: sans-serif;
      font-size: .95rem;
      font-weight: 700;
      letter-spacing: .06em;
      box-shadow: 0 4px 24px rgba(201,168,108,.35);
      transition: transform .2s, box-shadow .2s, background .2s;
    }
    .btn-primary:hover {
      background: linear-gradient(135deg, #ffe070 0%, #dfc080 100%);
      box-shadow: 0 10px 32px rgba(201,168,108,.5);
    }

    .scroll-hint {
      position: absolute;
      bottom: 2rem; left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      color: rgba(255,255,255,.55);
      font-family: sans-serif;
      font-size: .78rem;
      letter-spacing: .1em;
      animation: bounce 2s infinite;
    }
    @keyframes bounce {
      0%,100%{ transform: translateX(-50%) translateY(0); }
      50%     { transform: translateX(-50%) translateY(6px); }
    }

    /* ── SECTION LAYOUT ── */
    section { padding: 5rem 1.5rem; }

    .section-inner {
      max-width: 1100px;
      margin: 0 auto;
    }

    .section-label {
      font-family: sans-serif;
      font-size: .72rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--green-light);
      margin-bottom: .8rem;
    }

    h2 {
      font-size: clamp(1.8rem, 4vw, 2.8rem);
      color: var(--green);
      font-style: italic;
      line-height: 1.2;
      margin-bottom: 1rem;
    }

    .section-sep {
      width: 50px; height: 3px;
      background: var(--green-light);
      border-radius: 2px;
      margin: 0 0 2rem;
    }

    /* ── GALLERY ── */
    #galerie { background: #EFF5E8; }

    .gallery-tabs {
      display: flex;
      justify-content: center;
      gap: .6rem;
      margin-top: 2.2rem;
    }
    .gallery-tab {
      font-family: sans-serif;
      font-size: .86rem;
      font-weight: 700;
      letter-spacing: .03em;
      color: var(--text-light);
      background: #fff;
      border: 1.5px solid rgba(181,113,74,.22);
      border-radius: 2rem;
      padding: .55rem 1.4rem;
      cursor: pointer;
      transition: background .2s, color .2s, border-color .2s;
    }
    .gallery-tab:hover { border-color: var(--terra); color: var(--terra); }
    .gallery-tab.is-active[data-loc="montmorency"] {
      background: #4a8a4f;
      border-color: #4a8a4f;
      color: #fff;
    }
    .gallery-tab.is-active[data-loc="sarcelles"] {
      background: #2d8acf;
      border-color: #2d8acf;
      color: #fff;
    }

    .carousel-wrap {
      position: relative;
      margin-top: 2.5rem;
    }

    .carousel-track {
      display: grid;
      grid-template-rows: repeat(3, 186px);
      grid-auto-flow: column dense;
      grid-auto-columns: 264px;
      gap: 10px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-behavior: smooth;
      -webkit-overflow-scrolling: touch;
      padding-bottom: 4px;
      scrollbar-width: none;
    }
    .carousel-track::-webkit-scrollbar { display: none; }

    .carousel-item {
      border-radius: 12px;
      overflow: hidden;
      cursor: pointer;
      transition: transform .3s, box-shadow .3s;
    }
    .carousel-item:hover { transform: scale(1.02); box-shadow: 0 6px 24px rgba(0,0,0,.18); }
    .carousel-item img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
    }
    .carousel-item.car-tall { grid-row: span 3; }
    .carousel-item.car-mid  { grid-row: span 2; }
    .carousel-item.gallery-hidden { display: none; }

    .carousel-btn {
      position: absolute;
      top: 50%; transform: translateY(-50%);
      background: #fff;
      border: none;
      border-radius: 50%;
      width: 44px; height: 44px;
      box-shadow: 0 2px 14px rgba(0,0,0,.18);
      color: var(--terra);
      font-size: 1.4rem;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .2s, color .2s, box-shadow .2s;
      z-index: 2;
    }
    .carousel-btn:hover { background: var(--green); color: #fff; box-shadow: 0 4px 18px rgba(181,113,74,.3); }
    .carousel-btn-prev { left: -18px; }
    .carousel-btn-next { right: -18px; }

    @media (max-width: 768px) {
      .carousel-track { grid-template-rows: repeat(3, 132px); grid-auto-columns: 192px; }
      .carousel-btn { display: none; }
    }
    @media (max-width: 480px) {
      .carousel-track { grid-template-rows: repeat(3, 108px); grid-auto-columns: 156px; }
    }

    /* ── LIGHTBOX ── */
    .lightbox {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 300;
      background: rgba(253,247,240,.98);
      align-items: center;
      justify-content: center;
      padding: 1.5rem;
      padding-top: calc(60px + 1.5rem);
      overflow: hidden;
    }
    .lightbox.open { display: flex; }
    .lightbox img {
      max-width: 90vw;
      max-height: calc(90vh - 60px);
      border-radius: 8px;
      object-fit: contain;
      box-shadow: 0 20px 60px rgba(0,0,0,.5);
      will-change: transform;
      touch-action: none;
      user-select: none;
      -webkit-user-drag: none;
      cursor: zoom-in;
    }
    #lb-img.lb-panning { cursor: grab; }
    #lb-img.lb-dragging { cursor: grabbing !important; }
    .lightbox-prev, .lightbox-next { z-index: 2; }
    .lightbox-close {
      background: rgba(201,168,108,.12);
      border: 1px solid rgba(201,168,108,.35);
      color: #c9a86c;
      font-size: 1.2rem;
      width: 36px; height: 36px;
      border-radius: 50%;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .2s, color .2s;
      flex-shrink: 0;
      margin-left: .5rem;
    }
    .lightbox-close:hover { background: #c9a86c; color: #12191f; }
    .lightbox-prev, .lightbox-next {
      position: absolute;
      top: 50%; transform: translateY(-50%);
      background: rgba(181,113,74,.12);
      border: 1px solid rgba(181,113,74,.3);
      color: var(--terra);
      font-size: 1.6rem;
      width: 48px; height: 48px;
      border-radius: 50%;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: background .2s, color .2s;
    }
    .lightbox-prev { left: 1.2rem; }
    .lightbox-next { right: 1.2rem; }
    .lightbox-prev:hover, .lightbox-next:hover { background: var(--terra); color: #fff; }
    .lightbox-header {
      position: absolute;
      top: 0; left: 0; right: 0;
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 2rem;
      height: 60px;
      background: rgba(18,25,31,.97);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid #c9a86c;
    }
    .lightbox-header-contacts {
      display: flex;
      align-items: center;
      gap: .45rem;
    }

    @media (max-width: 600px) {
      .lightbox-header {
        padding: 0 1rem;
        height: 54px;
      }
      .lightbox { padding-top: calc(54px + 1rem); padding-left: .75rem; padding-right: .75rem; padding-bottom: 1rem; }
      .lightbox img { max-height: calc(90vh - 54px); }
      .lightbox-header .nav-logo-sub { display: none; }
      .lb-btn-label { display: none; }
      .lightbox-header .nav-contact-btn { padding: .38rem .5rem; }
      .lightbox-prev { left: .4rem; }
      .lightbox-next { right: .4rem; }
      .lightbox-prev, .lightbox-next { width: 40px; height: 40px; }
    }

    /* ── ABOUT ── */
    #apropos {
      background: var(--beige);
    }

    .about-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
    }

    .about-text p {
      font-size: 1.05rem;
      line-height: 1.9;
      color: var(--text-light);
      margin-bottom: 1.2rem;
    }

    .about-stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1.5rem;
    }

    .stat-card {
      background: #fff;
      border-radius: 14px;
      padding: 1.3rem 1.5rem;
      box-shadow: var(--shadow);
      display: flex;
      align-items: center;
      gap: 1.2rem;
      border-left: 4px solid var(--terra);
    }

    .stat-num-wrap {
      display: flex;
      align-items: center;
      justify-content: center;
      min-width: 3.8rem;
      height: 3.8rem;
      border-radius: 10px;
      background: #f3e8df;
      flex-shrink: 0;
      padding: 0 .6rem;
    }

    .stat-num {
      font-size: 1.55rem;
      font-style: italic;
      color: var(--terra);
      line-height: 1;
      white-space: nowrap;
    }
    .stat-min {
      font-size: .55em;
      font-style: normal;
    }
    .eiffel {
      font-size: 1.4em;
      filter: sepia(1) saturate(3) brightness(0.65);
    }

    .stat-label {
      font-family: sans-serif;
      font-size: .9rem;
      color: var(--text-light);
      letter-spacing: .03em;
      text-align: left;
      line-height: 1.3;
    }

    .apropos-sarcelles {
      margin-top: 3rem;
      padding-top: 2.6rem;
      border-top: 1.5px dashed rgba(24,104,168,.25);
    }
    .about-grid-sarcelles {
      grid-template-columns: 1fr 1.5fr;
      gap: 2.5rem;
    }
    .about-stats-sarcelles {
      grid-template-columns: repeat(3, 1fr);
    }
    .about-stats-sarcelles .stat-card { border-left-color: #2d8acf; padding: 1.3rem 1rem; }
    .about-stats-sarcelles .stat-num-wrap { background: rgba(45,138,207,.12); }
    .about-stats-sarcelles .stat-num { color: #1868a8; }
    .about-stats-sarcelles .stat-label { white-space: nowrap; }

    /* ── POUR QUI ── */
    #pour-qui { background: #E5EDE0; }

    .pour-qui-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1.4rem;
      margin-top: 2.5rem;
    }

    .pq-card {
      background: var(--beige);
      border-radius: 18px;
      padding: 2rem 1.5rem 1.8rem;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: .9rem;
      border: 1.5px solid transparent;
      box-shadow: 0 2px 14px rgba(181,113,74,.07);
      transition: border-color .22s, transform .22s, box-shadow .22s;
      position: relative;
      overflow: hidden;
    }
    .pq-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 4px;
      border-radius: 18px 18px 0 0;
      background: var(--green-light);
      opacity: 0;
      transition: opacity .22s;
    }
    .pq-card:hover {
      border-color: rgba(181,113,74,.25);
      transform: translateY(-5px);
      box-shadow: 0 10px 30px rgba(181,113,74,.14);
    }
    .pq-card:hover::before { opacity: 1; }

    .pq-icon-wrap {
      width: 3.4rem;
      height: 3.4rem;
      border-radius: 14px;
      background: var(--green-pale);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.6rem;
      flex-shrink: 0;
    }

    .pq-title {
      font-family: 'Georgia', serif;
      font-style: italic;
      font-size: 1.18rem;
      color: var(--green);
      line-height: 1.2;
    }

    .pq-desc {
      font-family: sans-serif;
      font-size: .86rem;
      line-height: 1.7;
      color: var(--text-light);
      flex: 1;
    }

    .pq-cta {
      display: inline-flex;
      align-items: center;
      gap: .4rem;
      font-family: sans-serif;
      font-size: .82rem;
      font-weight: 700;
      color: var(--terra);
      text-decoration: none;
      letter-spacing: .04em;
      margin-top: .8rem;
      transition: color .18s, border-color .18s;
    }
    .pq-cta:hover { color: var(--green); border-color: var(--green); }
    .pq-cta svg { transition: transform .18s; }
    .pq-cta:hover svg { transform: translateX(3px); }

    /* ── LIEUX (locations) ── */
    .lieux-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1.8rem;
      margin-top: 2.5rem;
    }
    .lieu-card {
      background: var(--beige);
      border-radius: 18px;
      overflow: hidden;
      box-shadow: 0 2px 14px rgba(181,113,74,.07);
      transition: transform .22s, box-shadow .22s;
      display: flex;
      flex-direction: column;
    }
    .lieu-card-montmorency {
      box-shadow: 0 0 0 1.5px rgba(74,138,79,.45), 0 8px 26px rgba(74,138,79,.22);
    }
    .lieu-card-sarcelles {
      box-shadow: 0 0 0 1.5px rgba(45,138,207,.45), 0 8px 26px rgba(45,138,207,.22);
    }
    .lieu-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 10px 30px rgba(181,113,74,.14);
    }
    .lieu-card-montmorency:hover {
      box-shadow: 0 0 0 1.5px rgba(74,138,79,.55), 0 12px 32px rgba(74,138,79,.3);
    }
    .lieu-card-sarcelles:hover {
      box-shadow: 0 0 0 1.5px rgba(45,138,207,.55), 0 12px 32px rgba(45,138,207,.3);
    }
    .lieu-card-img {
      position: relative;
      aspect-ratio: 4/3;
      overflow: hidden;
    }
    .lieu-card-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .4s;
    }
    .lieu-card:hover .lieu-card-img img { transform: scale(1.05); }
    .lieu-card-badge {
      position: absolute;
      top: .9rem;
      left: .9rem;
      background: rgba(18,25,31,.72);
      color: #fff;
      font-family: sans-serif;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      padding: .35rem .75rem;
      border-radius: 2rem;
      backdrop-filter: blur(4px);
    }
    .lieu-card-body {
      padding: 1.6rem 1.6rem 1.8rem;
      display: flex;
      flex-direction: column;
      gap: .7rem;
      flex: 1;
    }
    .lieu-card-title {
      font-family: 'Georgia', serif;
      font-style: italic;
      font-size: 1.3rem;
      color: var(--green);
      line-height: 1.2;
    }
    .lieu-card-tags {
      display: flex;
      flex-wrap: wrap;
      gap: .4rem;
    }
    .lieu-card-tag {
      font-family: sans-serif;
      font-size: .74rem;
      font-weight: 600;
      color: var(--terra);
      background: rgba(181,113,74,.1);
      padding: .25rem .65rem;
      border-radius: 1rem;
    }
    .lieu-card-tag.lieu-card-tag-pool {
      color: #1868a8;
      background: rgba(45,138,207,.16);
    }
    .lieu-card-tag.lieu-card-tag-new {
      color: #b8560f;
      background: rgba(232,113,20,.16);
    }
    .lieu-card-desc {
      font-family: sans-serif;
      font-size: .88rem;
      line-height: 1.7;
      color: var(--text-light);
      flex: 1;
    }
    @media (max-width: 720px) {
      .lieux-grid { grid-template-columns: 1fr; gap: 1.2rem; }
    }

    @media (max-width: 900px) {
      .pour-qui-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 480px) {
      .pour-qui-grid { grid-template-columns: 1fr; gap: 1rem; }
      .pq-card { padding: 1.5rem 1.3rem; flex-direction: row; flex-wrap: wrap; align-items: flex-start; }
      .pq-icon-wrap { width: 2.8rem; height: 2.8rem; font-size: 1.3rem; border-radius: 10px; }
      .pq-title { font-size: 1.05rem; }
    }

    /* ── ÉQUIPEMENTS ── */
    #equipements { background: var(--green-pale); }

    .equip-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
      gap: 1rem;
      margin-top: 2.5rem;
    }

    .equip-card {
      background: #fff;
      border-radius: 14px;
      padding: 1rem 1.3rem;
      display: flex;
      align-items: center;
      gap: 1rem;
      box-shadow: 0 2px 12px rgba(181,113,74,.08);
      border-left: 4px solid var(--green-light);
      transition: transform .2s, box-shadow .2s;
    }
    .equip-card:hover {
      transform: translateX(4px);
      box-shadow: 0 4px 20px rgba(181,113,74,.14);
    }
    .equip-card--full {
      grid-column: 1 / -1;
      flex-wrap: wrap;
      align-items: center;
      gap: .75rem 1.2rem;
      border-left-color: var(--orange);
    }
    .equip-card--full .equip-name {
      font-weight: 600;
      margin-right: .5rem;
    }
    .equip-depandance-tags {
      display: flex;
      flex-wrap: wrap;
      gap: .5rem;
    }
    .equip-dep-tag {
      display: flex;
      align-items: center;
      gap: .45rem;
      background: #fff;
      border: 1.5px solid var(--green-light);
      border-radius: 30px;
      padding: .3rem .85rem .3rem .4rem;
      font-family: sans-serif;
      font-size: .83rem;
      font-weight: 600;
      color: var(--text);
      white-space: nowrap;
      box-shadow: 0 1px 6px rgba(181,113,74,.08);
    }
    .equip-dep-tag .dep-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 1.7rem;
      height: 1.7rem;
      border-radius: 50%;
      background: var(--green-pale);
      font-size: .9rem;
      flex-shrink: 0;
    }

    .equip-icon-wrap {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 2.8rem;
      height: 2.8rem;
      border-radius: 50%;
      background: var(--green-pale);
      flex-shrink: 0;
    }

    .equip-icon {
      font-size: 1.3rem;
      line-height: 1;
    }

    /* ── ÉQUIPEMENTS · BADGES LIEU ── */
    .equip-loc-head {
      display: flex;
      align-items: center;
      gap: .9rem;
      flex-wrap: wrap;
      margin-bottom: 1.6rem;
    }
    .equip-loc-badge {
      display: inline-flex;
      align-items: center;
      gap: .4rem;
      font-family: sans-serif;
      font-size: .78rem;
      font-weight: 700;
      letter-spacing: .05em;
      text-transform: uppercase;
      color: #fff;
      padding: .4rem 1rem;
      border-radius: 2rem;
    }
    .equip-loc-badge-montmorency { background: #4a8a4f; }
    .equip-loc-badge-sarcelles { background: #2d8acf; }

    .badge-loc-subtle {
      display: inline-flex; align-items: center;
      font-size: .62rem; letter-spacing: .08em; text-transform: uppercase;
      background: rgba(74,138,79,.1); border: 1px solid rgba(74,138,79,.4);
      color: #3c7040; padding: .18rem .6rem; border-radius: 2rem;
      font-family: sans-serif; white-space: nowrap;
    }

    /* ── ÉQUIPEMENTS · SARCELLES ── */
    .equip-sarcelles {
      margin-top: 3rem;
      padding-top: 2.6rem;
      border-top: 1.5px dashed rgba(24,104,168,.25);
    }
    .equip-sarcelles-head {
      display: flex;
      align-items: center;
      gap: .9rem;
      flex-wrap: wrap;
      margin-bottom: 1.6rem;
    }
    .equip-sarcelles-note {
      font-family: sans-serif;
      font-size: .88rem;
      color: var(--text-light);
      line-height: 1.6;
    }
    .equip-grid-sarcelles {
      margin-top: 1.6rem;
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    }
    .equip-card-pool {
      border-left-color: #2d8acf;
    }
    .equip-card-pool .equip-icon-wrap {
      background: rgba(45,138,207,.14);
    }

    .equip-name {
      font-family: sans-serif;
      font-size: .9rem;
      color: var(--text);
      font-weight: 600;
      line-height: 1.3;
      text-align: left;
    }

    /* ── TRAITEUR ── */
    #traiteur { background: var(--beige); }

    .traiteur-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
    }

    .traiteur-text p.section-label { margin-bottom: .8rem; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
    .badge-facultatif {
      display: inline-flex; align-items: center;
      font-size: .62rem; letter-spacing: .1em; text-transform: uppercase;
      background: rgba(201,168,108,.12); border: 1px solid rgba(201,168,108,.45);
      color: #c9a86c; padding: .18rem .6rem; border-radius: 2rem;
      font-family: sans-serif; white-space: nowrap;
    }

    .traiteur-text .lead {
      font-size: 1.05rem;
      line-height: 1.9;
      color: var(--text-light);
      margin-bottom: 1.4rem;
    }

    .traiteur-formules {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: .7rem;
      margin-bottom: 2rem;
    }

    .traiteur-formules li {
      display: flex;
      align-items: center;
      gap: .9rem;
      font-family: sans-serif;
      font-size: .92rem;
      color: var(--text);
    }

    .traiteur-formules li span.tf-icon {
      font-size: 1.4rem;
      flex-shrink: 0;
    }

    .traiteur-formules li strong {
      color: var(--green);
      font-weight: 700;
      margin-right: .3rem;
    }

    .traiteur-img-wrap {
      position: relative;
      border-radius: 16px;
      overflow: hidden;
      aspect-ratio: 4/3;
      background: linear-gradient(145deg, #C47850 0%, #B5714A 50%, #8B4A2A 100%);
      box-shadow: var(--shadow);
    }

    .traiteur-img-wrap img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
    }

    .traiteur-img-wrap::after {
      content: '🍽️';
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 5rem;
      opacity: .25;
      pointer-events: none;
    }

    @media (max-width: 768px) {
      .traiteur-inner { grid-template-columns: 1fr; gap: 2rem; }
      .traiteur-img-wrap { order: -1; }
    }

    /* ── TARIFS ── */
    #tarifs {
      background: #12191f;
      color: #fff;
      padding: 4rem 0;
    }
    #tarifs .section-label { color: #c9a86c; letter-spacing: .18em; }
    #tarifs h2 { color: #fff; }
    #tarifs .sep { background: #c9a86c; opacity: .4; }

    .devis-band {
      display: flex;
      align-items: flex-start;
      gap: 3rem;
      margin-top: 2.8rem;
      background: #1c2730;
      border: 1px solid rgba(201,168,108,.2);
      border-radius: 16px;
      padding: 2.2rem 2.8rem;
      flex-wrap: wrap;
    }

    .devis-band-text {
      flex: 1;
      min-width: 200px;
    }

    .devis-band-text h3 {
      font-size: 1.15rem;
      font-style: italic;
      color: #c9a86c;
      margin-bottom: .4rem;
    }

    .devis-band-text p {
      font-family: sans-serif;
      font-size: .88rem;
      color: rgba(255,255,255,.55);
      line-height: 1.6;
    }

    .devis-tags-group {
      flex: 2;
      min-width: 260px;
      display: flex;
      flex-direction: column;
      gap: 1.1rem;
    }
    .devis-tags-row {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: .6rem;
    }
    .devis-tags-row + .devis-tags-row {
      padding-top: 1rem;
      border-top: 1px solid rgba(255,255,255,.08);
    }
    .devis-tags {
      display: flex;
      flex-wrap: wrap;
      gap: .5rem;
      width: 100%;
    }

    .devis-tag {
      font-family: sans-serif;
      font-size: .78rem;
      color: rgba(255,255,255,.75);
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 50px;
      padding: .3rem .9rem;
      white-space: nowrap;
    }

    .devis-band-cta {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .6rem;
      flex: 0 0 auto;
      margin-top: 2.4rem;
      width: 100%;
      max-width: 260px;
    }

    .btn-gold {
      display: inline-block;
      background: #c9a86c;
      color: #12191f;
      font-family: sans-serif;
      font-size: .9rem;
      font-weight: 600;
      letter-spacing: .06em;
      padding: .85rem 2.2rem;
      border-radius: 50px;
      text-decoration: none;
      transition: background .2s, transform .15s;
      white-space: nowrap;
    }
    .btn-gold:hover { background: #dfc080; transform: translateY(-1px); }

    .devis-sous-24 {
      font-family: sans-serif;
      font-size: .75rem;
      color: rgba(255,255,255,.35);
    }

    .devis-note {
      margin-top: 1.6rem;
      font-family: sans-serif;
      font-size: .78rem;
      color: rgba(255,255,255,.25);
      text-align: center;
    }

    @media (max-width: 700px) {
      .devis-band { flex-direction: column; align-items: stretch; gap: 1.6rem; padding: 1.6rem; }
      .devis-band-cta { align-items: center; max-width: none; }
    }

    /* ── INFOS PRATIQUES ── */
    #infos { background: var(--beige); }

    .infos-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
      gap: 1.5rem;
      margin-top: 2.5rem;
    }

    .info-card {
      background: #fff;
      border-radius: 14px;
      padding: 1.8rem 1.5rem;
      box-shadow: var(--shadow);
      border-top: 2px solid rgba(201,168,108,.25);
      transition: border-color .22s, box-shadow .22s;
    }
    .info-card:hover {
      border-color: #c9a86c;
      box-shadow: 0 6px 28px rgba(181,113,74,.13);
    }

    /* ── MÉTÉO 15 JOURS ── */
    #meteo { background: var(--beige); padding-top: 0; scroll-margin-top: 100px; }

    .meteo-venue-tabs {
      display: flex;
      justify-content: center;
      gap: .6rem;
      margin-top: 2.5rem;
    }
    .meteo-venue-tab {
      font-family: sans-serif;
      font-size: .86rem;
      font-weight: 700;
      letter-spacing: .03em;
      color: var(--text-light);
      background: #fff;
      border: 1.5px solid rgba(181,113,74,.22);
      border-radius: 2rem;
      padding: .55rem 1.4rem;
      cursor: pointer;
      transition: background .2s, color .2s, border-color .2s;
    }
    .meteo-venue-tab:hover { border-color: var(--terra); color: var(--terra); }
    .meteo-venue-tab.is-active[data-venue="Montmorency"] {
      background: #4a8a4f;
      border-color: #4a8a4f;
      color: #fff;
    }
    .meteo-venue-tab.is-active[data-venue="Sarcelles"] {
      background: #2d8acf;
      border-color: #2d8acf;
      color: #fff;
    }

    .meteo-panel {
      background: #FFFFFF;
      border-radius: 16px;
      box-shadow: var(--shadow);
      padding: 1.8rem 0 1.6rem;
      margin-top: 1.4rem;
      overflow: hidden;
      border: 1px solid rgba(181,113,74,.16);
    }
    @media (min-width: 701px) {
      .meteo-panel {
        max-width: 1300px;
        margin-left: auto;
        margin-right: auto;
      }
    }

    .meteo-panel-head {
      padding: 0 1.8rem 1.2rem;
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      flex-wrap: wrap;
      gap: .4rem;
      border-bottom: 1px solid rgba(181,113,74,.14);
      margin-bottom: 1rem;
    }
    .meteo-panel-head h3 {
      color: var(--terra);
      font-size: 1.05rem;
      font-style: normal;
      font-weight: 400;
      margin: 0;
      font-family: Georgia, 'Times New Roman', serif;
    }
    .meteo-source {
      font-family: sans-serif;
      font-size: .68rem;
      color: var(--text-light);
      letter-spacing: .06em;
    }
    .meteo-hint {
      font-family: sans-serif;
      font-size: .72rem;
      font-style: italic;
      color: var(--text-light);
      opacity: .8;
      animation: meteo-hint-blink 2.2s ease-in-out infinite;
    }
    @keyframes meteo-hint-blink {
      0%, 100% { opacity: .8; }
      50% { opacity: .25; }
    }
    @media (prefers-reduced-motion: reduce) {
      .meteo-hint { animation: none; }
    }

    .meteo-scroll {
      display: flex;
      gap: 0;
      overflow-x: auto;
      padding: 0 1.8rem;
      scrollbar-width: thin;
    }
    .meteo-day {
      flex: 0 0 auto;
      width: 82px;
      text-align: center;
      padding: .6rem .3rem;
      border-right: 1px solid rgba(181,113,74,.1);
      font-family: sans-serif;
      position: relative;
    }
    .meteo-day:last-child { border-right: none; }
    .meteo-day .m-dow {
      font-size: .66rem; letter-spacing: .08em; text-transform: uppercase;
      color: var(--text-light); opacity: .65;
    }
    .meteo-day .m-dnum {
      font-size: .78rem; color: var(--text); opacity: .85; margin-top: .1rem;
      font-family: inherit;
    }
    .meteo-day .m-ic { font-size: 1.4rem; margin: .5rem 0 .3rem; }
    .meteo-day .m-wx-label { font-size: .58rem; color: var(--text-light); opacity: .7; text-transform: uppercase; letter-spacing: .01em; margin-bottom: .3rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
    .meteo-day .m-tmax { color: var(--text); font-weight: 700; font-family: inherit; font-size: .8rem; }
    .meteo-day .m-tmax-hot { color: #c0392b; }
    .meteo-day .m-tmin-cold { color: #3f7fa8; opacity: 1; }
    .meteo-day .m-tmin { color: var(--text-light); opacity: .55; font-family: inherit; font-size: .68rem; margin-left: .2rem; }
    .meteo-day .m-pop { font-size: .65rem; color: #3f7fa8; margin-top: .3rem; }
    .meteo-day.today { background: rgba(181,113,74,.07); border-radius: 6px; }
    .meteo-day.today .m-dow { color: var(--terra); opacity: 1; }

    /* liseré discret indiquant la tendance météo du jour */
    .meteo-day::before {
      content: ''; position: absolute; top: 0; left: 10px; right: 10px; height: 2px; border-radius: 2px;
      background: var(--tint, transparent);
    }
    .meteo-day.wx-sunny  { --tint: linear-gradient(90deg, #dba53e, #c9a86c); }
    .meteo-day.wx-cloudy { --tint: #b9aca0; }
    .meteo-day.wx-rain   { --tint: #5f9bc4; }
    .meteo-day.wx-hot    { --tint: #c9683a; }
    .meteo-day.today::before { background: var(--terra); }

    .meteo-day-btn {
      background: none; border: none; padding: 0; margin: 0; font: inherit; color: inherit;
      cursor: pointer; width: 100%; -webkit-tap-highlight-color: transparent;
      transition: background .18s;
      border-radius: 6px;
    }
    .meteo-day-btn:hover, .meteo-day-btn:focus-visible {
      background: rgba(181,113,74,.06);
      outline: none;
    }

    /* ── MÉTÉO — MODAL DÉTAIL JOUR ── */
    .meteo-modal {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 300;
      background: rgba(34,21,16,.45);
      align-items: center;
      justify-content: center;
      padding: 1.5rem;
    }
    .meteo-modal.open { display: flex; }
    .meteo-modal-card {
      background: #FFFFFF;
      border-radius: 16px;
      width: 100%;
      max-width: 420px;
      max-height: 90vh;
      overflow-y: auto;
      box-shadow: 0 24px 70px rgba(34,21,16,.3);
      position: relative;
    }
    .meteo-modal-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.4rem 1.6rem 1rem;
      border-bottom: 1px solid rgba(181,113,74,.14);
    }
    .meteo-modal-head-nav { display: flex; align-items: center; gap: .5rem; }
    .meteo-modal-date {
      font-family: Georgia, serif;
      color: var(--terra);
      font-size: 1.15rem;
    }
    .meteo-modal-date small {
      display: block;
      font-family: sans-serif;
      font-size: .68rem;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--text-light);
      margin-bottom: .15rem;
    }
    .meteo-modal-nav-btn, .meteo-modal-close {
      background: rgba(181,113,74,.08);
      border: 1px solid rgba(181,113,74,.25);
      color: var(--terra);
      width: 34px; height: 34px;
      border-radius: 50%;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.05rem;
      transition: background .2s, color .2s;
      flex-shrink: 0;
    }
    .meteo-modal-nav-btn:hover, .meteo-modal-close:hover { background: var(--terra); color: #fff; }
    .meteo-modal-nav-btn:disabled { opacity: .3; cursor: default; }
    .meteo-modal-nav-btn:disabled:hover { background: rgba(181,113,74,.08); color: var(--terra); }

    .meteo-modal-hero {
      text-align: center;
      padding: 1.4rem 1.6rem .6rem;
      font-family: sans-serif;
    }
    .meteo-modal-hero .m-ic-big { font-size: 3.2rem; line-height: 1; }
    .meteo-modal-hero .m-temps-big {
      font-family: Georgia, serif;
      margin-top: .5rem;
    }
    .meteo-modal-hero .m-tmax-big { color: var(--text); font-weight: 700; font-size: 2rem; font-family: sans-serif; }
    .meteo-modal-hero .m-tmin-big { color: var(--text-light); opacity: .6; font-size: 1.3rem; margin-left: .4rem; font-family: sans-serif; }
    .meteo-modal-hero .m-tmax-big.m-tmax-hot { color: #c0392b; }
    .meteo-modal-hero .m-tmin-big.m-tmin-cold { color: #3f7fa8; opacity: 1; }
    .meteo-modal-hero .m-desc {
      color: var(--text-light);
      font-size: .82rem;
      margin-top: .3rem;
    }

    .meteo-modal-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: .7rem;
      padding: 1.2rem 1.6rem 1.6rem;
      font-family: sans-serif;
    }
    .meteo-modal-stat {
      background: rgba(181,113,74,.05);
      border: 1px solid rgba(181,113,74,.12);
      border-radius: 10px;
      padding: .75rem .9rem;
    }
    .meteo-modal-stat .m-stat-label {
      font-size: .64rem;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--text-light);
      opacity: .8;
      display: flex; align-items: center; gap: .35rem;
    }
    .meteo-modal-stat .m-stat-value {
      font-family: sans-serif;
      color: var(--text);
      font-size: 1.15rem;
      margin-top: .3rem;
    }
    .meteo-modal-stat .m-stat-value.m-stat-rain { color: #3f7fa8; }
    .meteo-modal-stat .m-stat-value small {
      font-family: sans-serif;
      font-size: .68rem;
      color: var(--text-light);
      opacity: .8;
      margin-left: .2rem;
    }

    @media (max-width: 480px) {
      .meteo-modal-grid { grid-template-columns: 1fr 1fr; padding: 1rem 1.2rem 1.4rem; }
      .meteo-modal-head { padding: 1.2rem 1.2rem .9rem; }
      .meteo-modal-hero { padding: 1.2rem 1.2rem .5rem; }
    }

    .meteo-note {
      font-family: sans-serif;
      font-size: .72rem;
      color: var(--text-light);
      text-align: center;
      margin-top: 1rem;
    }

    @media (max-width: 700px) {
      .meteo-scroll { padding: 0 1.2rem; }
      .meteo-panel-head { padding: 0 1.2rem 1rem; }
    }

    .info-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 3rem;
      height: 3rem;
      border-radius: 12px;
      background: linear-gradient(135deg, #fef6ee 0%, #f0dece 100%);
      border: 1px solid rgba(181,113,74,.22);
      box-shadow: 0 2px 8px rgba(181,113,74,.1);
      margin-bottom: 1.1rem;
      flex-shrink: 0;
      color: var(--terra);
    }
    .info-icon svg {
      width: 1.25rem;
      height: 1.25rem;
    }

    .info-title {
      font-family: sans-serif;
      font-weight: 700;
      font-size: .9rem;
      color: var(--green);
      margin-bottom: .5rem;
    }

    .info-body {
      font-family: sans-serif;
      font-size: .84rem;
      color: var(--text-light);
      line-height: 1.7;
    }

    /* ── RÉSERVATION ── */
    #reservation {
      background: #12191f;
      text-align: center;
      position: relative;
      overflow: hidden;
      padding: 3rem 1.5rem 1.8rem;
    }

    .resa-foliage {
      position: absolute;
      bottom: 0;
      pointer-events: none;
      width: 220px;
      height: 390px;
      filter: sepia(1) saturate(8) brightness(1.3) hue-rotate(-10deg);
    }
    .resa-foliage--left  { left: 0; }
    .resa-foliage--right { right: 0; transform: scaleX(-1); }

    #reservation h2 { color: #fff; }
    #reservation .section-label { color: #c9a86c; letter-spacing: .18em; }

    #reservation p {
      font-size: 1.05rem;
      color: rgba(255,255,255,.82);
      max-width: 520px;
      margin: 0 auto 2.5rem;
      line-height: 1.8;
    }

    .resa-btns {
      display: flex;
      flex-wrap: wrap;
      gap: .8rem;
      justify-content: center;
      margin-top: .5rem;
    }

    .btn-white {
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      background: #c9a86c;
      color: #12191f;
      text-decoration: none;
      padding: 1rem 2.6rem;
      border-radius: 3rem;
      font-family: sans-serif;
      font-size: .95rem;
      font-weight: 700;
      letter-spacing: .05em;
      margin: 0 .5rem .8rem;
      transition: background .2s, transform .2s, box-shadow .2s;
    }
    .btn-white:hover {
      background: #dfc080;
      transform: translateY(-2px);
      box-shadow: 0 6px 24px rgba(201,168,108,.35);
    }

    .btn-outline-white {
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      border: 2px solid rgba(201,168,108,.55);
      color: #c9a86c;
      text-decoration: none;
      padding: .95rem 2.4rem;
      border-radius: 3rem;
      font-family: sans-serif;
      font-size: .95rem;
      letter-spacing: .05em;
      margin: 0 .5rem .8rem;
      transition: background .2s, border-color .2s;
    }
    .btn-outline-white:hover { background: #c9a86c; border-color: #c9a86c; color: #12191f; }
    button.btn-outline-white { background: none; cursor: pointer; font-weight: inherit; }
    .btn-whatsapp { border-color: rgba(37,211,102,.55); color: #4de089; }
    .btn-whatsapp:hover { background: #25d366; border-color: #25d366; color: #fff; }

    /* ── AVIS ── */
    #avis { background: var(--green-pale); }

    .avis-summary {
      display: flex;
      align-items: center;
      gap: 1.2rem;
      margin-bottom: 1.8rem;
    }

    .avis-score-box {
      display: flex;
      align-items: center;
      gap: 1rem;
      background: #fff;
      border-radius: 14px;
      padding: .9rem 1.6rem;
      box-shadow: 0 2px 10px rgba(0,0,0,.07);
      flex-shrink: 0;
    }

    .avis-score-num {
      font-size: 2.4rem;
      font-style: italic;
      color: var(--green);
      line-height: 1;
    }

    .avis-score-right { display: flex; flex-direction: column; gap: .15rem; }

    .avis-stars-main {
      color: #f59e0b;
      font-size: 1rem;
      letter-spacing: 2px;
    }

    .avis-score-label {
      font-family: sans-serif;
      font-size: .75rem;
      color: var(--text-light);
    }

    .avis-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: .9rem;
    }

    .avis-card {
      background: #fff;
      border: 1px solid rgba(181,113,74,.1);
      border-radius: 12px;
      padding: 1rem 1.1rem;
      box-shadow: 0 1px 8px rgba(0,0,0,.05);
      transition: transform .2s, box-shadow .2s;
    }

    .avis-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 16px rgba(181,113,74,.12);
    }

    .avis-card.hidden { display: none; }

    .avis-card-header {
      display: flex;
      align-items: center;
      gap: .7rem;
      margin-bottom: .65rem;
    }

    .avis-avatar {
      width: 2rem;
      height: 2rem;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-family: sans-serif;
      font-weight: 700;
      font-size: .82rem;
      flex-shrink: 0;
    }

    .avis-info { flex: 1; min-width: 0; }

    .avis-name {
      display: block;
      font-family: sans-serif;
      font-weight: 700;
      font-size: .82rem;
      color: var(--text);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .avis-date {
      display: block;
      font-family: sans-serif;
      font-size: .7rem;
      color: var(--text-light);
    }

    .avis-stars {
      color: #f59e0b;
      font-size: .8rem;
      font-family: sans-serif;
      font-weight: 700;
      flex-shrink: 0;
      white-space: nowrap;
    }

    .avis-text {
      font-size: .82rem;
      line-height: 1.65;
      color: var(--text-light);
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .avis-btn-wrap { text-align: center; margin-top: 1.2rem; }

    .btn-voir-plus {
      background: none;
      border: 2px solid var(--green);
      color: var(--green);
      border-radius: 2rem;
      padding: .7rem 2rem;
      font-family: sans-serif;
      font-size: .88rem;
      font-weight: 600;
      letter-spacing: .05em;
      cursor: pointer;
      transition: background .2s, color .2s;
    }
    .btn-voir-plus:hover { background: var(--green); color: #fff; }

    @media (max-width: 900px) {
      .avis-grid { grid-template-columns: repeat(2, 1fr); }
    }

    /* ── FOOTER ── */
    footer {
      background: #12191f;
      color: rgba(255,255,255,.45);
      text-align: center;
      padding: 2rem 1.5rem;
      font-family: sans-serif;
      font-size: .8rem;
      letter-spacing: .04em;
    }

    footer a { color: rgba(255,255,255,.6); text-decoration: none; }
    footer a:hover { color: #c9a86c; }

    @media (max-width: 1300px) {
      .nav-contact-btns { display: none; }
    }

    @media (max-width: 1024px) {
      .menu-toggle { display: flex; margin-right: .7rem; }
      .nav-right { gap: .4rem; margin-left: auto; }

      #lang-bar nav {
        display: none;
        flex-direction: column;
        position: absolute;
        top: 68px; left: 0; right: 0;
        background: rgba(18,25,31,.98);
        backdrop-filter: blur(14px);
        border-bottom: 1px solid rgba(201,168,108,.18);
        padding: .3rem 1rem .5rem;
        box-shadow: 0 8px 24px rgba(0,0,0,.3);
        transform: none;
      }
      #lang-bar nav.open { display: flex; }
      #lang-bar nav a {
        padding: .6rem .2rem;
        font-size: .8rem;
        letter-spacing: .08em;
        border-bottom: 1px solid rgba(245,200,66,.1);
      }
      #lang-bar nav a::after { display: none; }
      #lang-bar nav a:last-child { border-bottom: none; }
      .nav-mobile-contact {
        display: flex;
        flex-direction: column;
        gap: .4rem;
        padding: .6rem .2rem .3rem;
        border-top: 1px solid rgba(245,200,66,.1);
        margin-top: .25rem;
      }
      #lang-bar .nav-mobile-contact .nav-contact-btn {
        justify-content: center;
        padding: .7rem 1rem;
        font-size: .88rem;
        font-weight: 600;
        border-radius: 2rem;
        border: 2px solid rgba(245,200,66,.5);
        background: rgba(245,200,66,.08);
        color: #f5c842;
      }
      #lang-bar .nav-mobile-contact .nav-whatsapp-btn {
        border: 2px solid #25d366;
        background: rgba(37,211,102,.07);
        color: #4de089;
      }
    }

    /* ── RESPONSIVE 768px ── */
    @media (max-width: 768px) {
      html { scroll-padding-top: 56px; }

      /* SECTIONS */
      section { padding: 2.4rem 1rem; }

      /* NAV */
      #lang-bar {
        flex-wrap: nowrap;
        padding: 0 1rem;
        height: 56px;
        overflow: visible;
      }
      .nav-logo-sub { display: none; }
      .nav-logo-main { font-size: 1rem; }
      .lang-btn { padding: .75rem .3rem; min-height: 44px; }
      #lang-bar nav { top: 56px; }

      /* HERO */
      .hero { padding: 4.5rem 1rem 2.5rem; min-height: 80vh; }
      .hero-desc { font-size: .9rem; line-height: 1.65; margin-bottom: 1.6rem; }
      .sep { margin-bottom: 1.2rem; }
      .badge-hero { margin-bottom: 1rem; }
      .hero-weather-teaser { padding: .55rem .6rem .55rem .75rem; margin-bottom: 1rem; }
      h1 { margin-bottom: .5rem; }
      .hero-sub { margin-bottom: 1.4rem; }

      /* ABOUT */
      .about-grid { grid-template-columns: 1fr; gap: 1.5rem; }
      .about-text p { font-size: .95rem; line-height: 1.7; margin-bottom: .8rem; }
      .about-stats { grid-template-columns: 1fr 1fr; gap: .8rem; }
      .stat-card { padding: .75rem .9rem; }
      .stat-num-wrap { width: 2.8rem; height: 2.8rem; min-width: 2.8rem; }
      .stat-num { font-size: 1.1rem; }
      .stat-label { font-size: .78rem; }

      /* ÉQUIPEMENTS */
      .equip-grid { grid-template-columns: 1fr 1fr; gap: .5rem; }
      .equip-card { padding: .55rem .75rem; border-radius: 10px; gap: .6rem; }
      .equip-icon-wrap { width: 2rem; height: 2rem; flex-shrink: 0; }
      .equip-icon { font-size: .95rem; }
      .equip-name { font-size: .76rem; }
      .equip-card--full { gap: .5rem .8rem; }
      .equip-dep-tag { font-size: .75rem; padding: .2rem .6rem .2rem .3rem; }
      .equip-dep-tag .dep-icon { width: 1.4rem; height: 1.4rem; font-size: .78rem; }

      /* TRAITEUR */
      .traiteur-inner { grid-template-columns: 1fr; gap: 1.5rem; }
      .traiteur-img-wrap { order: -1; aspect-ratio: 16/9; }
      .traiteur-text .lead { font-size: .95rem; line-height: 1.7; margin-bottom: 1rem; }
      .traiteur-formules { gap: .5rem; margin-bottom: 1.4rem; }

      /* TARIFS */
      .devis-card { padding: 2rem 1.4rem; }
      #tarifs { padding: 2.4rem 1rem; }
      .devis-band-text, .devis-tags { min-width: 0; }

      /* INFOS */
      .infos-grid { grid-template-columns: 1fr 1fr; gap: .8rem; }
      .info-card {
        padding: 1rem .9rem;
        display: grid;
        grid-template-columns: 2.6rem 1fr;
        grid-template-rows: auto auto;
        column-gap: .7rem;
        row-gap: .2rem;
      }
      .info-icon {
        grid-column: 1; grid-row: 1;
        width: 2.6rem; height: 2.6rem;
        border-radius: 9px;
        margin-bottom: 0;
        align-self: center;
      }
      .info-title {
        grid-column: 2; grid-row: 1;
        align-self: center; margin-bottom: 0;
      }
      .info-body {
        grid-column: 1 / -1; grid-row: 2;
        line-height: 1.6; font-size: .82rem;
      }

      /* RESERVATION */
      #reservation { padding: 2.5rem 1rem; }
      #reservation p { font-size: .92rem; line-height: 1.65; margin-bottom: 1.6rem; }
      #reservation .btn-white,
      #reservation .btn-outline-white {
        display: flex; width: 100%; margin: .3rem 0;
        justify-content: center;
      }
      .resa-foliage { width: 120px; height: 220px; opacity: .6; }

      /* AVIS */
      .avis-grid { grid-template-columns: repeat(2, 1fr); }
      .avis-summary { flex-direction: column; align-items: flex-start; gap: .8rem; margin-bottom: 1.4rem; }
      .section-sep { margin: 0 0 1.4rem; }
    }

    /* ── RESPONSIVE 480px ── */
    @media (max-width: 480px) {
      section { padding: 2rem .9rem; }
      #tarifs { padding: 2rem .9rem; }

      /* HERO */
      .hero { padding: 4rem .9rem 2rem; min-height: 72vh; }
      .hero-desc { font-size: .85rem; line-height: 1.6; margin-bottom: 1.4rem; }
      .badge-hero { font-size: .62rem; padding: .28rem .85rem; margin-bottom: .8rem; }
      .sep { width: 36px; margin-bottom: 1rem; }

      /* ABOUT STATS */
      .about-stats { grid-template-columns: 1fr 1fr; gap: .5rem; }
      .stat-card { padding: .65rem .7rem; gap: .55rem; }
      .stat-num-wrap { min-width: 2.3rem; height: 2.3rem; border-radius: 8px; padding: 0 .25rem; flex-shrink: 0; }
      .stat-num { font-size: .95rem; white-space: nowrap; }
      .stat-label { font-size: .7rem; line-height: 1.2; }

      /* POUR QUI */
      .pour-qui-grid { gap: .7rem; }
      .pq-card {
        padding: .85rem .9rem;
        display: grid;
        grid-template-columns: 2.4rem 1fr;
        grid-template-rows: auto auto auto;
        column-gap: .7rem;
        row-gap: .35rem;
      }
      .pq-icon-wrap {
        grid-column: 1; grid-row: 1;
        width: 2.4rem; height: 2.4rem; font-size: 1.2rem; border-radius: 10px;
        align-self: center;
      }
      .pq-title {
        grid-column: 2; grid-row: 1;
        font-size: .98rem;
        align-self: center;
      }
      .pq-desc {
        grid-column: 1 / -1; grid-row: 2;
        font-size: .82rem; line-height: 1.5;
      }
      .pq-cta {
        grid-column: 1 / -1; grid-row: 3;
        margin-top: .1rem;
      }

      /* ÉQUIPEMENTS */
      .equip-grid { grid-template-columns: 1fr 1fr; }

      /* INFOS */
      .infos-grid { grid-template-columns: 1fr; }

      /* AVIS */
      .avis-grid { grid-template-columns: 1fr; }

      /* TRAITEUR FORMULES */
      .traiteur-formules li { font-size: .83rem; }

      /* RESERVATION BUTTONS */
      .resa-btns { flex-direction: column; align-items: stretch; gap: .5rem; }
      .resa-btns .btn-white,
      .resa-btns .btn-outline-white {
        font-size: .88rem; padding: .85rem 1.2rem;
        justify-content: center; width: 100%;
        margin: 0;
      }
      .resa-foliage { display: none; }

      /* FAB */
      .chat-fab { width: 50px; height: 50px; bottom: 1rem; right: 1rem; }
    }

    /* ── CHAT POPUP ── */
    .chat-overlay {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 200;
      background: rgba(0,0,0,.45);
      backdrop-filter: blur(4px);
      align-items: center;
      justify-content: center;
      padding: 1.5rem;
    }
    .chat-overlay.open { display: flex; }

    .chat-modal {
      background: #fff;
      border-radius: 24px;
      width: 100%;
      max-width: 630px;
      max-height: 90vh;
      display: flex;
      flex-direction: column;
      border: 2px solid #c9a86c;
      box-shadow: 0 24px 70px rgba(0,0,0,.3);
      overflow: hidden;
      animation: chatIn .3s cubic-bezier(.34,1.4,.64,1);
    }
    @keyframes chatIn {
      from { transform: scale(.9) translateY(20px); opacity: 0; }
      to   { transform: scale(1) translateY(0); opacity: 1; }
    }

    @media (max-width: 680px) {
      .chat-overlay { padding: 0; align-items: flex-end; }
      .chat-modal {
        max-width: 100%;
        max-height: 92dvh;
        border-radius: 20px 20px 0 0;
        animation: chatInMobile .3s cubic-bezier(.34,1.4,.64,1);
      }
      @keyframes chatInMobile {
        from { transform: translateY(100%); opacity: 0; }
        to   { transform: translateY(0);    opacity: 1; }
      }
      .chat-messages { min-height: 120px; }

      .chat-choices  { max-height: 42dvh; overflow-y: auto; }
    }

    .chat-header {
      background: #12191f;
      border-bottom: 1px solid rgba(201,168,108,.2);
      padding: 1.4rem 1.8rem;
      display: flex;
      align-items: center;
      gap: 1.1rem;
      flex-shrink: 0;
    }
    .chat-avatar-icon {
      width: 52px; height: 52px;
      background: rgba(201,168,108,.12);
      border: 1px solid rgba(201,168,108,.3);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.6rem;
      flex-shrink: 0;
    }
    .chat-header-name {
      color: #c9a86c;
      font-family: sans-serif;
      font-weight: 700;
      font-size: 1.05rem;
    }
    .chat-header-sub {
      color: rgba(255,255,255,.4);
      font-family: sans-serif;
      font-size: .82rem;
      margin-top: .15rem;
    }
    .chat-visitors {
      display: flex;
      align-items: center;
      gap: .2rem;
      margin-top: .3rem;
      font-family: sans-serif;
      font-size: .68rem;
      color: rgba(255,255,255,.45);
    }
    .chat-visitors-dot {
      width: 6px; height: 6px;
      border-radius: 50%;
      background: #4de089;
      flex-shrink: 0;
      animation: visitorsPulse 2s infinite;
    }
    .chat-header-btns {
      display: flex;
      align-items: center;
      gap: .45rem;
      margin-left: auto;
      flex-shrink: 0;
    }
    .chat-header-btn {
      display: inline-flex;
      align-items: center;
      gap: .35rem;
      padding: .38rem .85rem;
      border-radius: 2rem;
      font-family: sans-serif;
      font-size: .78rem;
      font-weight: 600;
      text-decoration: none;
      white-space: nowrap;
      transition: opacity .18s;
      flex-shrink: 0;
    }
    .chat-header-btn:hover { opacity: .85; }
    .chat-header-btn.tel  { background: #c9a86c; color: #12191f; }
    .chat-header-btn.whatsapp { background: #25d366; color: #fff; }
    .chat-close {
      background: rgba(255,255,255,.07);
      border: none;
      color: rgba(255,255,255,.5);
      width: 32px; height: 32px;
      border-radius: 50%;
      font-size: .9rem;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: background .2s, color .2s;
      margin-left: .45rem;
    }
    .chat-close:hover { background: rgba(255,255,255,.15); color: #fff; }
    @media (max-width: 480px) {
      .chat-header { padding: 1rem 1.2rem; gap: .7rem; }
      .chat-avatar-icon { width: 38px; height: 38px; font-size: 1.2rem; }
      .chat-header-btn .btn-label { display: none; }
      .chat-header-btn { padding: .4rem .55rem; font-size: .9rem; }
    }

    .chat-messages {
      flex: 1;
      overflow-y: auto;
      padding: 1.6rem;
      display: flex;
      flex-direction: column;
      gap: .9rem;
      background: #faf6f0;
    }
    .chat-bubble {
      max-width: 78%;
      padding: .85rem 1.2rem;
      border-radius: 18px;
      font-family: sans-serif;
      font-size: 1rem;
      line-height: 1.6;
      white-space: pre-wrap;
    }
    .chat-weather-card {
      align-self: flex-start;
      width: auto;
      max-width: 92%;
      box-sizing: border-box;
      background: #12191f;
      border: 1px solid rgba(245,200,66,.25);
      border-radius: 12px;
      border-bottom-left-radius: 3px;
      padding: .6rem .65rem .65rem;
      box-shadow: 0 2px 10px rgba(0,0,0,.18);
      font-family: sans-serif;
    }
    .cw-title {
      font-size: .56rem;
      letter-spacing: .06em;
      text-transform: uppercase;
      color: #f5c842;
      font-weight: 700;
      margin-bottom: .4rem;
    }
    .cw-title-single {
      color: #7fc4e8;
    }
    .cw-days {
      display: flex;
      gap: .35rem;
      overflow-x: auto;
    }
    .cw-days:not(.cw-days-single) .cw-day {
      flex: 0 0 auto;
      width: 138px;
    }
    .cw-days:not(.cw-days-single) .cw-day-label {
      white-space: normal;
    }
    .cw-day {
      flex: 0 0 auto;
      min-width: 84px;
      text-align: center;
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.08);
      border-radius: 8px;
      padding: .35rem .4rem .3rem;
    }
    .cw-day-label {
      font-size: .56rem;
      color: rgba(255,255,255,.55);
      text-transform: capitalize;
      white-space: nowrap;
      margin-bottom: .2rem;
    }
    .cw-icon { font-size: 1.25rem; line-height: 1; margin-bottom: .2rem; }
    .cw-desc {
      font-size: .58rem;
      color: rgba(255,255,255,.5);
      margin-bottom: .2rem;
      line-height: 1.2;
    }
    .cw-temps { line-height: 1; }
    .cw-tmax { font-size: .92rem; font-weight: 700; color: #fff; }
    .cw-tmin { font-size: .64rem; color: rgba(255,255,255,.4); margin-left: .2rem; }
    .cw-tmax.cw-tmax-hot { color: #ff6b5b; }
    .cw-tmin.cw-tmin-cold { color: #7fc4e8; opacity: 1; }

    .cw-days-single {
      width: 100%;
    }
    .cw-days-single .cw-day {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 1.2rem;
      text-align: left;
      padding: .6rem .9rem;
      width: auto;
      max-width: 280px;
      min-width: 220px;
    }
    .cw-days-single .cw-icon { font-size: 2rem; margin-bottom: 0; flex-shrink: 0; }
    .cw-days-single .cw-day-info { flex: 1 1 auto; min-width: 0; }
    .cw-days-single .cw-day-label { font-size: .68rem; margin-bottom: .2rem; }
    .cw-days-single .cw-desc { font-size: .65rem; margin-bottom: 0; }
    .cw-days-single .cw-day-stats { flex-shrink: 0; text-align: right; }
    .cw-days-single .cw-tmax { font-size: 1.2rem; }
    .cw-days-single .cw-tmin { font-size: .8rem; }
    .cw-days-single .cw-pop { margin-top: .25rem; font-size: .65rem; }

    .cw-pop {
      margin-top: .25rem;
      font-size: .58rem;
      color: #7fc4e8;
      font-weight: 600;
    }
    .cw-alerts {
      margin-top: .45rem;
      display: flex;
      flex-direction: column;
      gap: .3rem;
    }
    .cw-alert {
      font-size: .68rem;
      line-height: 1.35;
      color: #ffd9a0;
      background: rgba(245,200,66,.1);
      border: 1px solid rgba(245,200,66,.25);
      border-radius: 6px;
      padding: .4rem .5rem;
    }
    .cw-footer {
      margin-top: .5rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: .6rem;
      flex-wrap: wrap;
    }
    .cw-note {
      margin-top: 0;
      font-size: .62rem;
      font-style: italic;
      color: rgba(255,255,255,.35);
    }
    .cw-more-link {
      display: inline-flex;
      align-items: center;
      gap: .25rem;
      margin-top: 0;
      font-size: .62rem;
      font-weight: 600;
      color: #f5c842;
      text-decoration: none;
      white-space: nowrap;
    }
    .cw-more-link:hover {
      text-decoration: underline;
    }

    .chat-bubble.bot {
      background: #fff;
      color: #2a2a2a;
      align-self: flex-start;
      border-bottom-left-radius: 4px;
      box-shadow: 0 1px 6px rgba(0,0,0,.08);
      border: 1px solid rgba(201,168,108,.2);
    }
    .chat-bubble.user {
      background: #c9a86c;
      color: #12191f;
      align-self: flex-end;
      border-bottom-right-radius: 4px;
      font-weight: 500;
    }
    .chat-typing {
      display: flex;
      gap: 4px;
      align-items: center;
      padding: .65rem .95rem;
      background: #fff;
      border: 1px solid rgba(201,168,108,.2);
      border-radius: 16px;
      border-bottom-left-radius: 4px;
      align-self: flex-start;
      box-shadow: 0 1px 6px rgba(0,0,0,.3);
    }
    .chat-typing span {
      width: 7px; height: 7px;
      background: #c9a86c;
      border-radius: 50%;
      animation: typingDot .9s infinite;
    }
    .chat-typing span:nth-child(2) { animation-delay: .2s; }
    .chat-typing span:nth-child(3) { animation-delay: .4s; }
    @keyframes typingDot {
      0%,60%,100% { transform: translateY(0); }
      30% { transform: translateY(-5px); }
    }
    .chat-summary-card {
      background: #fff;
      border: 1px solid rgba(201,168,108,.3);
      border-radius: 12px;
      padding: .9rem 1rem;
      font-family: sans-serif;
      font-size: .82rem;
      color: #444;
      line-height: 1.9;
      align-self: stretch;
      white-space: pre-line;
    }

    .chat-input-area {
      flex-shrink: 0;
      background: #f0ebe1;
      border-top: 1px solid rgba(201,168,108,.3);
    }
    .chat-choices {
      display: flex;
      flex-direction: column;
      gap: .45rem;
      padding: .9rem 1.4rem 1.1rem;
    }
    .chat-choice-btn {
      background: #fff;
      border: 1.5px solid rgba(201,168,108,.4);
      color: #2a2a2a;
      border-radius: 1rem;
      padding: .65rem 1.2rem;
      font-family: sans-serif;
      font-size: .9rem;
      font-weight: 500;
      cursor: pointer;
      text-align: left;
      width: 100%;
      transition: background .18s, border-color .18s, color .18s;
    }
    .chat-choice-btn:hover { background: #faf6f0; border-color: #c9a86c; color: #12191f; }

    .chat-venue-choices {
      display: flex;
      flex-direction: column;
      gap: .65rem;
      padding: .9rem 1.4rem 1.1rem;
    }
    .chat-venue-btn {
      display: flex;
      align-items: center;
      gap: .9rem;
      background: #fff;
      border: 1.5px solid rgba(201,168,108,.4);
      border-radius: 1rem;
      padding: .55rem .9rem .55rem .55rem;
      cursor: pointer;
      text-align: left;
      width: 100%;
      transition: background .18s, border-color .18s, transform .18s;
    }
    .chat-venue-btn:hover {
      background: #faf6f0;
      border-color: #c9a86c;
      transform: translateY(-1px);
    }
    .chat-venue-btn-montmorency {
      border-width: 2px;
      border-color: rgba(74,138,79,.45);
    }
    .chat-venue-btn-montmorency:hover {
      border-color: #4a8a4f;
    }
    .chat-venue-btn-sarcelles {
      border-width: 2px;
      border-color: rgba(45,138,207,.45);
    }
    .chat-venue-btn-sarcelles:hover {
      border-color: #2d8acf;
    }
    .chat-venue-btn img {
      width: 3.6rem;
      height: 3.6rem;
      border-radius: .7rem;
      object-fit: cover;
      flex-shrink: 0;
    }
    .chat-venue-info {
      display: flex;
      flex-direction: column;
      gap: .15rem;
      min-width: 0;
      flex: 1;
    }
    .chat-venue-name {
      font-family: 'Georgia', serif;
      font-style: italic;
      font-size: 1rem;
      color: #12191f;
      line-height: 1.2;
    }
    .chat-venue-sub {
      font-family: sans-serif;
      font-size: .78rem;
      color: #6b6b6b;
      line-height: 1.3;
    }
    .chat-venue-gallery-link {
      display: flex;
      align-items: center;
      gap: .35rem;
      height: 2.1rem;
      padding: 0 .8rem;
      border-radius: 2rem;
      background: rgba(201,168,108,.14);
      color: #a3844f;
      flex-shrink: 0;
      margin-left: auto;
      font-family: sans-serif;
      font-size: .72rem;
      font-weight: 700;
      white-space: nowrap;
      transition: background .18s, color .18s;
    }
    .chat-venue-gallery-link:hover {
      background: #c9a86c;
      color: #fff;
    }

    .chat-extras {
      display: flex;
      flex-direction: column;
      gap: .45rem;
      padding: .9rem 1.4rem 1.1rem;
    }
    .chat-extras-lbl {
      display: flex;
      align-items: center;
      gap: .7rem;
      background: #fff;
      border: 1.5px solid rgba(201,168,108,.4);
      color: #2a2a2a;
      border-radius: 1rem;
      padding: .65rem 1.2rem;
      font-family: sans-serif;
      font-size: .9rem;
      font-weight: 500;
      cursor: pointer;
      transition: background .18s, border-color .18s, color .18s;
      user-select: none;
    }
    .chat-extras-lbl:hover { background: #faf6f0; border-color: #c9a86c; }
    .chat-extras-lbl.checked { background: #fdf6e8; border-color: #c9a86c; color: #12191f; font-weight: 600; }
    .chat-extras-lbl input[type=checkbox] {
      width: 17px; height: 17px;
      accent-color: #c9a86c;
      cursor: pointer;
      flex-shrink: 0;
    }
    .chat-extras-confirm {
      margin-top: .3rem;
      background: #c9a86c;
      border: 1.5px solid #c9a86c;
      color: #12191f;
      border-radius: 1rem;
      padding: .65rem 1.2rem;
      font-family: sans-serif;
      font-size: .9rem;
      font-weight: 700;
      cursor: pointer;
      width: 100%;
      text-align: center;
      transition: background .18s, border-color .18s;
    }
    .chat-extras-confirm:hover { background: #dfc080; border-color: #dfc080; }
    .chat-extras-lbl input[type=number]::-webkit-inner-spin-button,
    .chat-extras-lbl input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
    .chat-extras-lbl input[type=number] { -moz-appearance: textfield; }

    .chat-input-row {
      display: flex;
      align-items: center;
      gap: .6rem;
      padding: .9rem 1.4rem;
    }
    .chat-text-input {
      flex: 1;
      border: 1.5px solid rgba(0,0,0,.12);
      border-radius: 2rem;
      padding: .65rem 1.2rem;
      font-family: sans-serif;
      font-size: .95rem;
      outline: none;
      color: #2a2a2a;
      background: #fff;
    }
    .chat-text-input::placeholder { color: rgba(0,0,0,.35); }
    .chat-text-input:focus { border-color: #c9a86c; background: #fff; }
    .chat-textarea { border-radius: 1rem; resize: none; align-self: flex-start; padding: .65rem 1.1rem; line-height: 1.5; }
    .chat-input-row:has(.chat-textarea) { align-items: flex-end; }
    .chat-send-btn {
      width: 42px; height: 42px;
      background: #12191f;
      border: 1.5px solid #c9a86c;
      border-radius: 50%;
      color: #c9a86c;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      gap: .45rem;
      flex-shrink: 0;
      transition: background .18s, color .18s;
    }
    .chat-send-btn:hover { background: #1c2730; }
    .chat-send-label {
      display: none;
      font-family: sans-serif;
      font-size: .95rem;
      font-weight: 600;
      letter-spacing: .03em;
    }

    .chat-numpad {
      display: flex;
      flex-wrap: nowrap;
      gap: .3rem;
      padding: .7rem 1.4rem .1rem;
    }
    .chat-numpad-btn {
      flex: 1;
      min-width: 0;
      background: #EDF3EC;
      border: 1.5px solid rgba(30,76,44,.15);
      border-radius: .65rem;
      padding: .6rem .1rem;
      font-family: sans-serif;
      font-size: 1.05rem;
      font-weight: 600;
      color: var(--text);
      cursor: pointer;
      text-align: center;
      transition: background .13s, transform .1s;
      user-select: none;
      -webkit-user-select: none;
      touch-action: manipulation;
    }
    .chat-numpad-btn:hover  { background: #D9EDE0; }
    .chat-numpad-btn:active { background: #c5e0ce; transform: scale(.94); }
    .chat-numpad-btn.numpad-del { color: #2E6B42; font-size: .85rem; }
    .chat-numpad-btn.numpad-ok  { background: #2E6B42; color: #fff; border-color: #2E6B42; }
    .chat-numpad-btn.numpad-ok:hover  { background: #1D4C2C; border-color: #1D4C2C; }

    .chat-cta-row {
      display: flex;
      gap: .6rem;
      padding: 1rem 1.4rem 1.4rem;
    }
    .chat-cta-btn {
      flex: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .45rem;
      padding: .9rem 1rem;
      border-radius: 2rem;
      font-family: sans-serif;
      font-size: .95rem;
      font-weight: 600;
      text-decoration: none;
      transition: opacity .18s;
    }
    .chat-cta-btn:hover { opacity: .88; }
    .chat-cta-btn.email { background: #12191f; color: #c9a86c; border: 1.5px solid #c9a86c; }
    .chat-cta-btn.whatsapp { background: #25d366; color: #fff; }

    /* ── FLATPICKR INLINE ── */
    .chat-cal-wrap {
      padding: .5rem 1rem .7rem;
    }
    .chat-cal-wrap .flatpickr-calendar {
      box-shadow: none !important;
      border: none !important;
      background: transparent !important;
      width: 100% !important;
      font-family: sans-serif;
      font-size: .78rem !important;
    }
    .chat-cal-wrap .flatpickr-month {
      background: #1D4C2C !important;
      border-radius: 10px 10px 0 0;
      color: #fff !important;
      height: 36px;
    }
    .chat-cal-wrap .flatpickr-current-month,
    .chat-cal-wrap .flatpickr-current-month span.cur-month,
    .chat-cal-wrap .flatpickr-current-month input.cur-year {
      color: #fff !important;
      font-size: .85rem !important;
      font-weight: 600 !important;
    }
    .chat-cal-wrap .flatpickr-prev-month svg,
    .chat-cal-wrap .flatpickr-next-month svg { fill: #fff !important; }
    .chat-cal-wrap .flatpickr-prev-month:hover,
    .chat-cal-wrap .flatpickr-next-month:hover { background: rgba(255,255,255,.15) !important; border-radius: 6px; }
    .chat-cal-wrap .flatpickr-weekdays {
      background: #EDF3EC !important;
      height: 26px !important;
    }
    .chat-cal-wrap span.flatpickr-weekday {
      background: transparent !important;
      color: #2E6B42 !important;
      font-weight: 700;
      font-size: .68rem;
      line-height: 26px !important;
    }
    .chat-cal-wrap .flatpickr-days {
      width: 100% !important;
      border: none !important;
      background: #fff;
      border-radius: 0 0 10px 10px;
    }
    .chat-cal-wrap .dayContainer {
      width: 100% !important;
      min-width: 100% !important;
      max-width: 100% !important;
      padding: 2px 0 !important;
    }
    .chat-cal-wrap .flatpickr-day {
      border-radius: 6px !important;
      font-size: .78rem;
      color: var(--text);
      max-width: calc(100% / 7) !important;
      flex-basis: calc(100% / 7) !important;
      height: 30px !important;
      line-height: 30px !important;
    }
    .chat-cal-wrap .flatpickr-day:hover {
      background: #EDF3EC !important;
      border-color: transparent !important;
      color: #1D4C2C !important;
    }
    .chat-cal-wrap .flatpickr-day.today {
      border-color: #2E6B42 !important;
      color: #1D4C2C !important;
      font-weight: 700;
    }
    .chat-cal-wrap .flatpickr-day.today:hover { background: #EDF3EC !important; }
    .chat-cal-wrap .flatpickr-day.selected,
    .chat-cal-wrap .flatpickr-day.selected:hover {
      background: #2E6B42 !important;
      border-color: #2E6B42 !important;
      color: #fff !important;
    }
    .chat-cal-wrap .flatpickr-day.flatpickr-disabled,
    .chat-cal-wrap .flatpickr-day.flatpickr-disabled:hover {
      color: #ccc !important;
      background: transparent !important;
    }
    .chat-cal-wrap .flatpickr-innerContainer { border: none !important; }

    /* ── MINI CALENDRIER ── */
    .mini-cal {
      background: #fff9f0;
      border: 1px solid rgba(201,168,108,.35);
      border-radius: 12px;
      overflow: hidden;
      margin: .5rem .8rem .7rem;
      box-shadow: 0 4px 18px rgba(201,168,108,.15);
    }
    .mini-cal-header {
      background: rgba(201,168,108,.15);
      border-bottom: 1px solid rgba(201,168,108,.25);
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: .75rem 1rem;
    }
    .mini-cal-title {
      color: #8a6830;
      font-family: sans-serif;
      font-weight: 700;
      font-size: .95rem;
      letter-spacing: .04em;
      text-transform: capitalize;
    }
    .mini-cal-nav {
      background: rgba(201,168,108,.18);
      border: 1.5px solid rgba(201,168,108,.4);
      color: #8a6830;
      font-size: .85rem;
      cursor: pointer;
      width: 26px; height: 26px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      transition: background .15s, transform .15s;
      flex-shrink: 0;
    }
    .mini-cal-nav:hover { background: rgba(201,168,108,.35); transform: scale(1.1); }
    .mini-cal-nav:disabled { opacity: .28; cursor: default; transform: none; }
    .mini-cal-week-headers {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      padding: .55rem .5rem .2rem;
      background: transparent;
    }
    .mini-cal-week-headers span {
      text-align: center;
      font-family: sans-serif;
      font-size: .65rem;
      font-weight: 800;
      letter-spacing: .06em;
      color: #c9a86c;
      text-transform: uppercase;
    }
    .mini-cal-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 2px;
      padding: .3rem .5rem .6rem;
    }
    .mini-cal-day {
      width: 34px;
      height: 34px;
      justify-self: center;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: sans-serif;
      font-size: .82rem;
      font-weight: 500;
      border-radius: 50%;
      border: none;
      background: none;
      cursor: pointer;
      color: #8a6830;
      transition: background .15s, color .15s, transform .12s, box-shadow .15s;
    }
    .mini-cal-day:not(.disabled):not(.empty):hover {
      background: rgba(201,168,108,.22);
      color: #5a4010;
      transform: scale(1.12);
    }
    .mini-cal-day.today {
      box-shadow: 0 0 0 2px #c9a86c;
      color: #8a6830;
      font-weight: 700;
    }
    .mini-cal-day.selected {
      background: #c9a86c !important;
      color: #12191f !important;
      font-weight: 700;
      box-shadow: 0 2px 8px rgba(201,168,108,.4) !important;
      transform: scale(1.1);
    }
    .mini-cal-day.disabled { color: rgba(201,168,108,.3); cursor: default; pointer-events: none; font-weight: 400; }
    .mini-cal-day.empty { pointer-events: none; }

    /* ── ADRESSE SUGGESTIONS ── */
    .addr-suggest {
      list-style: none;
      background: #fff;
      border-top: 1px solid rgba(0,0,0,.07);
      max-height: 180px;
      overflow-y: auto;
    }
    .addr-suggest-item {
      padding: .6rem 1.4rem;
      font-family: sans-serif;
      font-size: .85rem;
      color: var(--text);
      cursor: pointer;
      border-bottom: 1px solid rgba(0,0,0,.05);
      transition: background .15s;
    }
    .addr-suggest-item:hover { background: #EDF3EC; color: #1D4C2C; }

    /* ── VISITORS BADGE ── */
    .visitors-badge {
      display: inline-flex;
      align-items: center;
      gap: .55rem;
      background: rgba(255,255,255,.18);
      border: 1px solid rgba(255,255,255,.4);
      border-radius: 2rem;
      padding: .4rem 1.2rem .4rem .8rem;
      font-family: sans-serif;
      font-size: .63rem;
      font-weight: 400;
      color: #fff;
      letter-spacing: .18em;
      text-transform: uppercase;
    }
    .visitors-dot {
      width: 8px; height: 8px;
      border-radius: 50%;
      background: #4de089;
      flex-shrink: 0;
      box-shadow: 0 0 0 0 rgba(77,224,137,.5);
      animation: visitorsPulse 2s infinite;
    }
    @keyframes visitorsPulse {
      0%   { box-shadow: 0 0 0 0 rgba(77,224,137,.55); }
      70%  { box-shadow: 0 0 0 7px rgba(77,224,137,0); }
      100% { box-shadow: 0 0 0 0 rgba(77,224,137,0); }
    }
    .visitors-count {
      color: #fff;
      transition: opacity .4s ease;
    }
    .visitors-count.fade {
      opacity: 0;
    }

    /* ── FAB ── */
    .chat-fab {
      position: fixed;
      bottom: 1.8rem; right: 1.8rem;
      z-index: 150;
      background: #12191f;
      color: #c9a86c;
      border: 2px solid #c9a86c;
      outline: none;
      border-radius: 50%;
      width: 58px; height: 58px;
      box-shadow: 0 4px 18px rgba(0,0,0,.35), 0 1px 5px rgba(0,0,0,.2);
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: transform .2s, box-shadow .2s, background .2s;
    }
    .chat-fab:hover { transform: scale(1.08); box-shadow: 0 8px 28px rgba(201,168,108,.25); background: #1c2730; }

    /* ── FAQ BADGE ── */
    .faq-badge {
      position: fixed;
      bottom: 1.8rem;
      right: calc(1.8rem + 58px + .8rem);
      z-index: 140;
      max-width: 260px;
      display: flex;
      align-items: flex-start;
      gap: .6rem;
      background: #12191f;
      color: #fff;
      border: 1px solid rgba(201,168,108,.4);
      border-radius: 14px;
      padding: .85rem .95rem;
      box-shadow: 0 10px 30px rgba(0,0,0,.35), 0 2px 8px rgba(0,0,0,.2);
      text-decoration: none;
      opacity: 0;
      visibility: hidden;
      transform: translateX(10px);
      transition: opacity .45s ease, transform .45s ease, visibility 0s linear .45s;
    }
    .faq-badge.show {
      opacity: 1;
      visibility: visible;
      transform: translateX(0);
      transition: opacity .45s ease, transform .45s ease;
    }
    .faq-badge:hover { background: #1c2730; }
    .faq-badge-icon {
      flex: 0 0 auto;
      width: 32px; height: 32px;
      border-radius: 50%;
      background: rgba(201,168,108,.15);
      color: #c9a86c;
      display: flex; align-items: center; justify-content: center;
    }
    .faq-badge-text {
      font-family: sans-serif;
      font-size: .82rem;
      line-height: 1.4;
      letter-spacing: .01em;
      color: #f2ece3;
      padding-top: .1rem;
    }
    .faq-badge-close {
      flex: 0 0 auto;
      background: none;
      border: none;
      color: rgba(255,255,255,.5);
      font-size: 1rem;
      line-height: 1;
      cursor: pointer;
      padding: .1rem .2rem;
      margin: -.2rem -.3rem 0 0;
      transition: color .2s;
    }
    .faq-badge-close:hover { color: #fff; }

    @media (max-width: 1024px) {
      .faq-badge {
        left: 1rem; right: 1rem;
        bottom: calc(72px + env(safe-area-inset-bottom, 0px) + .9rem);
        max-width: none;
      }
    }

    @media (max-width: 380px) {
      .faq-badge-text { font-size: .78rem; }
    }

    /* ── CHAT MOBILE (placé après tous les styles de base) ── */
    @media (max-width: 680px) {
      .chat-choices {
        padding: .8rem 1.4rem;
        padding-bottom: max(1.2rem, env(safe-area-inset-bottom, 0px));
      }
      .chat-choice-btn {
        min-height: 48px;
        padding: .85rem 1.2rem;
        font-size: .95rem;
      }
      .chat-venue-choices {
        padding: .8rem 1.4rem;
        padding-bottom: max(1.2rem, env(safe-area-inset-bottom, 0px));
      }
      .chat-venue-btn { min-height: 48px; }
      .chat-extras { padding: .8rem 1.4rem; padding-bottom: max(1.2rem, env(safe-area-inset-bottom, 0px)); }
      .chat-extras-lbl { min-height: 48px; padding: .85rem 1.2rem; font-size: .95rem; }
      .chat-extras-confirm { min-height: 48px; font-size: .95rem; }
      .chat-input-row {
        flex-direction: column;
        align-items: stretch;
        gap: .5rem;
        padding: .8rem 1.4rem;
        padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
      }
      .chat-input-row:has(.chat-textarea) { align-items: stretch; }
      .chat-text-input { width: 100%; }
      .chat-send-btn {
        width: 100%;
        height: 48px;
        border-radius: 2rem;
        justify-content: center;
      }
      .chat-send-label { display: inline; }
      .chat-numpad { gap: .25rem; padding: .6rem .9rem .1rem; }
      .chat-numpad-btn { padding: .65rem .05rem; font-size: .95rem; border-radius: .55rem; }
      .chat-cta-row {
        padding: .8rem 1.4rem;
        padding-bottom: max(1.4rem, env(safe-area-inset-bottom, 0px));
      }
      .chat-cal-wrap {
        padding-bottom: max(.7rem, env(safe-area-inset-bottom, 0px));
      }
    }

    /* ── FAQ ── */
    #faq { background: #fff; }

    .faq-list {
      display: grid;
      grid-template-columns: 1fr 1fr;
      align-items: start;
      gap: .55rem 1.1rem;
      margin-top: .5rem;
    }
    @media (max-width: 760px) {
      .faq-list {
        grid-template-columns: 1fr;
      }
    }

    .faq-item {
      border: 1.5px solid rgba(181,113,74,.15);
      border-radius: 12px;
      overflow: hidden;
      transition: border-color .22s, box-shadow .22s;
    }
    .faq-item[open] {
      border-color: rgba(181,113,74,.38);
      box-shadow: 0 4px 18px rgba(181,113,74,.09);
    }

    .faq-q {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.05rem 1.4rem;
      font-family: sans-serif;
      font-weight: 700;
      font-size: .97rem;
      color: var(--text);
      cursor: pointer;
      list-style: none;
      gap: 1rem;
      user-select: none;
      background: var(--beige);
    }
    .faq-q::-webkit-details-marker { display: none; }
    .faq-q::after {
      content: '+';
      font-size: 1.5rem;
      font-weight: 300;
      color: var(--green-light);
      flex-shrink: 0;
      line-height: 1;
      transition: transform .25s, color .22s;
    }
    .faq-item[open] .faq-q::after {
      transform: rotate(45deg);
      color: var(--terra);
    }

    .faq-a {
      padding: 1rem 1.4rem 1.3rem;
      font-family: sans-serif;
      font-size: .9rem;
      line-height: 1.78;
      color: var(--text-light);
      background: #fff;
      border-top: 1px solid rgba(181,113,74,.12);
    }
    .faq-a a { color: var(--terra); }
    .faq-loc-badge {
      display: inline-flex;
      align-items: center;
      font-family: sans-serif;
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: .04em;
      text-transform: uppercase;
      color: #fff;
      padding: .18rem .6rem;
      border-radius: 2rem;
      margin: .3rem .5rem .3rem 0;
      vertical-align: middle;
    }
    .faq-loc-badge-montmorency { background: #4a8a4f; }
    .faq-loc-badge-sarcelles { background: #2d8acf; }

    @media (max-width: 768px) {
      .faq-q { padding: .9rem 1.1rem; font-size: .9rem; }
      .faq-a { padding: .85rem 1.1rem 1rem; }
    }

    /* ── STICKY MOBILE BOOK BAR ── */
    .sticky-book-bar {
      display: none;
      position: fixed;
      bottom: 0; left: 0; right: 0;
      z-index: 90;
      background: #12191f;
      border-top: 1px solid rgba(201,168,108,.22);
      padding: .65rem 1rem;
      padding-bottom: max(.65rem, env(safe-area-inset-bottom, 0px));
      gap: .6rem;
      box-shadow: 0 -4px 20px rgba(0,0,0,.3);
    }

    @media (max-width: 1024px) {
      .sticky-book-bar { display: flex; }
      .chat-fab { display: none !important; }
      body { padding-bottom: 72px; }
    }

    @media (max-width: 430px) {
      .phone-num { display: none; }
      .sticky-bar-btn-phone { flex: 0 0 auto; padding: .75rem 1rem; }
    }

    .sticky-bar-btn {
      flex: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: .45rem;
      border-radius: 2rem;
      padding: .75rem 1rem;
      font-family: sans-serif;
      font-size: .9rem;
      font-weight: 700;
      text-decoration: none;
      letter-spacing: .02em;
      white-space: nowrap;
      border: none;
      cursor: pointer;
      transition: opacity .18s;
    }
    .sticky-bar-btn:hover { opacity: .88; }
    .sticky-bar-btn-reserve { background: #c9a86c; color: #12191f; }
    .sticky-bar-btn-whatsapp { background: #25d366; color: #fff; }
    .sticky-bar-btn-phone {
      background: rgba(255,255,255,.08);
      color: #fff;
      border: 1px solid rgba(255,255,255,.18);
      font-size: .78rem;
      flex: 0 0 auto;
      padding: .75rem .7rem;
    }
