/* La Maison — galerie photo. Grille alignée sur les rails du site : aucun scroll horizontal. */
.lmGalleryTeaser,.lmGalleryHero,.lmGalleryCollection,.lmGuruSection{width:100%;max-width:100%;min-width:0;overflow:clip}
.lmGalleryTeaser{padding:clamp(64px,7vw,110px) 0;background:var(--surface);border-top:1px solid var(--line)}
.lmGallerySectionHeading{max-width:720px;margin-bottom:38px}
.lmGallerySectionHeading h2{margin-bottom:16px}
.lmGallerySectionHeading>p:last-child{font-size:18px;line-height:1.7;color:var(--muted)}
.lmGalleryTeaserGrid,.lmGalleryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,26px);min-width:0;width:100%;max-width:100%;align-items:start}
.lmGalleryFigure{min-width:0;width:100%;max-width:100%;margin:0;overflow:hidden}
.lmGalleryFigure picture,.lmGalleryFigure img{display:block;width:100%;height:100%;max-width:100%}
.lmGalleryFigure picture{overflow:hidden;aspect-ratio:4/3;border-radius:clamp(17px,2.4vw,28px);background:#e4dfd3;box-shadow:0 10px 28px rgba(18,31,42,.075)}
.lmGalleryFigure img{object-fit:cover;object-position:center;transition:transform .32s ease}
.lmGalleryFigure:has(.lmGalleryMedia:hover) img,.lmGalleryTeaserGrid .lmGalleryFigure:hover img{transform:scale(1.035)}
.lmGalleryFigure figcaption{display:grid;align-content:start;gap:9px;padding:17px 4px 0;text-align:left;min-width:0}
.lmGalleryFigure figcaption strong{font-family:Georgia,'Times New Roman',serif;font-size:clamp(20px,2vw,27px);line-height:1.17;font-weight:400;color:var(--ink);text-wrap:balance}
.lmGalleryFigure figcaption span{font-size:14px;line-height:1.65;color:var(--muted);overflow-wrap:break-word}
.lmGalleryExplore{margin-top:36px;min-width:0;max-width:100%;white-space:normal}
.lmGalleryHero{padding:clamp(160px,16vw,210px) 0 72px;background:linear-gradient(145deg,#faf4e8,#fffdf7 70%);border-bottom:1px solid var(--line)}
.lmGalleryHero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(44px,7vw,86px);line-height:1.03;letter-spacing:-.045em;margin:0 0 24px;max-width:950px;color:var(--ink)}
.lmGalleryIntro{font-size:clamp(17px,2vw,21px);line-height:1.7;color:var(--muted);max-width:720px;margin:0 0 32px}
.lmGalleryFilters{display:flex;flex-wrap:wrap;align-items:center;gap:11px;max-width:100%}
.lmGalleryFilter{appearance:none;border:1px solid var(--gold-line);border-radius:999px;padding:12px 19px;color:var(--leather-deep);background:transparent;min-height:45px;max-width:100%;font-size:14px;font-weight:650;cursor:pointer}
.lmGalleryFilter[aria-pressed="true"]{background:var(--leather-deep);color:#fff;border-color:var(--leather-deep)}
.lmGalleryCollection{padding-top:clamp(42px,6vw,72px);padding-bottom:clamp(72px,8vw,124px)}
.lmGalleryFigure[hidden]{display:none!important}
.lmGalleryEmpty{font-size:16px;color:var(--muted);padding:30px 0}
.lmGalleryMedia{position:relative;display:block;overflow:hidden;border-radius:clamp(17px,2.4vw,28px);min-width:0;outline-offset:5px}
.lmGalleryMedia picture{border-radius:inherit}
.lmZoomGlyph{position:absolute;bottom:16px;right:16px;display:grid;place-items:center;width:40px;height:40px;color:#fff;background:#1c2638b8;border:1px solid #ffffff85;border-radius:50%;font-size:23px}
.lmGalleryDialog{padding:0;border:0;border-radius:14px;background:#161922;color:#fff;width:min(98vw,1300px);max-height:96dvh;overflow:hidden;box-shadow:0 24px 90px #0009}
.lmGalleryDialog::backdrop{background:#080c14dd}
.lmGalleryDialog img{display:block;max-width:100%;max-height:calc(96dvh - 74px);width:auto;height:auto;object-fit:contain;margin:auto}
.lmGalleryDialog p{padding:14px 20px;margin:0;color:#fff;font-size:14px;max-width:100%;overflow-wrap:break-word}
.lmGalleryClose{position:absolute;top:12px;right:12px;width:46px;height:46px;display:grid;place-items:center;border:1px solid #fff8;background:#111c2bcc;color:#fff;font-size:27px;cursor:pointer;border-radius:50%}
.lmGalleryDialog:focus-visible,.lmGalleryFilter:focus-visible,.lmGalleryMedia:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media(max-width:950px){.lmGalleryTeaserGrid,.lmGalleryGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){
 .lmGalleryTeaserGrid,.lmGalleryGrid{grid-template-columns:minmax(0,1fr);gap:26px}
 .lmGalleryHero{padding-top:154px;padding-bottom:42px}
 .lmGalleryFilters{gap:8px}
 .lmGalleryFilter{padding:11px 13px;min-height:44px;font-size:13px}
 .lmGalleryFigure picture{aspect-ratio:4/3;border-radius:20px}
 .lmGalleryFigure figcaption strong{font-size:23px}
}
@media(prefers-reduced-motion:reduce){.lmGalleryFigure img{transition:none!important;transform:none!important}}

.lmGalleryTeaserTile{display:block;min-width:0;max-width:100%;outline-offset:5px}.lmGalleryTeaserTile:focus-visible{outline:3px solid var(--gold);outline-offset:5px}

/* Correctif 31/10 : la collection garde les rails du site (.sectionShell), que la règle width:100% ci-dessus annulait. */
.lmGalleryCollection.sectionShell{width:min(1180px,calc(100% - 40px));max-width:none;margin-inline:auto}
@media(max-width:700px){.lmGalleryCollection.sectionShell{width:min(100% - 28px,1180px)}}


/* v20 — Restaurant Guru. Component from the project Stitch design, not a restyle of the official badge. */
.lmGuruSection{padding:24px 0 0;background:var(--paper);--font-serif:Georgia,'Times New Roman',serif;--font-sans:Arial,Helvetica,sans-serif}
.guru-content-left,.guru-text-block,.guru-secondary-left,.guru-secondary-texts{min-width:0}
.lmGuruSection .guru-heading,.lmGuruSection .guru-description{margin-top:0}
.lmGuruSection .guru-description{margin-bottom:0}
    .guru-section-wrapper {
      max-width: 1180px;
      margin: 0 auto 36px;
      padding: 0 20px;
    }

    .guru-card-main {
      background-color: var(--surface);
      border: 1px solid var(--line);
      border-radius: 4px;
      padding: 24px 32px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 32px;
      box-shadow: 0 2px 12px rgba(48, 39, 30, 0.03);
      position: relative;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }

    .guru-card-main:hover {
      border-color: rgba(228, 180, 79, 0.55);
      box-shadow: 0 4px 18px rgba(228, 180, 79, 0.08);
    }

    .guru-content-left {
      display: flex;
      align-items: center;
      gap: 28px;
      flex: 1;
    }

    /* Badge officiel : aucun filtre, proportions intactes */
    .guru-badge-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      text-decoration: none;
      border-radius: 4px;
      outline-offset: 4px;
      transition: transform 0.2s ease;
    }

    .guru-badge-link:hover {
      transform: translateY(-2px);
    }

    .guru-badge-link:focus-visible {
      outline: 2px solid var(--gold-ink);
    }

    .guru-badge-img {
      width: 115px;
      height: auto;
      display: block;
      object-fit: contain;
      /* Pas de redessin, ni filtre, ni altération */
    }

    .guru-text-block {
      max-width: 600px;
    }

    .guru-eyebrow {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--gold-ink);
      margin-bottom: 6px;
      display: block;
    }

    .guru-heading {
      font-family: var(--font-serif);
      font-size: 24px;
      font-weight: 400;
      color: var(--ink);
      line-height: 1.25;
      margin-bottom: 6px;
    }

    .guru-description {
      font-size: 14px;
      color: var(--muted);
      line-height: 1.45;
    }

    /* Action CTA */
    .guru-action-wrapper {
      flex-shrink: 0;
    }

    .guru-cta-button {
      display: inline-flex;
      gap: 0.35em;
      align-items: center;
      justify-content: center;
      min-height: 44px;
      padding: 10px 24px;
      font-family: var(--font-sans);
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 0.03em;
      text-decoration: none;
      color: var(--night);
      background-color: var(--gold);
      border: 1px solid rgba(128, 84, 17, 0.25);
      border-radius: 3px;
      cursor: pointer;
      outline-offset: 3px;
      transition: background-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
    }

    .guru-cta-button:hover {
      background-color: #d8a53e;
      color: var(--night);
      transform: translateY(-1px);
    }

    .guru-cta-button:focus-visible {
      outline: 2px solid var(--night);
    }

    /* =========================================================
       SECTION SECONDAIRE DISCRÈTE (Pour bas de galerie / avis)
       ========================================================= */
.variant-header-note {
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: var(--muted);
      margin-bottom: 12px;
      padding-bottom: 6px;
      border-bottom: 1px dashed var(--line);
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .guru-card-secondary {
      background: transparent;
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
      padding: 18px 8px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }

    .guru-secondary-left {
      display: flex;
      align-items: center;
      gap: 18px;
    }

    .guru-secondary-badge {
      width: 76px;
      height: auto;
      display: block;
      flex-shrink: 0;
    }

    .guru-secondary-texts .guru-eyebrow {
      font-size: 10px;
      margin-bottom: 2px;
    }

    .guru-secondary-texts .guru-heading {
      font-size: 18px;
      margin-bottom: 2px;
    }

    .guru-secondary-texts .guru-description {
      font-size: 13px;
    }

    .guru-cta-inline {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      min-height: 44px;
      padding: 0 12px;
      font-size: 13px;
      font-weight: 700;
      color: var(--gold-ink);
      text-decoration: none;
      outline-offset: 3px;
      transition: color 0.15s ease, transform 0.15s ease;
      white-space: nowrap;
    }

    .guru-cta-inline:hover {
      color: var(--ink);
      transform: translateX(2px);
    }

    .guru-cta-inline:focus-visible {
      outline: 2px solid var(--gold-ink);
    }

    /* Tablette (<= 768px) */
    @media (max-width: 768px) {
      .guru-section-wrapper {
        padding: 0 20px;
      }

      .guru-card-main {
        padding: 20px;
        gap: 20px;
      }

      .guru-content-left {
        gap: 20px;
      }

      .guru-badge-img {
        width: 100px;
      }

      .guru-heading {
        font-size: 21px;
      }

}

    /* Mobile standard (<= 640px / 390px) */
    @media (max-width: 640px) {
      .guru-section-wrapper {
        padding: 0 14px; /* marge 14px mobile respectée */
      }

      .guru-card-main {
        flex-direction: column;
        align-items: stretch;
        padding: 20px 16px;
        gap: 18px;
        text-align: left;
      }

      .guru-content-left {
        flex-direction: row;
        align-items: center;
        gap: 16px;
      }

      .guru-badge-img {
        width: 90px; /* 88-96px mobile respecté */
      }

      .guru-heading {
        font-size: 19px;
      }

      .guru-description {
        font-size: 13px;
      }

      .guru-cta-button {
        width: 100%;
        text-align: center;
      }

      .guru-card-secondary {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
      }

      .guru-cta-inline {
        padding: 8px 0;
        align-self: flex-start;
      }

}

    /* Très petits mobiles (<= 360px / 320px) */
    @media (max-width: 360px) {
      .guru-section-wrapper {
        padding: 0 12px;
      }

      .guru-content-left {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
      }

      .guru-badge-img {
        width: 88px;
      }

      .guru-heading {
        font-size: 17px;
      }

      .guru-description {
        font-size: 12px;
      }
    }

@media(prefers-reduced-motion:reduce){.lmGuruSection a,.guru-card-main{transition:none}.lmGuruSection a:hover{transform:none}}
