/* ════════════════════════════════════════════════════════
     LE MARAIS — premium bistro layout
     Verrouillé : Fraunces (h1/h2 italique), Plus Jakarta (body),
     JetBrains Mono (eyebrow/prix). Palette dans themes.css.
     ════════════════════════════════════════════════════════ */
  [data-theme="marais"] body { background: var(--c-bg); }
  [data-theme="marais"] .demo-banner { background: var(--c-bg-warm); border-bottom: 1px solid var(--c-line); }

  /* Nav flottante centrée en BAS (au lieu de sticky-bar en haut) */
  .marais-nav {
    position: fixed;
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 55;
    background: color-mix(in srgb, var(--c-bg) 94%, transparent);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid color-mix(in srgb, var(--c-ink) 14%, transparent);
    border-radius: 999px;
    box-shadow: 0 12px 36px color-mix(in srgb, var(--c-bg-dark) 22%, transparent);
  }
  .marais-nav__inner {
    padding: 8px 8px 8px 22px;
    display: inline-flex; align-items: center; gap: 24px;
  }
  .marais-nav__brand {
    font-family: "Fraunces", serif; font-weight: 400; font-style: italic;
    font-size: 1.15rem; letter-spacing: -0.01em; color: var(--c-ink); text-decoration: none;
  }
  /* Sous-titre brand caché en pill mode (trop cramped) */
  .marais-nav__brand small { display: none; }
  .marais-nav__sep { width: 1px; height: 16px; background: color-mix(in srgb, var(--c-ink) 18%, transparent); }
  .marais-nav__links { display: inline-flex; gap: 18px; }
  .marais-nav__links a {
    font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--c-ink-soft); text-decoration: none;
    transition: color .2s;
  }
  .marais-nav__links a:hover { color: var(--c-brand); }
  .marais-nav__cta {
    padding: 9px 18px; background: var(--c-brand); color: var(--c-bg);
    font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.12em;
    text-transform: uppercase; border-radius: 999px; text-decoration: none;
    transition: background .2s;
  }
  .marais-nav__cta:hover { background: var(--c-bg-dark); }
  @media (max-width: 720px) {
    /* Mobile : pill élargie + cachage des liens secondaires */
    .marais-nav { left: 14px; right: 14px; transform: none; bottom: 14px; border-radius: 16px; }
    .marais-nav__inner { padding: 8px 8px 8px 18px; gap: 14px; flex-wrap: wrap; }
    .marais-nav__brand { font-size: 1rem; flex: 1 1 100%; }
    .marais-nav__sep, .marais-nav__links { display: none; }
    .marais-nav__cta { font-size: 0.68rem; padding: 8px 14px; flex: 0 0 auto; }
  }

  /* HERO */
  .marais-hero {
    position: relative; min-height: 92vh; overflow: hidden;
    display: flex; align-items: flex-end; color: var(--c-bg);
  }
  .marais-hero__bg { position: absolute; inset: 0; z-index: 0; }
  .marais-hero__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .marais-hero__bg::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(20,14,6,0.18) 0%, rgba(20,14,6,0.08) 38%, rgba(20,14,6,0.78) 100%);
  }
  .marais-hero__inner {
    position: relative; z-index: 2;
    max-width: 1200px; margin: 0 auto; padding: 80px 28px 70px; width: 100%;
  }
  .marais-hero__since {
    font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.18em;
    text-transform: uppercase; color: color-mix(in srgb, var(--c-bg) 82%, transparent);
    margin-bottom: 18px; display: inline-flex; align-items: center; gap: 12px;
  }
  .marais-hero__since::before { content: ''; width: 28px; height: 1px; background: color-mix(in srgb, var(--c-bg) 50%, transparent); }
  .marais-hero h1 {
    font-family: "Fraunces", serif; font-weight: 400;
    font-size: clamp(2.8rem, 7vw, 6rem); line-height: 0.96; letter-spacing: -0.02em;
    color: var(--c-bg); margin-bottom: 22px;
    font-variation-settings: "opsz" 144;
  }
  .marais-hero h1 em {
    font-style: italic; color: var(--c-bg); opacity: 0.92;
    font-variation-settings: "SOFT" 80, "opsz" 144;
  }
  .marais-hero__sub { font-size: 1.1rem; line-height: 1.5; max-width: 48ch; color: color-mix(in srgb, var(--c-bg) 86%, transparent); }
  .marais-hero__cta { margin-top: 36px; display: flex; gap: 14px; flex-wrap: wrap; }
  .btn-cream {
    padding: 14px 28px; background: var(--c-bg); color: var(--c-bg-dark);
    font-family: "JetBrains Mono", monospace; font-size: 0.78rem; letter-spacing: 0.1em;
    text-transform: uppercase; border-radius: 999px; text-decoration: none;
    transition: all .2s;
  }
  .btn-cream:hover { background: var(--c-accent); color: var(--c-bg); }
  .btn-outline-cream {
    padding: 14px 28px; background: transparent; color: var(--c-bg);
    border: 1px solid color-mix(in srgb, var(--c-bg) 60%, transparent);
    font-family: "JetBrains Mono", monospace; font-size: 0.78rem; letter-spacing: 0.1em;
    text-transform: uppercase; border-radius: 999px; text-decoration: none;
    transition: all .2s;
  }
  .btn-outline-cream:hover { background: color-mix(in srgb, var(--c-bg) 12%, transparent); border-color: var(--c-bg); }
  .marais-hero__addr {
    margin-top: 50px; display: flex; gap: 28px; flex-wrap: wrap;
    font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.06em;
    color: color-mix(in srgb, var(--c-bg) 78%, transparent);
  }

  /* Sections de base */
  .ms { padding: 100px 28px; }
  .ms__wrap { max-width: 1200px; margin: 0 auto; }
  .ms--alt { background: var(--c-bg-warm); }
  .ms--deep { background: var(--c-bg-dark); color: var(--c-bg); }

  .ms__head { display: flex; justify-content: space-between; align-items: end; gap: 32px; margin-bottom: 56px; flex-wrap: wrap; }
  .ms__head-l { max-width: 56ch; }
  .ms__eyebrow {
    font-family: "JetBrains Mono", monospace; font-size: 0.72rem; letter-spacing: 0.18em;
    text-transform: uppercase; color: var(--c-brand); margin-bottom: 16px;
    display: inline-flex; align-items: center; gap: 12px;
  }
  .ms__eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--c-brand); }
  .ms__title {
    font-family: "Fraunces", serif; font-weight: 400;
    font-size: clamp(2rem, 4.5vw, 3.4rem); line-height: 1.04; letter-spacing: -0.015em;
    color: var(--c-ink);
  }
  .ms__title em { font-style: italic; color: var(--c-brand); font-variation-settings: "SOFT" 80, "opsz" 144; }
  .ms__intro { color: var(--c-ink-soft); font-size: 1rem; line-height: 1.6; max-width: 48ch; }
  .ms--deep .ms__title { color: var(--c-bg); }
  .ms--deep .ms__title em { color: var(--c-accent); }
  .ms--deep .ms__eyebrow { color: var(--c-accent); }
  .ms--deep .ms__eyebrow::before { background: var(--c-accent); }
  .ms--deep .ms__intro { color: color-mix(in srgb, var(--c-bg) 78%, transparent); }

  /* ARDOISE DU JOUR */
  .ardoise { background: var(--c-bg-dark); color: var(--c-bg); padding: 90px 0; position: relative; overflow: hidden; }
  .ardoise::before {
    content: ''; position: absolute; inset: 0;
    background: radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,0.45) 100%);
    pointer-events: none;
  }
  .ardoise__inner { max-width: 900px; margin: 0 auto; padding: 0 28px; position: relative; z-index: 2; text-align: center; }
  .ardoise__date {
    font-family: "JetBrains Mono", monospace; font-size: 0.78rem; letter-spacing: 0.18em;
    text-transform: uppercase; color: color-mix(in srgb, var(--c-bg) 60%, transparent); margin-bottom: 22px;
    display: inline-flex; align-items: center; gap: 14px;
  }
  .ardoise__date::before, .ardoise__date::after { content: ''; width: 36px; height: 1px; background: color-mix(in srgb, var(--c-bg) 30%, transparent); }
  .ardoise__title {
    font-family: "Fraunces", serif; font-weight: 300; font-style: italic;
    font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.06; letter-spacing: -0.01em;
    color: var(--c-bg); margin-bottom: 48px;
    font-variation-settings: "SOFT" 80, "opsz" 144;
  }
  .ardoise__list { list-style: none; padding: 0; max-width: 600px; margin: 0 auto; }
  .ardoise__item { padding: 20px 0; border-bottom: 1px dashed color-mix(in srgb, var(--c-bg) 18%, transparent); display: flex; justify-content: space-between; align-items: baseline; gap: 24px; text-align: left; }
  .ardoise__item:last-child { border-bottom: 0; }
  .ardoise__plat {
    font-family: "Fraunces", serif; font-weight: 400; font-style: italic; font-size: 1.32rem;
    color: var(--c-bg); flex: 1;
  }
  .ardoise__desc {
    display: block; font-family: "Plus Jakarta Sans", sans-serif; font-style: normal; font-weight: 400;
    font-size: 0.86rem; color: color-mix(in srgb, var(--c-bg) 60%, transparent); margin-top: 4px; max-width: 42ch;
  }
  .ardoise__price {
    font-family: "JetBrains Mono", monospace; font-size: 1.04rem; font-weight: 600;
    color: var(--c-accent); white-space: nowrap; min-width: 60px; text-align: right;
  }
  .ardoise__cta {
    margin-top: 48px; display: inline-block;
    font-family: "Fraunces", serif; font-weight: 300; font-style: italic;
    font-size: 1.1rem; color: var(--c-accent);
    text-decoration: none; border-bottom: 1px solid var(--c-accent); padding-bottom: 4px;
  }

  /* NOTRE BISTROT split */
  .bistro-split { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
  @media (max-width: 880px) { .bistro-split { grid-template-columns: 1fr; gap: 40px; } }
  .bistro-split__media { aspect-ratio: 4/5; overflow: hidden; }
  .bistro-split__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .bistro-split__text p { color: var(--c-ink-soft); font-size: 1.04rem; line-height: 1.65; margin-bottom: 18px; }
  .bistro-split__signature {
    margin-top: 28px;
    font-family: "Fraunces", serif; font-weight: 300; font-style: italic;
    font-size: 1.4rem; color: var(--c-brand);
    font-variation-settings: "SOFT" 80, "opsz" 144;
  }
  .bistro-split__sigsub {
    display: block; margin-top: 6px;
    font-family: "JetBrains Mono", monospace; font-style: normal; font-size: 0.7rem;
    letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-muted);
  }

  /* TIMELINE */
  .timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 56px; border-top: 1px solid var(--c-line); padding-top: 32px; }
  @media (max-width: 720px) { .timeline { grid-template-columns: 1fr 1fr; } }
  .timeline__item { padding: 0 16px; border-right: 1px solid var(--c-line); }
  .timeline__item:last-child { border-right: 0; }
  @media (max-width: 720px) { .timeline__item:nth-child(2n) { border-right: 0; } .timeline__item { margin-bottom: 24px; } }
  .timeline__year {
    font-family: "Fraunces", serif; font-weight: 400; font-style: italic;
    font-size: 1.6rem; color: var(--c-brand); margin-bottom: 8px;
    font-variation-settings: "SOFT" 80, "opsz" 144;
  }
  .timeline__lbl { font-family: "JetBrains Mono", monospace; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 6px; }
  .timeline__txt { color: var(--c-ink-soft); font-size: 0.92rem; line-height: 1.5; }

  /* CARTE */
  .menu-tabs-row { display: inline-flex; gap: 4px; background: var(--c-bg-warm); padding: 4px; border-radius: 999px; margin-bottom: 48px; flex-wrap: wrap; }
  .menu-tab {
    padding: 10px 22px; font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--c-muted); border-radius: 999px; cursor: pointer; border: 0;
    background: transparent; transition: all .2s;
  }
  .menu-tab.active { background: var(--c-ink); color: var(--c-bg); }

  .plats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
  @media (max-width: 880px) { .plats-grid { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 540px) { .plats-grid { grid-template-columns: 1fr; } }
  .plat { background: transparent; }
  .plat__media { aspect-ratio: 1/1; overflow: hidden; margin-bottom: 18px; background: var(--c-bg-warm); }
  .plat__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
  .plat:hover .plat__media img { transform: scale(1.04); }
  .plat__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 8px; }
  .plat__name { font-family: "Fraunces", serif; font-weight: 400; font-style: italic; font-size: 1.18rem; color: var(--c-ink); flex: 1; }
  .plat__price { font-family: "JetBrains Mono", monospace; font-size: 0.96rem; color: var(--c-brand); font-weight: 600; white-space: nowrap; }
  .plat__desc { color: var(--c-ink-soft); font-size: 0.92rem; line-height: 1.55; }
  .plat__tag {
    display: inline-block; margin-top: 10px;
    padding: 2px 10px; background: var(--c-bg-warm); color: var(--c-muted);
    font-family: "JetBrains Mono", monospace; font-size: 0.64rem; letter-spacing: 0.06em;
    text-transform: uppercase; border-radius: 999px;
  }

  /* CAVE */
  .cave { display: grid; grid-template-columns: 1fr 1.4fr; gap: 60px; align-items: start; }
  @media (max-width: 880px) { .cave { grid-template-columns: 1fr; gap: 40px; } }
  .cave__media { aspect-ratio: 4/3; overflow: hidden; }
  .cave__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .cave__list h4 {
    font-family: "Fraunces", serif; font-weight: 500; font-size: 1rem;
    color: var(--c-ink); margin: 24px 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--c-line);
    display: flex; justify-content: space-between; align-items: baseline;
  }
  .cave__list h4:first-child { margin-top: 0; }
  .cave__list h4 span {
    font-family: "JetBrains Mono", monospace; font-style: normal; font-weight: 400;
    font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-muted);
  }
  .cave__wine { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 8px 0; font-size: 0.94rem; }
  .cave__wine-name { color: var(--c-ink); flex: 1; }
  .cave__wine-name em { font-style: italic; color: var(--c-muted); font-size: 0.86rem; margin-left: 6px; }
  .cave__wine-price { font-family: "JetBrains Mono", monospace; color: var(--c-brand); font-weight: 600; }

  /* CAFÉS */
  .cafes-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 60px; align-items: center; }
  @media (max-width: 880px) { .cafes-grid { grid-template-columns: 1fr; gap: 40px; } }
  .cafes-list h4 {
    font-family: "Fraunces", serif; font-weight: 500; font-size: 1rem;
    color: var(--c-ink); margin: 24px 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--c-line);
  }
  .cafes-list h4:first-child { margin-top: 0; }
  .cafes-list ul { list-style: none; padding: 0; margin: 0; }
  .cafes-list li { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0; font-size: 0.94rem; color: var(--c-ink); }
  .cafes-list li span { font-family: "JetBrains Mono", monospace; color: var(--c-brand); font-weight: 600; }
  .cafes-media { aspect-ratio: 1/1; overflow: hidden; }
  .cafes-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

  /* RÉSERVATION */
  .resa { background: var(--c-bg); padding: 50px 40px; max-width: 720px; margin: 0 auto; border: 1px solid var(--c-line); }
  .resa__row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; margin-bottom: 18px; }
  @media (max-width: 540px) { .resa__row { grid-template-columns: 1fr; } }
  .resa label { display: block; font-family: "JetBrains Mono", monospace; font-size: 0.66rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 8px; }
  .resa input, .resa select {
    width: 100%; padding: 12px 14px; background: transparent; border: 0; border-bottom: 1px solid var(--c-line);
    font-family: inherit; font-size: 1rem; color: var(--c-ink);
  }
  .resa input:focus, .resa select:focus { outline: 0; border-bottom-color: var(--c-brand); }
  .resa__cta {
    width: 100%; margin-top: 8px; padding: 16px;
    background: var(--c-brand); color: var(--c-bg);
    font-family: "JetBrains Mono", monospace; font-size: 0.84rem; letter-spacing: 0.12em;
    text-transform: uppercase; border: 0; border-radius: 999px; cursor: pointer; transition: background .2s;
  }
  .resa__cta:hover { background: var(--c-bg-dark); }
  .resa__legal { margin-top: 14px; text-align: center; font-family: "JetBrains Mono", monospace; font-size: 0.66rem; color: var(--c-muted); letter-spacing: 0.04em; }

  /* AVIS & PRESSE */
  .testi-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  @media (max-width: 880px) { .testi-row { grid-template-columns: 1fr; } }
  .testi { padding: 28px; background: var(--c-bg); border: 1px solid var(--c-line); }
  .testi__source {
    font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--c-brand); margin-bottom: 14px;
  }
  .testi__quote { font-family: "Fraunces", serif; font-style: italic; font-size: 1rem; line-height: 1.5; color: var(--c-ink); margin-bottom: 14px; }
  .testi__by { font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.04em; color: var(--c-muted); }
  .testi__by strong { display: block; color: var(--c-ink); font-family: "Plus Jakarta Sans", sans-serif; letter-spacing: 0; font-size: 0.86rem; margin-bottom: 2px; }

  /* CONTACT */
  .contact-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 28px; }
  @media (max-width: 880px) { .contact-grid { grid-template-columns: 1fr; } }
  .contact-card { padding: 32px; background: var(--c-bg); border: 1px solid var(--c-line); }
  .contact-card h4 { font-family: "Fraunces", serif; font-weight: 500; font-size: 1.1rem; margin-bottom: 16px; color: var(--c-ink); }
  .contact-card p, .contact-card a { color: var(--c-ink-soft); font-size: 0.94rem; line-height: 1.6; }
  .contact-card a { color: var(--c-brand); text-decoration: none; border-bottom: 1px solid var(--c-line-soft); }
  .contact-hours-row { display: flex; justify-content: space-between; padding: 6px 0; font-size: 0.92rem; border-bottom: 1px dashed var(--c-line-soft); }
  .contact-hours-row:last-child { border-bottom: 0; }
  .contact-hours-row span:first-child { color: var(--c-ink); }
  .contact-hours-row span:last-child { font-family: "JetBrains Mono", monospace; color: var(--c-muted); font-size: 0.84rem; }

  /* FOOTER */
  .marais-foot { background: var(--c-bg-dark); color: color-mix(in srgb, var(--c-bg) 70%, transparent); padding: 60px 28px 130px; }
  .marais-foot__inner { max-width: 1200px; margin: 0 auto; text-align: center; }
  .marais-foot__brand {
    font-family: "Fraunces", serif; font-weight: 400; font-style: italic;
    font-size: 1.6rem; color: var(--c-bg); margin-bottom: 8px;
  }
  .marais-foot__sub {
    font-family: "JetBrains Mono", monospace; font-size: 0.74rem; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--c-accent); margin-bottom: 32px;
  }
  .marais-foot__divider { border: 0; height: 1px; background: color-mix(in srgb, var(--c-bg) 12%, transparent); margin: 32px auto; max-width: 200px; }
  .marais-foot__legal {
    font-family: "JetBrains Mono", monospace; font-size: 0.68rem; letter-spacing: 0.06em;
    color: color-mix(in srgb, var(--c-bg) 40%, transparent);
  }
  .marais-foot__legal a { color: color-mix(in srgb, var(--c-bg) 70%, transparent); text-decoration: underline; }

  /* Annot marker */
  [data-theme="marais"] .annot-marker { background: var(--c-brand); color: var(--c-bg); }
  [data-theme="marais"] .annot-marker.is-active { background: var(--c-accent); color: var(--c-bg-dark); }
  [data-theme="marais"] .sticky-cta { background: var(--c-brand); color: var(--c-bg); bottom: 92px; }
  /* Customizer button + panel remontés pour ne pas overlap la nav flottante en bas */
  [data-theme="marais"] .dtm-cust-btn { bottom: 92px; }
  [data-theme="marais"] .dtm-cust-panel { bottom: 150px; }

  /* Resa row 2-cols (override the 3-col default) */
  .resa__row--2 { grid-template-columns: 1fr 1fr; }

  /* ════════════════════════════════════════════════════════
     RESPONSIVE MOBILE — patches UX critiques
     ════════════════════════════════════════════════════════ */

  /* Tap states (toutes tailles) */
  .btn-cream:active, .btn-outline-cream:active,
  .marais-nav__cta:active, .resa__cta:active,
  .menu-tab:active, .ardoise__cta:active { transform: scale(0.97); }

  @media (max-width: 880px) {
    /* Sections plus aérées sur mobile */
    .ms { padding: 64px 20px; }
    .ardoise { padding: 64px 0; }

    /* Annotations cachées sur mobile (outils desktop uniquement) */
    .annot-marker { display: none; }

    /* Cave : image moins haute */
    .cave__media { aspect-ratio: 16/9; }

    /* Timeline : stack vertical au lieu de 2x2 */
    .timeline { grid-template-columns: 1fr; padding-top: 24px; margin-top: 32px; }
    .timeline__item { border-right: 0; border-bottom: 1px solid var(--c-line); padding: 16px 0; }
    .timeline__item:last-child { border-bottom: 0; }

    /* Footer : padding bas pour pas être masqué par nav flottante + sticky-cta */
    .marais-foot { padding-bottom: 130px; }
  }

  @media (max-width: 720px) {
    /* DEMO BANNER — collapse les boutons utilitaires, garder design pills + retour */
    .demo-banner__inner { flex-wrap: wrap; gap: 8px; padding: 8px 14px; }
    .demo-banner__left { flex: 1 1 100%; font-size: 0.74rem; }
    .design-pills { flex: 1 1 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; }
    .design-pills::-webkit-scrollbar { display: none; }
    .design-pills a { white-space: nowrap; }
    .demo-banner__actions { flex: 1 1 100%; gap: 6px; flex-wrap: wrap; }
    .demo-banner__actions #annotToggle,
    .demo-banner__actions #tourStart,
    .demo-banner__actions a[href*="bio-resto"],
    .demo-banner__actions a[href*="back-office"] { display: none; }

    /* MARAIS NAV — hide subtitle, shorter brand */
    .marais-nav__brand small { display: none; }
    .marais-nav__brand { font-size: 1.1rem; }
    .marais-nav__inner { padding: 12px 18px; gap: 12px; }
    .marais-nav__cta { padding: 9px 16px; font-size: 0.7rem; }

    /* HERO — h1 fluide + adresse en bloc vertical */
    .marais-hero { min-height: auto; padding-top: 0; padding-bottom: 60px; }
    .marais-hero__inner { padding: 60px 20px 50px; }
    .marais-hero h1 { font-size: clamp(2rem, 9vw, 3.4rem); line-height: 1.02; margin-bottom: 18px; }
    .marais-hero__sub { font-size: 1rem; }
    .marais-hero__since { font-size: 0.66rem; letter-spacing: 0.14em; }
    .marais-hero__since::before { width: 18px; }
    .marais-hero__cta { gap: 10px; flex-direction: column; }
    .btn-cream, .btn-outline-cream { width: 100%; text-align: center; padding: 16px 24px; font-size: 0.74rem; }
    .marais-hero__addr { flex-direction: column; gap: 6px; margin-top: 32px; font-size: 0.68rem; }
    .marais-hero__addr .sep { display: none; }

    /* ARDOISE — items en colonne (nom puis prix dessous) */
    .ardoise__inner { padding: 0 20px; }
    .ardoise__title { font-size: clamp(1.8rem, 8vw, 2.6rem); margin-bottom: 32px; }
    .ardoise__item { flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px 0; }
    .ardoise__plat { font-size: 1.18rem; }
    .ardoise__price { align-self: flex-end; min-width: 0; }
    .ardoise__cta { font-size: 1rem; margin-top: 32px; }

    /* SECTION HEADS — gap réduit */
    .ms__head { margin-bottom: 32px; gap: 18px; }
    .ms__title { font-size: clamp(1.6rem, 7vw, 2.4rem); }
    .ms__intro { font-size: 0.94rem; }

    /* CARTE — onglets wrap propre, plus compacts */
    .menu-tabs-row { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; margin-bottom: 32px; width: 100%; }
    .menu-tab { padding: 10px 8px; font-size: 0.66rem; letter-spacing: 0.06em; text-align: center; }
    .plats-grid { gap: 24px; }
    .plat__media { aspect-ratio: 16/10; }

    /* CAVE — gap réduit */
    .cave { gap: 28px; }
    .cave__list h4 { font-size: 0.88rem; flex-wrap: wrap; gap: 6px; }
    .cave__list h4 span { font-size: 0.6rem; }
    .cave__wine { font-size: 0.86rem; gap: 12px; }

    /* CAFÉS — image plus petite */
    .cafes-grid { gap: 28px; }
    .cafes-list li { font-size: 0.86rem; gap: 10px; flex-wrap: wrap; }

    /* RÉSERVATION — toujours 1 col en mobile */
    .resa { padding: 32px 22px; }
    .resa__row, .resa__row--2 { grid-template-columns: 1fr !important; gap: 14px; margin-bottom: 14px; }
    .resa input, .resa select { font-size: 16px; /* évite zoom auto iOS */ }
    .resa__cta { padding: 18px; font-size: 0.78rem; }

    /* AVIS / TESTI — padding réduit */
    .testi { padding: 22px; }
    .testi__quote { font-size: 0.94rem; }

    /* CONTACT — padding interne réduit */
    .contact-card { padding: 24px; }
    .contact-card h4 { font-size: 1rem; }

    /* BISTRO SPLIT — image plus petite, signature plus discrète */
    .bistro-split { gap: 28px; }
    .bistro-split__media { aspect-ratio: 4/5; max-height: 480px; }
    .bistro-split__signature { font-size: 1.2rem; margin-top: 22px; }

    /* FOOTER */
    .marais-foot { padding: 48px 20px 110px; }
    .marais-foot__brand { font-size: 1.4rem; }
  }

  @media (max-width: 420px) {
    /* iPhone SE et very small — encore un cran */
    .ms { padding: 48px 16px; }
    .marais-hero h1 { font-size: clamp(1.8rem, 11vw, 2.6rem); }
    .ardoise__title { font-size: 1.6rem; }
    .ms__title { font-size: 1.5rem; }
    .marais-nav__brand { font-size: 1rem; }
    .marais-nav__cta { padding: 8px 12px; font-size: 0.66rem; }
    .demo-banner__left span:not(.demo-banner__dot) { font-size: 0.7rem; }
  }