/* Animations et comportements (repris du code personnalisé Webflow) */
@keyframes mo-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.mo-strip { white-space: nowrap; overflow: hidden; }
.mo-strip-text { display: inline-block; white-space: pre; animation: mo-marquee 45s linear infinite; will-change: transform; }
@media (prefers-reduced-motion: reduce) { .mo-strip-text { animation: none; } }
.mo-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.mo-wi { display: inline-block; will-change: transform; }
.mo-photo { overflow: hidden; }
.mo-photo .mo-photo-img { will-change: transform; }
@media (hover: hover) and (min-width: 768px) {
  /* Le contenu glisse sans toucher à la grille : le titre garde sa largeur et ne repasse pas à la ligne */
  .mo-ev .mo-ev-date, .mo-ev .mo-ev-main { transition: translate .4s ease; }
  .mo-ev:hover .mo-ev-date, .mo-ev:hover .mo-ev-main { translate: 24px 0; }
  .mo-ev:hover .mo-ev-title { color: #F0A36B; }
}
.mo-social-icon { transition: color .25s ease, transform .25s ease; }
.mo-social-icon:hover { color: #B3261E; transform: translateY(-2px); }
.mo-btn-pill-light { transition: background-color .25s ease, color .25s ease; }
.mo-btn-pill.mo-btn-pill-light:hover { background-color: #F3EDE4; border-color: #F3EDE4; color: #E5483B; }
.mo-burger-line { transition: transform .6s cubic-bezier(.87,0,.13,1), background-color .4s ease; }
@media (max-width: 767px) {
  .mo-nav.mo-js { transition: background-color .4s ease, border-color .4s ease; }
  .mo-nav.mo-js.is-open { background-color: #1E1714; border-color: rgba(243,237,228,.15); }
  .mo-nav.mo-js .mo-logo-img { transition: filter .4s ease; }
  .mo-nav.mo-js.is-open .mo-logo-img { filter: invert(1) sepia(.15); }
  .mo-nav.mo-js .mo-burger { transition: border-color .4s ease; }
  .mo-nav.mo-js.is-open .mo-burger { border-color: #F3EDE4; }
  .mo-nav.mo-js.is-open .mo-burger-line { background-color: #F3EDE4; }
  .mo-nav.mo-js .mo-nav-links { display: flex !important; position: fixed; left: 0; right: 0; top: var(--mo-nav-h, 73px); height: calc(100vh - var(--mo-nav-h, 73px)); height: calc(100dvh - var(--mo-nav-h, 73px)); flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; margin-left: 0; padding: 24px 20px 32px; background: #1E1714; color: #F3EDE4; z-index: 49; visibility: hidden; clip-path: inset(0 0 100% 0); overflow-y: auto; }
  .mo-nav.mo-js.is-open .mo-nav-links { visibility: visible; clip-path: inset(0 0 0 0); }
  .mo-nav.mo-js .mo-nav-link { display: block; padding: 22px 0; border-bottom: 1px solid rgba(243,237,228,.15); color: #F3EDE4; font-family: Fraunces, serif; font-size: 40px; line-height: 1.1; letter-spacing: 0; text-transform: none; }
  .mo-nav.mo-js .mo-nav-social { display: flex; gap: 12px; margin-top: auto; padding-top: 32px; }
  .mo-nav.mo-js .mo-nav-social .mo-social-icon { color: #F3EDE4; }
  .mo-nav.is-open .mo-burger-line:first-child { transform: translateY(3.5px) rotate(45deg); }
  .mo-nav.is-open .mo-burger-line:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  body.mo-menu-open { overflow: hidden; }
}
.mo-ticket-paper { --s: 7px; -webkit-mask: conic-gradient(from 225deg at var(--s) 50%, #0000 90deg, #000 0) 0 0 / 51% calc(2 * var(--s)) repeat-y, conic-gradient(from 45deg at calc(100% - var(--s)) 50%, #0000 90deg, #000 0) 100% 0 / 51% calc(2 * var(--s)) repeat-y; mask: conic-gradient(from 225deg at var(--s) 50%, #0000 90deg, #000 0) 0 0 / 51% calc(2 * var(--s)) repeat-y, conic-gradient(from 45deg at calc(100% - var(--s)) 50%, #0000 90deg, #000 0) 100% 0 / 51% calc(2 * var(--s)) repeat-y; transition: transform .35s ease; }
.mo-ticket:hover .mo-ticket-paper { transform: translateY(-4px); }
@keyframes mo-ticket-in { from { opacity: 0; transform: translateY(40px); } }
.mo-ticket { animation: mo-ticket-in 1s cubic-bezier(.2,.9,.3,1.25) .4s both; }
@media (prefers-reduced-motion: reduce) { .mo-ticket { animation: none; } }
.mo-hero { height: calc(100vh - var(--mo-hero-top, 200px)); height: calc(100svh - var(--mo-hero-top, 200px)); min-height: 420px; }
@media (max-width: 767px) { .mo-hero { min-height: 360px; } }
.mo-burger { background: none; padding: 0; cursor: pointer; }
.mo-btn-pill.mo-btn-pill-light { border-color: #F3EDE4; }

/* Parallaxe du haut de page : l'image glisse sur un calque plus grand que le cadre (fonctionne aussi sur mobile, où le fond « cover » n'a pas de marge pour bouger) */
.mo-hero::before { content: ""; position: absolute; left: 0; right: 0; top: -15%; bottom: -15%; z-index: 0; background: inherit; background-position: 50% 50%; transform: translate3d(0, var(--mo-hero-y, 0), 0); will-change: transform; pointer-events: none; }

/* « Votre » manuscrit (Corinthia) posé sur le B de « Bonne table », qui s'écrit à l'arrivée */
.mo-giant-wrap { position: relative; display: inline-block; margin-bottom: 18px; }
.mo-giant-wrap .mo-giant { margin-bottom: 0; }
.mo-votre { position: absolute; left: -2.6%; bottom: 0; width: 18%; height: auto; overflow: visible; pointer-events: none; transform: rotate(-9.83deg); }

/* Page La carte : pensée d'abord pour le téléphone (QR code sur la table) */
.mo-tabs { position: sticky; top: var(--mo-nav-h, 69px); z-index: 40; background-color: #F3EDE4; border-bottom: 1px solid #D8CCBE; }
.mo-tabs-inner { display: flex; justify-content: center; gap: 32px; max-width: 1200px; margin: 0 auto; padding: 0 32px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.mo-tabs-inner::-webkit-scrollbar { display: none; }
.mo-tab { flex: none; padding: 16px 0 14px; border-bottom: 2px solid transparent; color: #6E625A; font-family: 'Hanken Grotesk', system-ui, sans-serif; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.mo-tab.is-active { color: #1E1714; border-bottom-color: #1E1714; }
@media (hover: hover) { .mo-tab:hover { color: #1E1714; } }
.mo-carte-today { padding-top: 72px; padding-bottom: 72px; }
.mo-carte { padding-top: 24px; padding-bottom: 120px; background-color: #F3EDE4; }
.mo-carte-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 72px; align-items: start; }
.mo-carte-photo { aspect-ratio: 4 / 5; margin-top: 64px; }
.mo-carte-note { margin-top: 32px; }
[id="menu-du-jour"], .mo-carte-group { scroll-margin-top: calc(var(--mo-nav-h, 69px) + 84px); }
@media (max-width: 991px) {
  .mo-carte-grid { gap: 48px; }
}
@media (max-width: 767px) {
  .mo-tabs-inner { justify-content: flex-start; gap: 24px; padding: 0 20px; }
  .mo-carte-today { padding-top: 40px; padding-bottom: 40px; }
  .mo-carte { padding-bottom: 72px; }
  .mo-carte-grid { grid-template-columns: 1fr; gap: 0; }
  .mo-carte-group { margin-top: 48px; }
  .mo-carte-photo { aspect-ratio: 4 / 3; margin-top: 48px; }
  .mo-menu-row { gap: 20px; padding-top: 16px; padding-bottom: 16px; }
  .mo-dish { font-size: 18px; }
  /* Menu du jour compact : on lit vite, à table */
  .mo-carte-today .mo-card-rail, .mo-carte-today .mo-frame-media { display: none; }
  .mo-carte-today .mo-card-body { padding-top: 24px; padding-bottom: 8px; }
  .mo-carte-today .mo-crumb { margin-bottom: 20px; }
  .mo-carte-today .mo-frame-title { font-size: 40px; }
  .mo-carte-today .mo-frame-sub { margin-bottom: 24px; font-size: 20px; }
  .mo-carte-today .mo-course { grid-template-columns: 1fr; row-gap: 6px; padding-top: 16px; padding-bottom: 16px; }
  .mo-carte-today .mo-course-label { margin-top: 0; }
  .mo-carte-today .mo-course-name { font-size: 21px; }
  .mo-carte-today .mo-course-info { margin-top: 20px; line-height: 1.7; }
}

/* Page Agenda */
.mo-agenda { padding-top: 96px; }
.mo-agenda-intro { max-width: 340px; }
@media (max-width: 767px) {
  .mo-agenda { padding-top: 56px; }
}

/* Infos / Réserver */
.mo-tel{color:inherit;text-decoration:none}
.mo-apps{padding:96px 0;background:#F3EDE4}
.mo-apps-grid{display:grid;grid-template-columns:3fr 2fr;gap:64px}
.mo-apps-block{padding-top:16px;border-top:1px solid #1E1714}
.mo-apps-title{margin:16px 0 32px;font-family:Fraunces,Georgia,serif;font-weight:400;font-size:36px;line-height:1.1;color:#1E1714;max-width:16ch}
.mo-apps-row{display:flex;flex-wrap:wrap;gap:12px}
.mo-app{display:inline-flex;align-items:center;gap:10px;padding:10px 18px 10px 12px;border:1px solid #1E1714;border-radius:999px;color:#1E1714;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:15px;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s}
.mo-app-icon{width:28px;height:28px;flex-shrink:0;stroke-width:2.2}
@media (hover:hover){.mo-app:hover{background:#1E1714;color:#F3EDE4}}
@media screen and (max-width:991px){.mo-apps-grid{grid-template-columns:1fr;gap:56px}}
@media screen and (max-width:767px){.mo-apps{padding:56px 0}.mo-apps-title{font-size:28px;margin-bottom:24px}.mo-app{font-size:14px;padding:8px 14px 8px 10px}.mo-app-icon{width:24px;height:24px}}
.mo-btn-solid.mo-resa-btn{background:#1E1714;color:#F3EDE4}
@media screen and (max-width:767px){.mo-frame-sub{line-height:1.15}}

/* Retours 14/10 : menu mobile, Infos, Réserver */
.mo-social-svg, .mo-social-svg path { fill: currentColor; }
@media (max-width: 767px) {
  .mo-nav.mo-js .mo-nav-social { flex-direction: column; align-items: flex-start; gap: 16px; }
  .mo-nav.mo-js .mo-nav-social .mo-follow-label { color: rgba(243,237,228,.6); }
  .mo-nav.mo-js .mo-nav-social .mo-socials { gap: 24px; }
  .mo-nav.mo-js .mo-nav-social .mo-social-icon { width: 36px; height: 36px; }
  .mo-nav.mo-js .mo-nav-social .mo-social-svg { width: 32px; height: 32px; }
}
.mo-btn-r{display:inline-block;padding:15px 26px;border:1px solid #1E1714;border-radius:12px;background-color:#1E1714;color:#F3EDE4;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:15px;font-weight:500;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .25s,color .25s}
.mo-btn-r.mo-btn-r-line{background-color:transparent;color:#1E1714}
@media (hover:hover){.mo-btn-r:hover{background-color:#E5483B;border-color:#E5483B;color:#F3EDE4}.mo-btn-r.mo-btn-r-line:hover{background-color:#1E1714;border-color:#1E1714}}
.mo-info-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:-24px;margin-bottom:56px}
.mo-btn-solid.mo-resa-btn{border-radius:12px}
.mo-partners{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;margin-bottom:12px}
.mo-partners-label{width:100%;margin:0 0 2px;font-family:'Hanken Grotesk',system-ui,sans-serif;color:#6E625A;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.mo-partner{display:inline-block;padding:6px 12px;border:1px solid #D8CCBE;border-radius:999px;font-family:'Hanken Grotesk',system-ui,sans-serif;color:#1E1714;font-size:14px;font-weight:600;letter-spacing:-.01em}
.mo-partner.mo-partner-more{color:#6E625A;letter-spacing:.1em}
.mo-panel-overlay{position:fixed;inset:0;z-index:90;background:rgba(30,23,20,.5);opacity:0;pointer-events:none;transition:opacity .35s ease}
.mo-panel{position:fixed;top:0;right:0;z-index:91;width:min(460px,100%);height:100vh;height:100dvh;overflow-y:auto;padding:32px 32px 40px;background:#F3EDE4;transform:translateX(100%);visibility:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s linear .45s}
body.mo-panel-open{overflow:hidden}
body.mo-panel-open .mo-panel-overlay{opacity:1;pointer-events:auto}
body.mo-panel-open .mo-panel{transform:none;visibility:visible;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.mo-panel-close{position:absolute;top:20px;right:20px;width:44px;height:44px;border:1px solid #1E1714;border-radius:50%;background:transparent;color:#1E1714;font-size:24px;line-height:1;cursor:pointer}
.mo-panel-title{margin:12px 0 12px;font-family:Fraunces,Georgia,serif;font-weight:400;font-size:44px;line-height:1.05;color:#1E1714}
.mo-form{display:flex;flex-direction:column;gap:18px;margin-top:32px}
.mo-field{display:flex;flex-direction:column;gap:6px}
.mo-field-label{font-family:'Hanken Grotesk',system-ui,sans-serif;color:#6E625A;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.mo-input{width:100%;padding:12px 14px;border:1px solid #D8CCBE;border-radius:8px;background:#FBF8F3;color:#1E1714;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:16px}
.mo-input:focus{outline:none;border-color:#1E1714}
.mo-textarea{resize:vertical;min-height:120px}
.mo-form-submit{align-self:flex-start;margin-top:6px}
.mo-form-note{margin:0;font-family:'Hanken Grotesk',system-ui,sans-serif;color:#6E625A;font-size:13px}
.mo-form-done{margin-top:32px}
@media (prefers-reduced-motion: reduce){.mo-panel,.mo-panel-overlay{transition:none}}
@media screen and (max-width:767px){.mo-info-actions{margin-top:-24px;margin-bottom:40px}.mo-panel{padding:24px 20px 32px}.mo-panel-title{font-size:36px;padding-right:48px}}
.mo-btn-solid.mo-resa-btn{background-color:#E5483B;color:#F3EDE4;transition:background-color .25s}
@media (hover:hover){.mo-btn-solid.mo-resa-btn:hover{background-color:#1E1714}}
.mo-info-note.mo-resa-note{margin-top:14px;margin-bottom:0}
.mo-resa-tipwrap{position:relative;display:inline-flex}
.mo-resa-tip{position:absolute;left:0;top:calc(100% + 14px);z-index:20;width:min(340px,calc(100vw - 80px));padding:18px 20px;border-radius:12px;background:#1E1714;color:#F3EDE4;box-shadow:0 12px 32px rgba(30,23,20,.25);opacity:0;transform:translateY(-6px);transition:opacity .25s ease,transform .25s ease}
.mo-resa-tip::before{content:"";position:absolute;left:28px;top:-7px;width:14px;height:14px;background:#1E1714;transform:rotate(45deg);border-radius:2px}
.mo-resa-tip.is-visible{opacity:1;transform:none}
.mo-resa-tip-title{margin:0 0 6px;font-family:Fraunces,Georgia,serif;font-size:22px;line-height:1.15}
.mo-resa-tip-text{margin:0;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:14px;line-height:1.5;color:rgba(243,237,228,.8)}

/* Apparition douce de l'image du haut de page (fondu + léger dézoom une fois l'image chargée) */
.mo-hero { background-image: none; }
.mo-hero::before { background: #2A0B10 url("../img/hero.jpg") 50% 50% / cover no-repeat; }
.mo-hero-wait .mo-hero::before { opacity: 0; scale: 1.08; }
.mo-hero-wait .mo-hero.is-loaded::before { opacity: 1; scale: 1; transition: opacity 1.4s ease, scale 2.4s cubic-bezier(.2,.7,.2,1); }
@media (prefers-reduced-motion: reduce) { .mo-hero-wait .mo-hero::before { opacity: 1; scale: 1; transition: none; } }

/* Boutons : Réserver en ligne plus grand, Contactez-nous en sombre */
.mo-btn-solid.mo-resa-btn { padding: 20px 34px; font-size: 18px; }
.mo-btn-r.mo-btn-r-line { background-color: #1E1714; color: #F3EDE4; }
@media (hover:hover) { .mo-btn-r.mo-btn-r-line:hover { background-color: #E5483B; border-color: #E5483B; color: #F3EDE4; } }
/* Mentions légales et crédits */
.mo-footer-legal{color:inherit;text-decoration:underline;text-underline-offset:2px;margin-left:6px}
.mo-legal-grid a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.mo-greige+.mo-greige{padding-top:0}
.mo-legal-intro{max-width:36rem;margin-top:24px;margin-bottom:40px}
