  :root {
    --bg:#FFF; --ink:#161616; --ink-soft:#5A5A5A;
    --accent:#F4C9C8;        /* rose poudré */
    --accent-deep:#E8A6A4;
    --yellow:#F4C84A;        /* JAUNE OCRE Mogador — signature */
    --cream:#FAF6EC; --line:#E8E2DA;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:'Inter',sans-serif; color:var(--ink); line-height:1.5; -webkit-font-smoothing:antialiased; }
  img { max-width:100%; display:block; height:auto; }
  a { color:inherit; text-decoration:none; }
  .heart { width:1em; height:.91em; display:inline-block; vertical-align:-.05em; }
  /* Reveal au scroll (parcimonie) */
  .reveal { opacity:0; transform:translateY(50px) scale(.96);
    transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1); }
  .reveal.is-revealed { opacity:1; transform:translateY(0) scale(1); }
  .reveal-delay-1 { transition-delay:.15s; }
  .reveal-delay-2 { transition-delay:.3s; }
  @media (prefers-reduced-motion: reduce) { .reveal, .reveal.is-revealed { opacity:1; transform:none; transition:none; } }
  
  /* === NAV === */
  .nav {
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:18px 36px;
    display:flex; align-items:center; justify-content:space-between;
    color:#fff; transition:background .3s ease, color .3s ease;
  }
  .nav__brand { display:flex; flex-direction:column; align-items:flex-start; line-height:1; }
  .nav__brand-eyebrow { font-size:9px; letter-spacing:.32em; text-transform:uppercase; font-weight:500; opacity:.85; margin-bottom:4px; }
  .nav__brand-name { font-size:22px; font-weight:600; letter-spacing:-.005em; text-transform:lowercase; }
  .nav__cta {
    background:var(--yellow); color:var(--ink);
    padding:12px 24px; font-size:11px; letter-spacing:.18em;
    text-transform:uppercase; font-weight:600;
  }
  
  /* === BIG HERO === */
  .hero {
    position:relative; height:100vh; min-height:640px;
    display:flex; align-items:flex-end;
    color:#fff; overflow:hidden;
  }
  .hero__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
  .hero__overlay {
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.45) 60%,rgba(0,0,0,.78) 100%);
  }
  .hero__content { position:relative; z-index:2; padding:0 56px 80px; max-width:1100px; }
  .hero__eyebrow {
    font-size:13px; letter-spacing:.4em; text-transform:uppercase;
    margin-bottom:32px; font-weight:500; text-shadow:0 2px 18px rgba(0,0,0,.55);
    display:flex; align-items:center; gap:14px;
  }
  .hero__eyebrow .heart { width:18px; height:16px; }
  .hero__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(64px, 11vw, 170px); line-height:.95; letter-spacing:-.015em;
    text-shadow:0 4px 30px rgba(0,0,0,.4); margin-bottom:32px;
  }
  .hero__title em { color:var(--yellow); font-style:italic; }
  .hero__tagline {
    font-size:19px; font-weight:300; opacity:.95; margin-bottom:48px;
    text-shadow:0 2px 12px rgba(0,0,0,.4); max-width:600px;
  }
  .hero__cta-row { display:flex; gap:16px; flex-wrap:wrap; }
  .btn {
    padding:18px 32px; font-size:12px; letter-spacing:.18em;
    text-transform:uppercase; font-weight:600; cursor:pointer;
    transition:transform .2s, background .2s; border:1px solid transparent;
    display:inline-flex; align-items:center; gap:10px;
  }
  .btn--primary { background:var(--yellow); color:var(--ink); }
  .btn--primary:hover { background:#fff; transform:translateY(-2px); }
  .btn--ghost { background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
  .btn--ghost:hover { border-color:#fff; transform:translateY(-2px); }
  
  /* === SECTION NUMBER === */
  .sec-num {
    font-family:'Cormorant',serif; font-style:italic; font-weight:400;
    font-size:200px; line-height:.8; color:var(--cream);
    position:absolute; top:-30px; right:48px; z-index:0;
    pointer-events:none; user-select:none;
  }
  
  /* === TEXTURE PAPIER (réutilisable) === */
  .paper {
    background-color:var(--cream);
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* === MANIFESTO (parallax photo très estompée) === */
  .manifesto-wrap {
    position:relative;
    background-color:var(--cream);
    background-image:
      linear-gradient(rgba(250,246,236,.82), rgba(250,246,236,.82)),
      url('../img/photos/peletier/00_05982.webp');
    background-attachment:fixed;
    background-size:cover;
    background-position:center;
  }
  .manifesto { position:relative; z-index:1; }
  @media(hover:none) {
    .manifesto-wrap { background-attachment:scroll; }
  }
  .manifesto__text::first-letter {
    font-family:'Cormorant',serif; font-style:italic; font-weight:600;
    font-size:5em; line-height:.85; float:left; margin:6px 14px -6px 0;
    color:var(--accent-deep);
  }
  .manifesto {
    position:relative; padding:128px 56px; max-width:1400px; margin:0 auto;
    display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;
  }
  .manifesto__inner { position:relative; z-index:2; }
  .manifesto__media { position:relative; }
  .manifesto__media img {
    width:100%; aspect-ratio:4/5; object-fit:cover;
  }
  .manifesto__media-sm {
    position:absolute; left:-60px; bottom:-60px; width:50%; aspect-ratio:1/1;
    border:8px solid #fff; box-shadow:0 12px 40px rgba(0,0,0,.12);
  }
  .manifesto__media-sm img { aspect-ratio:1/1; }
  .manifesto__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--ink-soft); margin-bottom:24px; font-weight:500;
    display:flex; align-items:center; gap:10px;
  }
  .manifesto__eyebrow .heart { width:14px; height:13px; }
  .manifesto__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(48px, 7vw, 96px); line-height:1; margin-bottom:32px;
    letter-spacing:-.01em;
  }
  .manifesto__title em { color:var(--accent-deep); font-style:italic; }
  .manifesto__text { font-size:18px; line-height:1.7; color:var(--ink-soft); font-weight:300; max-width:620px; }
  
  /* === PRESSE (slider continu) === */
  .press {
    background:var(--ink); padding:80px 0 96px; color:#fff;
    overflow:hidden; position:relative;
  }
  .press__head { text-align:center; margin-bottom:64px; padding:0 24px; }
  .press__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--yellow); font-weight:500; margin-bottom:14px;
    display:flex; align-items:center; justify-content:center; gap:10px;
  }
  .press__eyebrow .heart { width:14px; height:13px; }
  .press__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(40px, 6vw, 64px); line-height:1; letter-spacing:-.01em;
  }
  .press__track {
    display:flex; gap:0; width:max-content;
    animation:press-scroll 50s linear infinite;
  }
  .press:hover .press__track { animation-play-state:paused; }
  .press__item {
    flex:0 0 440px; padding:0 48px;
    border-left:1px solid rgba(255,255,255,.12);
    text-align:center;
  }
  .press__logo {
    font-family:'Cormorant',serif; font-style:italic; font-weight:600;
    font-size:28px; color:var(--yellow); margin-bottom:18px;
    letter-spacing:-.005em;
  }
  .press__quote {
    font-family:'Cormorant',serif; font-style:italic; font-weight:400;
    font-size:18px; line-height:1.5; color:rgba(255,255,255,.92);
  }
  @keyframes press-scroll {
    from { transform:translateX(0); }
    to   { transform:translateX(-50%); }
  }
  /* Fade gauche/droite pour effet "carrousel infini" propre */
  .press::before, .press::after {
    content:""; position:absolute; top:0; bottom:0; width:120px; z-index:2;
    pointer-events:none;
  }
  .press::before { left:0; background:linear-gradient(90deg, var(--ink), transparent); }
  .press::after  { right:0; background:linear-gradient(-90deg, var(--ink), transparent); }
  
  /* === GRILLE 9 RESTOS (parallax photo très estompée) === */
  .restos-wrap {
    position:relative;
    background-color:var(--cream);
    background-image:
      linear-gradient(rgba(250,246,236,.82), rgba(250,246,236,.82)),
      url('../img/photos/dumpling-factory/11_13_2024%20Mian%20Fan2632.webp');
    background-attachment:fixed;
    background-size:cover;
    background-position:center;
  }
  .restos { position:relative; z-index:1; }
  @media(hover:none) {
    .restos-wrap { background-attachment:scroll; }
  }

  /* === BANDE AMBIANCE FULL BLEED (entre restos et foodporn) === */
  .ambient {
    position:relative; height:520px; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    color:#fff; text-align:center; padding:48px 24px;
  }
  .ambient__bg {
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; z-index:0;
  }
  .ambient::after {
    content:""; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.65));
  }
  .ambient__content { position:relative; z-index:2; max-width:920px; }
  .ambient__quote {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(32px, 4.5vw, 56px); line-height:1.2;
    text-shadow:0 4px 30px rgba(0,0,0,.35);
  }
  .ambient__quote em { color:var(--yellow); font-style:italic; }
  .ambient__attr {
    margin-top:24px; font-size:11px; letter-spacing:.32em;
    text-transform:uppercase; opacity:.85; font-weight:500;
  }
  .restos { position:relative; padding:128px 32px; max-width:1400px; margin:0 auto; }
  .restos__head { position:relative; z-index:2; margin-bottom:80px; }
  .restos__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--accent-deep); font-weight:500; margin-bottom:16px;
    display:flex; align-items:center; gap:10px;
  }
  .restos__eyebrow .heart { width:14px; height:13px; }
  .restos__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(48px, 7vw, 88px); line-height:1; letter-spacing:-.01em;
  }
  .restos__title em { color:var(--yellow); font-style:italic; }
  .restos__grid {
    display:grid; grid-template-columns:repeat(3, 1fr); gap:32px;
    position:relative; z-index:2;
  }
  .card {
    position:relative; background:#fff; overflow:hidden;
    transition:transform .3s ease, box-shadow .3s ease;
    box-shadow:0 6px 24px rgba(22,22,22,.05);
  }
  .card:hover { transform:translateY(-6px); box-shadow:0 16px 40px rgba(22,22,22,.12); }
  .card__tag {
    position:absolute; top:16px; right:16px; z-index:3;
    background:var(--yellow); color:var(--ink);
    font-size:9px; letter-spacing:.18em; text-transform:uppercase; font-weight:600;
    padding:5px 10px;
  }
  .card__media {
    position:relative; width:100%; aspect-ratio:4/3; overflow:hidden;
  }
  .card__media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
  .card:hover .card__media img { transform:scale(1.05); }
  .card__body { padding:24px 24px 28px; }
  .card__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:32px; line-height:1; margin-bottom:8px;
  }
  .card__sub {
    font-size:13px; color:var(--ink-soft); margin-bottom:14px;
  }
  .card__concept {
    font-size:13px; line-height:1.45; color:var(--ink);
    font-style:italic; margin-bottom:8px;
  }
  .card__addr {
    font-size:11px; color:var(--ink-soft); margin-bottom:14px;
    line-height:1.4;
  }
  .card__cta {
    font-size:11px; letter-spacing:.2em; text-transform:uppercase;
    font-weight:600; color:var(--ink); display:inline-block;
    border-bottom:2px solid var(--yellow); padding-bottom:3px;
  }
  
  /* === FOODPORN STUDIO (parallax + carrousel) === */
  .foodporn {
    position:relative; color:#fff; padding:80px 0 64px;
    background-color:#1c1c1e;
    background-image:
      linear-gradient(rgba(28,28,30,.88), rgba(28,28,30,.92)),
      url('../img/photos/montparnasse/00_05898%20(1).webp');
    background-attachment:fixed;
    background-size:cover;
    background-position:center;
  }
  @media(hover:none) {
    .foodporn { background-attachment:scroll; }
  }
  .foodporn__head { padding:0 32px; margin-bottom:40px; }
  .foodporn__grid {
    display:flex !important; gap:24px;
    overflow-x:auto; scroll-snap-type:x mandatory;
    padding:0 32px 32px;
    scrollbar-width:none;
  }
  .foodporn__grid::-webkit-scrollbar { display:none; }
  .dish {
    flex:0 0 calc((100% - 48px) / 3); scroll-snap-align:start;
    text-decoration:none; color:inherit;
    transition:transform .3s ease;
  }
  .dish:hover { transform:translateY(-6px); }
  .dish img {
    width:100%; aspect-ratio:5/4; object-fit:cover;
    transition:transform .5s ease;
  }
  .dish:hover img { transform:scale(1.03); }
  .dish__nav {
    display:flex; gap:12px; padding:32px 32px 0;
    max-width:1400px; margin:0 auto; justify-content:flex-end;
  }
  .dish__nav button {
    width:48px; height:48px; border:1px solid rgba(255,255,255,.3);
    background:transparent; color:#fff; cursor:pointer;
    font-size:20px; transition:background .2s;
  }
  .dish__nav button:hover { background:var(--yellow); color:var(--ink); border-color:var(--yellow); }
  @media(max-width:900px) {
    .dish { flex:0 0 78%; }
  }
  .foodporn .sec-num { color:rgba(244,200,74,.06); }
  .foodporn__head { position:relative; z-index:2; max-width:1400px; margin:0 auto 64px; }
  .foodporn__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--yellow); font-weight:500; margin-bottom:16px;
    display:flex; align-items:center; gap:10px;
  }
  .foodporn__eyebrow .heart { width:14px; height:13px; }
  .foodporn__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(48px, 7vw, 88px); line-height:1; letter-spacing:-.01em;
  }
  .foodporn__title em { color:var(--yellow); }
  .foodporn__grid {
    display:grid; grid-template-columns:repeat(3, 1fr); gap:32px;
    max-width:1400px; margin:0 auto; position:relative; z-index:2;
  }
  .dish img { width:100%; aspect-ratio:5/4; object-fit:cover; }
  .dish__name {
    margin-top:20px; font-family:'Cormorant',serif; font-style:italic;
    font-size:28px; font-weight:500;
  }
  .dish__resto {
    margin-top:6px; font-size:11px; letter-spacing:.2em;
    text-transform:uppercase; color:var(--yellow); font-weight:500;
  }
  
  /* === COULISSES (parallax sur le fond beige) === */
  .coulisses {
    position:relative; display:grid; grid-template-columns:1fr 1fr;
    min-height:540px; overflow:hidden;
    background-color:var(--cream);
    background-image:
      linear-gradient(rgba(250,246,236,.82), rgba(250,246,236,.82)),
      url('../img/photos/montparnasse/00_06048.webp');
    background-attachment:fixed;
    background-size:cover;
    background-position:center;
  }
  @media(hover:none) {
    .coulisses { background-attachment:scroll; }
  }
  .coulisses .sec-num { top:auto; bottom:-40px; left:48px; right:auto; }
  .coulisses__text {
    padding:128px 56px; display:flex; flex-direction:column; justify-content:center;
    position:relative; z-index:2;
  }
  .coulisses__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--accent-deep); font-weight:500; margin-bottom:16px;
    display:flex; align-items:center; gap:10px;
  }
  .coulisses__eyebrow .heart { width:14px; height:13px; }
  .coulisses__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(48px, 6vw, 80px); line-height:1; margin-bottom:32px;
    letter-spacing:-.01em;
  }
  .coulisses__title em { color:var(--accent-deep); }
  .coulisses__body {
    font-size:17px; line-height:1.8; color:var(--ink-soft); font-weight:300; max-width:480px;
  }
  .coulisses__media img { width:100%; height:100%; object-fit:cover; }
  
  /* === CTA FINAL (parallax photo table jaune Mogador) === */
  .cta-band {
    position:relative;
    background-color:var(--yellow); padding:96px 24px; text-align:center;
    background-image:
      linear-gradient(rgba(244,200,74,.78), rgba(244,200,74,.85)),
      url('../img/photos/mogador/00_01500.webp');
    background-attachment:fixed;
    background-size:cover;
    background-position:center;
  }
  @media(hover:none) {
    .cta-band { background-attachment:scroll; }
  }
  .cta-band > * { position:relative; z-index:1; }
  .cta-band__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    margin-bottom:16px; font-weight:600;
    display:flex; align-items:center; justify-content:center; gap:10px;
  }
  .cta-band__eyebrow .heart { width:14px; height:13px; }
  .cta-band__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(40px, 6vw, 72px); line-height:1.05; margin-bottom:40px;
  }
  .cta-band__btn {
    background:var(--ink); color:#fff; padding:20px 40px;
    font-size:12px; letter-spacing:.22em; text-transform:uppercase; font-weight:600;
    display:inline-block; transition:transform .2s, background .2s;
  }
  .cta-band__btn:hover { background:#000; transform:translateY(-2px); }
  
  /* === FOOTER === */
  .footer { background:var(--ink); color:#fff; padding:96px 32px 32px; }
  .footer__top {
    display:grid; grid-template-columns:1.2fr 2.2fr 1fr; gap:64px;
    max-width:1400px; margin:0 auto 64px; padding-bottom:64px;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .footer__brand { font-family:'Inter',sans-serif; }
  .footer__brand-eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:rgba(255,255,255,.55); margin-bottom:8px; font-weight:500;
    display:flex; align-items:center; gap:8px;
  }
  .footer__brand-eyebrow .heart { width:12px; height:11px; }
  .footer__brand-name {
    font-size:36px; font-weight:600; text-transform:lowercase; letter-spacing:-.01em;
    line-height:1; margin-bottom:18px;
  }
  .footer__intro { font-size:13px; line-height:1.7; color:rgba(255,255,255,.6); max-width:300px; }
  .footer__locations { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px 16px; }
  .foot-loc h4 { font-size:11px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:6px; }
  .foot-loc p { font-size:12px; line-height:1.5; color:rgba(255,255,255,.55); }
  .footer__infos h4 { font-size:11px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:14px; }
  .footer__infos a { display:block; font-size:13px; color:rgba(255,255,255,.65); padding:5px 0; }
  .footer__infos a:hover { color:var(--yellow); }
  .footer__bottom {
    max-width:1400px; margin:0 auto;
    display:flex; justify-content:space-between;
    font-size:11px; color:rgba(255,255,255,.4); letter-spacing:.1em;
  }
  
  /* === RESPONSIVE === */
  @media(max-width:900px) {
    .nav { padding:14px 20px; }
    /* Sur mobile : bouton "Réserver" en sticky bottom-center, plus impactant */
    .nav__cta {
      position:fixed; bottom:max(16px, env(safe-area-inset-bottom, 16px));
      left:50%; transform:translateX(-50%); z-index:99;
      padding:14px 36px; font-size:12px;
      letter-spacing:.22em; font-weight:600;
      border-radius:999px;
      box-shadow:0 10px 30px rgba(0,0,0,.28), 0 2px 6px rgba(0,0,0,.15);
    }
    /* Décaler la croix de fermeture pour éviter la barre Safari/Chrome mobile */
    .modal__close {
      top:max(60px, calc(env(safe-area-inset-top, 20px) + 40px));
    }
    .hero__content { padding:0 24px 56px; }
    .sec-num { font-size:120px; right:24px; top:-15px; }
    .manifesto { grid-template-columns:1fr; gap:48px; padding:80px 24px; }
    .manifesto__media-sm { left:auto; right:-20px; bottom:-30px; width:35%; border-width:6px; }
    .press { padding:64px 0 80px; }
    .press__item { flex:0 0 320px; padding:0 28px; }
    .press__logo { font-size:24px; }
    .press__quote { font-size:16px; }
    .restos { padding:80px 20px; }
    .restos__grid { grid-template-columns:1fr; gap:32px; }
    .foodporn { padding:80px 20px; }
    .foodporn__grid { grid-template-columns:1fr; gap:32px; }
    .coulisses { grid-template-columns:1fr; }
    .coulisses__text { padding:64px 24px; }
    .coulisses__media { height:320px; }
    .footer__top { grid-template-columns:1fr; gap:48px; padding-bottom:32px; margin-bottom:24px; }
    .footer__locations { grid-template-columns:1fr 1fr; }
    .footer__bottom { flex-direction:column; gap:8px; text-align:center; }
  }

  /* === MODAL RÉSERVATION === */
  .modal {
    position:fixed; inset:0; z-index:1000;
    background:rgba(0,0,0,.75);
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    display:flex; align-items:center; justify-content:center;
    padding:32px; opacity:0; pointer-events:none;
    transition:opacity .25s ease;
  }
  .modal.is-open { opacity:1; pointer-events:auto; }
  .modal__inner {
    background:#fff; max-width:1100px; width:100%; max-height:90vh;
    overflow-y:auto; position:relative; padding:64px 56px;
    transform:translateY(20px); transition:transform .3s ease;
  }
  .modal.is-open .modal__inner { transform:translateY(0); }
  .modal__close {
    position:fixed;
    top:max(20px, env(safe-area-inset-top, 20px));
    right:20px; z-index:1010;
    background:rgba(255,255,255,.96); border:0; border-radius:50%;
    cursor:pointer; box-shadow:0 4px 16px rgba(0,0,0,.15);
    width:48px; height:48px; font-size:24px; line-height:1;
    color:var(--ink); display:flex; align-items:center; justify-content:center;
    transition:transform .2s; font-weight:400;
  }
  .modal__close:hover { transform:rotate(90deg); }
  .modal__head { text-align:center; margin-bottom:48px; }
  .modal__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--accent-deep); font-weight:500; margin-bottom:14px;
    display:flex; align-items:center; justify-content:center; gap:10px;
  }
  .modal__eyebrow .heart { width:14px; height:13px; }
  .modal__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(36px, 4vw, 52px); line-height:1; letter-spacing:-.01em;
  }
  .modal__title em { color:var(--accent-deep); }
  .modal__grid {
    display:grid; grid-template-columns:repeat(3, 1fr); gap:20px;
  }
  .modal__card {
    display:flex; align-items:flex-start; gap:14px; padding:14px;
    background:var(--cream); transition:background .2s, transform .2s;
    text-decoration:none; color:inherit;
  }
  .modal__card:hover { background:var(--accent); transform:translateY(-2px); }
  .modal__card-img {
    flex:0 0 96px; width:96px; height:96px; object-fit:cover;
  }
  .modal__card-body { flex:1; min-width:0; }
  .modal__card h4 {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:22px; line-height:1; margin-bottom:6px;
  }
  .modal__card-concept {
    font-size:12px; color:var(--ink); margin-bottom:6px; line-height:1.35;
    font-style:italic;
  }
  .modal__card-addr {
    font-size:11px; color:var(--ink-soft); margin-bottom:8px; line-height:1.3;
  }
  .modal__card-cta {
    font-size:10px; letter-spacing:.2em; text-transform:uppercase;
    font-weight:600; color:var(--ink);
    border-bottom:2px solid var(--yellow); padding-bottom:2px;
  }
  @media(max-width:900px) {
    .modal { padding:0; }
    .modal__inner { padding:48px 20px; max-height:100vh; }
    .modal__grid { grid-template-columns:1fr; }
  }

  /* === AVIS GOOGLE (preuve sociale agrégée des 9 restos) === */
  .avis {
    background-color:var(--cream);
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    padding:96px 32px;
    text-align:center;
  }
  .avis__inner { max-width:900px; margin:0 auto; }
  .avis__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--ink-soft); font-weight:500; margin-bottom:32px;
    display:flex; align-items:center; justify-content:center; gap:10px;
  }
  .avis__eyebrow .heart { width:14px; height:13px; }
  .avis__score {
    display:flex; align-items:center; justify-content:center; gap:24px;
    margin-bottom:24px; flex-wrap:wrap;
  }
  .avis__num {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(80px, 12vw, 160px); line-height:.9;
    color:var(--yellow); letter-spacing:-.02em;
  }
  .avis__stars {
    display:inline-flex; gap:6px;
  }
  .avis__stars svg { width:36px; height:36px; display:block; }
  .avis__meta {
    font-size:clamp(16px, 2vw, 20px);
    color:var(--ink); font-weight:400;
    display:flex; align-items:center; justify-content:center; gap:10px;
    flex-wrap:wrap;
  }
  .avis__meta strong { font-weight:600; color:var(--ink); }
  .avis__google {
    font-family:'Inter',sans-serif;
    font-weight:600; font-size:1.05em; letter-spacing:-.005em;
  }
  @media(max-width:600px) {
    .avis { padding:64px 20px; }
    .avis__score { gap:16px; }
    .avis__stars svg { width:28px; height:28px; }
  }

  /* === INSTAGRAM (feed branché sur @mian_fan_officiel via Smash Balloon) === */
  .insta {
    padding:128px 32px;
    max-width:1400px; margin:0 auto;
    text-align:center;
  }
  .insta__head { margin-bottom:56px; }
  .insta__eyebrow {
    font-size:11px; letter-spacing:.32em; text-transform:uppercase;
    color:var(--accent-deep); font-weight:500; margin-bottom:16px;
    display:flex; align-items:center; justify-content:center; gap:10px;
  }
  .insta__eyebrow .heart { width:14px; height:13px; }
  .insta__title {
    font-family:'Cormorant',serif; font-style:italic; font-weight:500;
    font-size:clamp(40px, 6vw, 80px); line-height:1; letter-spacing:-.01em;
  }
  .insta__title em { color:var(--accent-deep); font-style:italic; }
  /* Wrapper du shortcode Smash Balloon */
  .insta__feed { margin:0 auto; }
  /* Cacher les éléments natifs du plugin qui ne collent pas au design Mian Fan */
  .insta #sb_instagram .sb_instagram_header,
  .insta #sb_instagram .sbi_header_text,
  .insta #sb_instagram #sbi_load,
  .insta #sb_instagram .sbi_load_btn,
  .insta #sb_instagram .sbi_follow_btn,
  .insta #sb_instagram .sbi_load,
  .insta #sb_instagram .sbi_caption_wrap,
  .insta #sb_instagram .sbi-screenreader,
  .insta #sbi_mod_error { display:none !important; }
  /* Sur prod, le JS Smash Balloon plante (conflit CookieYes) et :
     - n'applique pas les hauteurs aux items → height:0
     - garde la classe .sbi_new qui force opacity:0 (attend un fadeIn JS)
     On force carré + opacity:1 en CSS. */
  .insta #sb_instagram .sbi_item,
  .insta #sb_instagram .sbi_photo,
  .insta #sb_instagram .sbi_photo_wrap {
    aspect-ratio:1/1 !important;
    height:auto !important;
    min-height:0;
    width:100%;
  }
  .insta #sb_instagram .sbi_item,
  .insta #sb_instagram .sbi_new,
  .insta #sb_instagram .sbi_transition {
    opacity:1 !important;
    transition:none !important;
  }
  .insta #sb_instagram .sbi_photo {
    background-size:cover !important;
    background-position:center !important;
  }
  .insta #sb_instagram .sbi_photo img:not(.emoji) {
    width:100%; height:100%; object-fit:cover; display:block;
  }
  /* Hover photo : zoom léger comme partout sur la home */
  .insta #sb_instagram .sbi_photo_wrap,
  .insta #sb_instagram .sbi_item .sbi_photo {
    transition:transform .5s ease;
  }
  .insta #sb_instagram .sbi_item:hover .sbi_photo,
  .insta #sb_instagram .sbi_item:hover .sbi_photo_wrap { transform:scale(1.04); }
  .insta #sb_instagram .sbi_item { overflow:hidden; }
  /* CTA bouton noir custom (notre lien, pas celui du plugin) */
  .insta__cta {
    display:inline-flex; align-items:center; gap:12px;
    margin-top:56px;
    background:var(--ink); color:#fff;
    padding:18px 32px;
    font-size:12px; letter-spacing:.22em;
    text-transform:uppercase; font-weight:600;
    transition:transform .2s, background .2s;
  }
  .insta__cta:hover { background:#000; transform:translateY(-2px); }
  .insta__cta svg { width:18px; height:18px; }
  @media(max-width:900px) {
    .insta { padding:80px 20px; }
  }

  /* === FIX DIVI PARENT OVERRIDE === */
  /* Divi force h1/h2 et autres titres à #333 — on remet la couleur prévue */
  /* sur les sections à fond sombre. Sélecteurs doublés pour battre Divi en spécificité. */
  .hero .hero__title,
  .press .press__title,
  .ambient .ambient__quote,
  .foodporn .foodporn__title { color:#fff; }
  .hero .hero__title em,
  .press .press__title em,
  .foodporn .foodporn__title em { color:var(--yellow); }
  .ambient .ambient__quote em { color:var(--yellow); }
  /* Foodporn carrousel : noms des plats en blanc */
  .foodporn .dish__name { color:#fff; }
  .foodporn .dish__resto { color:var(--yellow); }
  /* Footer brand + headings */
  .footer .footer__brand-name { color:#fff; }
  .footer .foot-loc h4,
  .footer .footer__infos h4 { color:#fff; }
  /* Modal réservation : titre noir comme prévu (au cas où Divi le change) */
  .modal .modal__title { color:var(--ink); }
  .modal .modal__title em { color:var(--accent-deep); }
  /* CTA band : titre noir (fond jaune) — Divi le veut déjà en #333 donc OK, on confirme */
  .cta-band .cta-band__title { color:var(--ink); }
  /* Coulisses + Manifeste + Restos : titres en noir/accent (fond crème) — OK Divi */
  /* Avis : le gros chiffre 4,8 jaune */
  .avis .avis__num { color:var(--yellow); }
