﻿/* Monquotidien Massira â€” Styles
   Palette: cream/off-white #f6efe7, accent #d49a6a, charcoal #2a2a2a, muted #6b6b6b */
:root{
  --bg:#f6efe7;--bg-2:#fff;--text:#1f1f1f;--muted:#6b6b6b;--accent:#d4a373;--accent-2:#b87944;--border:#e5d9c9;--shadow:0 10px 30px rgba(0,0,0,.06);--headings: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--ease:cubic-bezier(.2,.7,0,1);--dur:600ms
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Ubuntu,"Helvetica Neue",Arial,"Noto Sans",sans-serif;color:var(--text);background:var(--bg);letter-spacing:.01em;opacity:1}
.container{max-width:1100px;margin-inline:auto;padding:0 1rem}
.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#000;color:#fff;padding:.5rem .75rem;z-index:1000}

/* Header / Nav */
.site-header{position:sticky;top:0;z-index:999;background:rgba(246,239,231,.9);backdrop-filter:saturate(120%) blur(6px);border-bottom:1px solid var(--border);transition:transform .4s var(--ease)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1100px;margin:auto;padding:.6rem 1rem}
.brand{display:flex;align-items:center;gap:.6rem;color:inherit;text-decoration:none;font-weight:700}
.brand img{border-radius:50%;object-fit:cover}
.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:.5rem;padding:.4rem}
.nav-menu{display:flex;align-items:center;gap:1rem;list-style:none;margin:0;padding:0}
.nav-menu a{color:inherit;text-decoration:none;padding:.35rem .5rem;border-radius:.4rem;background:linear-gradient(currentColor,currentColor) left bottom/0 2px no-repeat;transition:background-size .3s var(--ease), color .3s}
.nav-menu a:focus,.nav-menu a:hover{background-color:var(--border);background-size:100% 2px}
.lang-switch button{border:1px solid var(--border);background:#fff;padding:.25rem .45rem;border-radius:.4rem;cursor:pointer}
.lang-switch button[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}

/* Hero */
.hero{display:grid;place-items:center;min-height:70vh;background:linear-gradient(180deg,rgba(246,239,231,.95),rgba(246,239,231,.55)),url('img/gallery-1.jpeg') center/cover no-repeat;border-bottom:1px solid var(--border);will-change:background-position}
.hero-inner{padding:4rem 1rem;text-align:center}
.hero h1{font-size:clamp(1.9rem,3.8vw,3.2rem);margin:.2rem 0 .6rem;letter-spacing:.2px;font-family:var(--headings)}
.hero p{color:var(--muted);font-weight:600;letter-spacing:.02em}
.cta-group{margin-top:1rem;display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}

/* Buttons */
.btn{--bg:var(--text);--fg:#fff;display:inline-block;padding:.7rem 1rem;border-radius:.6rem;text-decoration:none;color:var(--fg);background:var(--bg);border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,.06);transition:transform .15s var(--ease),box-shadow .25s var(--ease),background .2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.12)}
.btn:focus{outline:3px solid var(--accent);outline-offset:2px}
.btn { position:relative; overflow:hidden }
.btn .ripple{position:absolute;border-radius:999px;transform:scale(0);animation:ripple .6s linear;background:rgba(255,255,255,.45)}
@keyframes ripple{to{transform:scale(12);opacity:0}}
.btn-primary{--bg:var(--text)}
.btn-accent{--bg:var(--accent)}
.btn-outline{--bg:transparent;--fg:var(--text);border-color:var(--text)}
.btn-secondary{--bg:#fff;--fg:var(--text);border-color:var(--border)}
.btn-small{padding:.45rem .7rem;font-size:.9rem}

/* Sections */
.section{padding:3.2rem 0}
.section h2{font-size:clamp(1.5rem,3vw,2.2rem);margin:0 0 1rem;font-family:var(--headings);position:relative}
.section h2::after{content:"";position:absolute;left:0;bottom:-6px;height:6px;width:0;background:linear-gradient(90deg,var(--accent),transparent);border-radius:6px;transition:width .8s var(--ease)}
.reveal.in-view .section h2::after, .reveal.in-view h2::after{width:120px}
.about-grid{display:grid;grid-template-columns:1fr;gap:.7rem}
.hours{margin-top:1rem;border:1px dashed var(--border);padding:1rem;border-radius:.6rem;background:#fff}
.hours .btn{margin-top:.4rem}
.about-intro{margin:1rem 0 1.2rem;background:#fff;border:1px solid var(--border);border-radius:.8rem;box-shadow:var(--shadow);padding:1rem}
.about-intro p{margin:.4rem 0}

/* Menu */
.menu-header{display:flex;flex-direction:column;gap:.4rem}
.menu-note{color:var(--muted)}
.menu-controls{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}
.menu-controls{position:relative}
.chip-indicator{position:absolute;left:0;bottom:-2px;height:3px;width:0;background:var(--accent);border-radius:3px;transition:transform .35s var(--ease), width .35s var(--ease)}
.menu-controls.sticky{position:sticky;top:64px;background:linear-gradient(180deg, rgba(246,239,231,1), rgba(246,239,231,0.9));padding:.5rem .5rem;border:1px solid var(--border);border-radius:.7rem;z-index:5}
.chip{padding:.4rem .7rem;border:1px solid var(--border);border-radius:2rem;background:#fff;cursor:pointer;transition:transform .15s var(--ease), box-shadow .2s var(--ease)}
.chip.is-active,.chip:focus{border-color:var(--text);box-shadow:0 2px 0 rgba(0,0,0,.08);transform:translateY(-1px)}
.menu-view-toggle{display:flex;gap:.4rem;margin:.4rem 0 1rem}
.toggle-btn{border:1px solid var(--border);background:#fff;border-radius:.6rem;padding:.4rem .7rem;cursor:pointer}
.toggle-btn.is-active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(212,163,115,.15)}
.menu-featured{display:grid;grid-template-columns:repeat(12,1fr);gap:.7rem;margin:.4rem 0 1.2rem}
.cat-card{grid-column:span 6;position:relative;display:block;border:1px solid var(--border);border-radius:.8rem;overflow:hidden;background:#fff;cursor:pointer;padding:0}
.cat-card img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9;display:block;filter:saturate(105%)}
.cat-card span{position:absolute;left:.7rem;bottom:.6rem;background:rgba(255,255,255,.92);padding:.2rem .5rem;border-radius:.4rem;border:1px solid var(--border);font-weight:600}
.cat-card:hover img{transform:scale(1.02);transition:transform .4s ease}
.menu-tools{display:flex;align-items:center;gap:.8rem;justify-content:space-between;margin:.6rem 0 1rem}
.search{display:flex;align-items:center;gap:.4rem;padding:.35rem .6rem;border:1px solid var(--border);background:#fff;border-radius:.6rem;flex:1}
.search input{border:0;outline:0;font:inherit;width:100%;background:transparent}
.menu-count{color:var(--muted)}
.menu-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
.empty-state{grid-column:span 12;background:#fff;border:1px solid var(--border);border-radius:.8rem;padding:1rem;box-shadow:var(--shadow);color:var(--muted)}
.menu-card{grid-column:span 12;border:1px solid var(--border);border-radius:1rem;box-shadow:var(--shadow);background:linear-gradient(180deg,#fff,#fff);overflow:hidden;transform:translateY(6px);opacity:0;transition:transform .5s var(--ease),opacity .6s var(--ease)}
.menu-card.appear{transform:translateY(0);opacity:1}
.menu-card .overlay{position:absolute;inset:auto .6rem .6rem .6rem;display:flex;gap:.4rem}
.menu-card .overlay .btn{padding:.4rem .6rem}
.menu-card .media{position:relative}
.menu-card .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.25));opacity:0;transition:opacity .3s}
.menu-card:hover .media::after{opacity:1}
.menu-card .media{position:relative;height:160px;background:#eee}
.menu-card .media img{width:100%;height:100%;object-fit:cover;display:block}
.menu-card .body{display:grid;grid-template-columns:1fr auto;gap:.4rem;align-items:start;padding:1rem}
.menu-card h3{margin:.1rem 0;font-size:1.1rem}
.menu-card p{margin:0;color:var(--muted)}
.menu-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.12)}
.badge{display:inline-block;font-size:.75rem;padding:.15rem .45rem;border:1px solid var(--border);border-radius:.4rem;background:#fff;color:var(--muted)}
.price{font-weight:700;color:var(--accent-2);align-self:start}
.menu-actions{margin-top:1rem;display:flex;gap:.7rem;align-items:center}
.menu-source{color:var(--muted)}

/* Pro Menu Layout */
.menu-pro{margin:1rem 0}
.menu-layout{display:grid;grid-template-columns:260px 1fr;gap:1rem}
.menu-sidebar{position:sticky;top:88px;align-self:start;border:1px solid var(--border);background:#fff;border-radius:.8rem;padding:.6rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.4rem}
.menu-sidebar button{display:flex;justify-content:space-between;gap:.6rem;align-items:center;border:1px solid var(--border);background:#fff;border-radius:.6rem;padding:.45rem .6rem;cursor:pointer}
.menu-sidebar button[aria-current="true"]{border-color:var(--accent);box-shadow:0 0 0 2px rgba(212,163,115,.15)}
.menu-content{display:grid;gap:1.2rem}
.menu-section{background:#fff;border:1px solid var(--border);border-radius:.8rem;box-shadow:var(--shadow);padding:1rem}
.menu-section h3{margin:.2rem 0 1rem;font-family:var(--headings)}
.pro-item{display:grid;grid-template-columns:1fr auto;gap:.35rem;align-items:start;padding:.6rem;border-radius:.5rem}
.pro-item + .pro-item{border-top:1px dashed var(--border)}
.pi-row{display:flex;align-items:baseline;gap:.6rem}
.pi-name{font-weight:600}
.pi-dots{flex:1 1 auto;min-width:40px;height:1px;background-image: radial-gradient(currentColor 1px, transparent 1px);background-size:6px 1px;background-repeat:repeat-x;background-position: left center;opacity:.35}
.pi-price{font-weight:700;color:var(--accent-2)}
.pi-desc{grid-column:1 / -1;color:var(--muted)}
.pi-badges{display:flex;gap:.4rem}
.pi-badge{font-size:.75rem;padding:.15rem .45rem;border:1px solid var(--border);border-radius:.4rem;background:#fff;color:var(--muted)}
.pi-actions{display:flex;gap:.4rem}
.fav{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:.4rem;padding:.2rem .45rem;cursor:pointer}
.fav.active{color:#c33;border-color:#c33}
.menu-pro-actions{display:flex;gap:.6rem;align-items:center;margin-top:.6rem}

@media(max-width:960px){
  .menu-layout{grid-template-columns:1fr}
  .menu-sidebar{position:relative;top:0;order:2}
}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:.6rem}
.gallery-grid figure{grid-column:span 6;margin:0;position:relative;border-radius:.6rem;overflow:hidden;border:1px solid var(--border);background:#fff}
.gallery-grid img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;transition:transform .5s var(--ease)}
.gallery-grid figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.12));opacity:0;transition:opacity .3s}
.gallery-grid figure:hover img{transform:scale(1.04)}
.gallery-grid figure:hover::after{opacity:1}
.gallery-credit{color:var(--muted);margin-top:.6rem}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;gap:.6rem;padding:1rem}
.lightbox.open{display:flex}
.lightbox img{max-width:90vw;max-height:85vh;border-radius:.4rem}
.lightbox-close,.lightbox-prev,.lightbox-next{position:relative;background:#fff;border:none;border-radius:.4rem;padding:.4rem .6rem;cursor:pointer}

/* Reviews */
.reviews-slider{display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow:hidden;border-radius:.8rem;border:1px solid var(--border);background:#fff}
.review{padding:1rem 1.2rem}
.review blockquote{margin:0 0 .4rem;font-weight:600}
.reviews-actions{margin-top:.6rem}
.reviews-progress{height:3px;background:#eee;border-radius:2px;overflow:hidden;margin-top:.5rem}
.reviews-progress .bar{height:100%;width:0;background:var(--accent);transition:width 5s linear}

/* Contact */
.contact-card{display:block;background:#fff;border:1px solid var(--border);padding:1rem;border-radius:.8rem;box-shadow:var(--shadow)}
.contact-actions{margin:.6rem 0;display:flex;gap:.6rem;flex-wrap:wrap}
.social{display:flex;gap:.6rem}
.icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);border-radius:.5rem;color:var(--text);background:#fff}
.map-wrap{margin-top:1rem;display:grid;gap:.6rem}
.map-cta{justify-self:start}
.locations{margin:1rem 0 1.2rem}
.locations h3{margin:.2rem 0 1rem}
.locations-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
.location-card{grid-column:span 12;background:#fff;border:1px solid var(--border);border-radius:.8rem;box-shadow:var(--shadow);padding:1rem}
.location-card h4{margin:.2rem 0 .2rem;font-size:1.05rem}
.location-card .verify{color:var(--muted);font-size:.9rem;margin-left:.25rem}
@media(min-width:720px){.location-card{grid-column:span 4}}

/* Footer */
.site-footer{border-top:1px solid var(--border);background:linear-gradient(180deg,#fff,#faf6f1)}
.footer-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.2rem;padding:2rem 0}
.footer-grid > :nth-child(1){grid-column:span 12}
.footer-grid > nav{grid-column:span 6;display:flex;gap:.7rem;flex-wrap:wrap}
.footer-grid > :nth-child(3){grid-column:span 6}
.copyright{border-top:1px solid var(--border);padding:.8rem 0;color:var(--muted)}
.cookie{position:fixed;bottom:.6rem;left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);padding:.6rem .8rem;border-radius:.6rem;display:none}

/* Floating actions */
.fab-bar{position:fixed;inset:auto 1rem 1rem 1rem;display:flex;gap:.6rem;justify-content:center;background:rgba(255,255,255,.9);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:.8rem;padding:.4rem;box-shadow:var(--shadow)}
@media(min-width:840px){.fab-bar{display:none}}

/* Utilities */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.stagger > *{opacity:0;transform:translateY(8px);transition:opacity .6s var(--ease), transform .6s var(--ease);transition-delay:var(--delay,0ms)}
.reveal.in-view .stagger > *{opacity:1;transform:none}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .8s var(--ease), transform .8s var(--ease)}
.reveal.in-view{opacity:1;transform:none}

/* Responsive */
@media (max-width: 920px){
  .nav-toggle{display:inline-flex}
  .nav-menu{position:absolute;right:1rem;top:64px;background:#fff;border:1px solid var(--border);border-radius:.6rem;box-shadow:var(--shadow);padding:.4rem;display:none;flex-direction:column;align-items:stretch;min-width:220px}
  .nav-menu.open{display:flex}
}
@media (min-width: 600px){
  .about-grid{grid-template-columns:repeat(3,1fr)}
  .menu-card{grid-column:span 6}
  .gallery-grid figure{grid-column:span 4}
  .footer-grid > :nth-child(1){grid-column:span 6}
}
@media (min-width: 960px){
  .menu-card{grid-column:span 4}
  .gallery-grid figure{grid-column:span 3}
  .footer-grid > :nth-child(1){grid-column:span 4}
  .footer-grid > nav{grid-column:span 4}
  .footer-grid > :nth-child(3){grid-column:span 4}
}

/* Print (PDF menu) */
@media print{
  body{background:#fff}
  header, .hero, #about, #gallery, #reviews, #contact, footer{display:none}
  #menu{display:block}
  .menu-card{page-break-inside:avoid}
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  *{animation:none !important;transition:none !important}
}
/* Enhanced footer */
.site-footer{border-top:1px solid var(--border);background:linear-gradient(180deg,#fff,#faf6f1)}
.footer-grid.enhanced{grid-template-columns:repeat(12,1fr);gap:1rem;padding:1.6rem 0}
.f-brand{grid-column:span 12}
.f-links{grid-column:span 6;display:flex;gap:.7rem;flex-wrap:wrap}
.f-contacts{grid-column:span 6}
.f-social{margin-top:.5rem;display:flex;gap:.4rem}
@media(min-width:960px){.f-brand{grid-column:span 6}.f-links{grid-column:span 3}.f-contacts{grid-column:span 3}}


.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;padding:1rem;z-index:1000}
.modal[aria-hidden='false'],.modal.open{display:flex}
.modal-dialog{background:#fff;border:1px solid var(--border);border-radius:.8rem;max-width:720px;width:100%;max-height:85vh;overflow:auto;padding:1rem;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.modal-close{position:sticky;top:0;float:right;border:none;background:#fff;border-radius:.4rem;padding:.3rem .5rem}
.modal-sub{margin:.8rem 0 .2rem}
.modal-updated{color:var(--muted)}

