/* Chez Boom — yellow billboard retro. Tokens: bg #ffe845, ink #000, cards #fff/#fbfaf2, borders 1.5px #000 */
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#ffe845}
body{font-family:'Archivo',sans-serif;color:#000;font-size:16px;letter-spacing:-0.011em;line-height:1.4}
a{color:#000;text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
button{font-family:'Archivo',sans-serif}
.bagel{font-family:'Bagel Fat One',cursive;letter-spacing:-0.02em}
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(16px,4vw,32px)}
.wrap-narrow{max-width:1100px;margin:0 auto;padding:0 clamp(16px,4vw,32px);width:100%}

.ticker{background:#000;color:#fff;text-align:center;padding:9px 16px;font-size:14px}
@media(max-width:640px){.ticker{display:none}}

/* Header */
.cb-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;position:sticky;top:0;z-index:30;background:#ffe845;transition:transform .28s ease}
.cb-head.hd-hide{transform:translateY(-100%)}
.cb-logo{font-family:'Bagel Fat One',cursive;font-size:26px;letter-spacing:-0.02em;white-space:nowrap}
.cb-logo:hover{text-decoration:none}
.cb-nav{display:flex;gap:16px 28px;font-size:18px}
.cb-right{display:flex;gap:12px;align-items:center}
.cb-lang{background:none;border:1.5px solid #000;border-radius:10px;padding:10px 16px;font-size:16px;cursor:pointer;color:#000;display:inline-block}
.cb-lang:hover{text-decoration:none;background:rgba(0,0,0,0.06)}
.cb-cross{border:1.5px solid #000;color:#000;border-radius:10px;padding:10px 18px;font-size:16px;white-space:nowrap;display:inline-block}
.cb-cross:hover{text-decoration:none;background:rgba(0,0,0,0.06)}
.cb-burger{background:#000;border:none;border-radius:10px;color:#ffe845;font-size:17px;line-height:1;cursor:pointer;padding:11px 14px;display:none}
.cb-drop{display:none;position:fixed;left:14px;right:14px;top:84px;z-index:40;background:#000;border-radius:20px;padding:10px;flex-direction:column;max-height:calc(100vh - 110px);overflow:auto}
.cb-drop a{color:#fff;font-size:20px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,0.16)}
.cb-drop a:last-child{border-bottom:none}
.cb-drop a.team{color:#ffe845}
@media(max-width:860px){
  .cb-nav,.cb-team{display:none}
  .cb-burger{display:block}
  .cb-drop.open{display:flex}
}

/* Hero */
.cb-hero{text-align:center;padding:clamp(32px,6vw,60px) 0 40px 0;display:flex;flex-direction:column;align-items:center;gap:28px;position:relative}
.cb-hero.has-video{padding:clamp(60px,10vw,110px) 0 70px 0;overflow:hidden;border-radius:30px}
.cb-hero.has-video>*{position:relative;z-index:1}
.cb-hero.has-video::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 55% 60% at 50% 50%,rgba(255,232,69,0.92) 0%,rgba(255,232,69,0.75) 45%,rgba(255,232,69,0) 100%)}
.cb-hero video.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;background:#ffe845}
@media(prefers-reduced-motion:reduce){.cb-hero video.bg{display:none}}
.cb-hero .name{font-family:'Bagel Fat One',cursive;font-size:clamp(58px,11vw,120px);line-height:1.02;letter-spacing:-0.028em}
.cb-hero .pill{background:#000;color:#fff;border-radius:9999px;padding:12px 38px;font-size:27px;letter-spacing:0.05em;transform:rotate(-2deg)}
.cb-hero .sub{font-size:clamp(26px,4vw,41px);line-height:1.1;max-width:900px;text-wrap:pretty}
.btn{background:#000;color:#fff;border:none;border-radius:14px;padding:15px 30px;font-size:18px;letter-spacing:-0.011em;cursor:pointer;display:inline-block}
.btn:hover{text-decoration:none;opacity:0.85}
.btn-sm{padding:12px 20px;font-size:16px;border-radius:14px}
.ghost{border:1.5px solid #000;color:#000;border-radius:10px;padding:12px 20px;font-size:16px;display:inline-block}
.ghost:hover{text-decoration:none;background:rgba(0,0,0,0.06)}

/* Sections */
.sec{padding:60px 0 0 0}
.sec80{padding:80px 0 0 0}
.sec-h{font-size:clamp(36px,6vw,61px);line-height:0.9;letter-spacing:-0.011em;margin:0}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px;flex-wrap:wrap}
.chip{background:#ffe845;border:1.5px solid #000;border-radius:6px;padding:10px 16px;font-size:16px;font-weight:500;letter-spacing:0.02em}

/* Menu cards */
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.dish{background:#fbfaf2;border:1.5px solid #000;border-radius:30px;padding:24px;display:flex;flex-direction:column;gap:14px;min-width:0;position:relative}
.dish.fresh{background:#fff}
.dish .badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:#ffe845;border:1.5px solid #000;border-radius:6px;padding:6px 12px;font-size:14px;font-weight:500;letter-spacing:0.05em;white-space:nowrap}
.dish .ph{height:180px;border-radius:20px;overflow:hidden;background:#eee9da}
.dish .ph img{width:100%;height:100%;object-fit:cover;display:block}
.dish .nm{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.dish .nm .n{font-size:24px}
.dish .nm .p{font-family:'Bagel Fat One',cursive;font-size:27px;white-space:nowrap}
.dish .ds{font-size:15px;opacity:0.65;line-height:1.3}
.roti{background:#fff;border:1.5px solid #000;border-radius:30px;padding:14px 24px 14px 14px;display:flex;gap:12px 20px;align-items:center;flex-wrap:wrap;justify-content:center;text-align:center}
.roti img{width:64px;height:64px;object-fit:cover;border-radius:16px;border:1.5px solid #000;display:block}
.roti .n{font-size:24px}
.roti .p{font-family:'Bagel Fat One',cursive;font-size:27px}
.roti .ds{font-size:15px;opacity:0.65}

/* Full menu (photo of the board) */
.menu-photo{background:#fff;border:1.5px solid #000;border-radius:30px;padding:16px 32px 16px 16px;margin:20px auto 0;width:fit-content;max-width:100%;display:flex;align-items:center;justify-content:center;gap:16px 28px;flex-wrap:wrap;text-align:left}
.menu-photo img{width:88px;height:118px;object-fit:cover;border:1.5px solid #000;border-radius:16px;display:block;background:#fbfaf2;cursor:pointer}
.menu-photo .t{display:flex;flex-direction:column;gap:6px;max-width:420px}
.menu-photo .n{font-size:24px}
.menu-photo .ds{font-size:15px;opacity:0.65;line-height:1.3}
.menu-photo .ghost{align-self:flex-start;margin-top:6px;cursor:pointer;font-family:'Archivo',sans-serif;background:none}
dialog.lb{border:none;background:rgba(0,0,0,0.9);width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;padding:0;display:none;align-items:center;justify-content:center;cursor:pointer}
dialog.lb[open]{display:flex}
body:has(dialog.lb[open]){overflow:hidden}
dialog.lb::backdrop{background:transparent}
dialog.lb img{max-width:min(94vw,640px);max-height:90vh;max-height:88dvh;width:auto;height:auto;object-fit:contain;border-radius:20px;border:1.5px solid #000;background:#fff}
dialog.lb .x{position:fixed;top:14px;right:16px;background:#ffe845;border:1.5px solid #000;border-radius:10px;font-size:20px;line-height:1;padding:9px 12px;cursor:pointer}

/* Menu du jour */
.mdj{background:#fbfaf2;border:1.5px solid #000;border-radius:30px;padding:clamp(24px,4vw,48px);display:flex;flex-wrap:wrap;gap:40px;align-items:center;justify-content:space-between;position:relative}
.mdj .flag{position:absolute;top:-22px;right:48px;background:#ffe845;border:1.5px solid #000;border-radius:36px;padding:12px 22px;font-size:18px;transform:rotate(4deg)}
.mdj .l{display:flex;flex-direction:column;gap:18px}
.mdj .chips{display:flex;flex-wrap:wrap;gap:10px}
.mdj .chips span{background:#ffe845;border:1.5px solid #000;border-radius:6px;padding:8px 14px;font-size:16px}
.mdj .ds{font-size:18px;line-height:1.3;opacity:0.75;max-width:520px}
.mdj .r{display:flex;flex-direction:column;align-items:center;gap:16px}
.mdj .r img{width:190px;height:190px;object-fit:cover;border-radius:50%;border:1.5px solid #000;display:block}
.mdj .price{font-family:'Bagel Fat One',cursive;font-size:clamp(60px,8vw,96px);line-height:1;text-align:center}
.mdj .price small{font-size:48px}

/* About */
.about{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:40px;align-items:center}
.about img{width:100%;border:1.5px solid #000;border-radius:30px;display:block;object-fit:cover;aspect-ratio:4/5;object-position:60% 50%}
.about .txt{display:flex;flex-direction:column;gap:20px}
.about .big{font-size:22px;line-height:1.35;text-wrap:pretty}

/* Gallery */
.ggrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.ggrid a img{height:260px;width:100%;border:1.5px solid #000;border-radius:30px;object-fit:cover;display:block;background:#000}
.gvids{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}
.gvids video,.ggrid video{flex:1 1 160px;max-width:300px;min-width:0;width:100%;aspect-ratio:9/16;height:auto;object-fit:cover;border:1.5px solid #000;border-radius:30px;display:block;background:#000}
.ggrid a{display:block}
/* index gallery strip: horizontal scroll, every item at its natural aspect (nothing cropped) */
.gstrip{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;padding-bottom:6px}
.gstrip::-webkit-scrollbar{display:none}
.gstrip video{height:320px;width:auto;aspect-ratio:9/16;flex:0 0 auto;scroll-snap-align:start;border:1.5px solid #000;border-radius:30px;object-fit:cover;display:block;background:#000}
.gstrip a{flex:0 0 auto;display:block;scroll-snap-align:start}
.gstrip a img{height:320px;width:auto;max-width:86vw;border:1.5px solid #000;border-radius:30px;object-fit:cover;display:block}
@media(max-width:600px){.gstrip video,.gstrip a img{height:260px}}

/* Journal */
.jgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.jcard{background:#fff;border:1.5px solid #000;border-radius:30px;padding:28px;display:flex;flex-direction:column;gap:14px;min-width:0}
.jcard .cat{font-size:13px;font-weight:500;letter-spacing:0.1em;opacity:0.55}
.jcard .t{font-size:24px;line-height:1.1;text-wrap:pretty}
.jcard .d{font-size:15px;opacity:0.65}
.jcard .more{font-size:15px;border-bottom:1.5px solid #000;align-self:start;margin-top:auto}
.jcard .more:hover{text-decoration:none;opacity:0.7}

/* Find us / contact */
.find{background:#fff;border:1.5px solid #000;border-radius:30px;overflow:hidden;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.find .fl{padding:40px;display:flex;flex-direction:column;gap:16px;justify-content:center}
.find .fh{font-size:clamp(30px,4.5vw,41px);line-height:1}
.find .map{min-height:340px;border-left:1.5px solid #000;background:#fbfaf2;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:0.6}
.cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:20px;padding:80px 0}
.ccard{background:#fff;border:1.5px solid #000;border-radius:30px;padding:clamp(22px,4vw,32px);display:flex;flex-direction:column;gap:16px}
.ccard .ch{font-size:clamp(30px,4.5vw,41px);line-height:1}
.ccard .row{display:flex;justify-content:space-between;border-bottom:1px solid #000;padding-bottom:10px;font-size:18px;gap:12px}
.ccard .row b{font-weight:500}
.ccard .row.off{border-bottom:none;opacity:0.6}
.ccard .tel{font-size:27px}
.ccard .note{font-size:15px;opacity:0.65;line-height:1.35}

/* Team bridge + footer */
.bridge{display:block;background:#000}
.bridge:hover{text-decoration:none;opacity:0.92}
.bridge .in{max-width:1280px;margin:0 auto;padding:48px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.bridge img{width:76px;height:auto;flex-shrink:0}
.bridge .k{font-size:14px;color:#ffe845}
.bridge .t{font-family:'Anton',sans-serif;font-size:clamp(28px,4.5vw,44px);line-height:1.05;color:#fff;text-transform:uppercase}
.bridge .go{font-size:18px;color:#ffe845}
.cb-foot{background:#ffe845}
.cb-foot .in{max-width:1280px;margin:0 auto;padding:28px 32px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px}
.cb-foot .lg{font-family:'Bagel Fat One',cursive;font-size:18px}
.cb-foot .dim{opacity:0.6}
.cb-foot.black{background:#000;color:#fff}
.cb-foot a.dg{display:inline-flex;align-items:center;gap:10px;line-height:1.2}
.cb-foot a.dg img{width:36px;height:36px;border-radius:50%;border:1.5px solid #000}
.cb-foot.black a.dg{color:#fff}
.cb-foot.black a.dg img{border-color:#fff}
.cb-foot a.dg b{font-weight:600}
.cb-foot .partners{display:flex;align-items:flex-start;gap:28px;flex-wrap:wrap}
.cb-foot .partners a.dg{margin-top:-10px}
.cb-foot a[href^="tel:"]{white-space:nowrap}
@media(max-width:640px){
  .cb-foot .partners{display:grid;grid-template-columns:1fr auto;gap:20px;width:100%;align-items:center}
  .cb-foot .partners a.dg{margin-top:0}
  .cb-foot a.dg{flex-direction:column;align-items:flex-start;gap:8px;justify-self:end}
  .cb-foot a.dg b{font-weight:400;font-size:13px;opacity:.7}
}

/* Article pages */
.page-head{padding:clamp(28px,5vw,56px) 0 32px 0}
.page-title{font-size:clamp(44px,9vw,90px);line-height:0.95;letter-spacing:-0.011em;margin:0}
.page-sub{font-size:16px;margin-top:14px;opacity:0.75;max-width:560px}
.art{background:#fff;border:1.5px solid #000;border-radius:30px;padding:clamp(24px,5vw,56px);margin-bottom:24px}
.art .cat{font-size:13px;font-weight:500;letter-spacing:0.1em;opacity:0.55;margin-bottom:14px}
.art h1{font-size:clamp(28px,4.5vw,48px);line-height:1.05;letter-spacing:-0.011em;margin:0 0 24px 0;text-wrap:pretty;font-weight:400}
.art .body{max-width:720px;font-size:17px;line-height:1.55}
.art .body p{margin:0 0 16px 0}
.art .body h2{font-size:24px;line-height:1.1;margin:30px 0 14px 0;font-weight:500}
.art .body h3{font-size:19px;line-height:1.2;margin:22px 0 6px 0;font-weight:500}
.art .body ul{margin:0 0 16px 0;padding-left:20px}
.art .body li{margin-bottom:6px}

/* Short pages: pin footer to bottom */
body.page{display:flex;flex-direction:column;min-height:100vh}
body.page>.wrap,body.page>.wrap-narrow{flex:1;width:100%}

/* Map: static preview, Google embed on tap (chez.js) */
.map-ph{position:relative;display:block;width:100%;overflow:hidden;background:#fbfaf2}
.map-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.map-ph .map-go{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#000;color:#ffe845;padding:12px 20px;border-radius:9999px;font-size:14px;font-weight:500;letter-spacing:0.04em;white-space:nowrap;box-shadow:0 4px 18px rgba(0,0,0,0.25)}
.sec-head a.chip{text-decoration:none}

/* 80s mascot (pure CSS sprites). Hero: walks in from the left side along the top of the CHEZ BOOM letters and out
   to the right (proven 4-frame walk). Menu: sits on NOS PAINS and finishes a baguette (13 frames). Chip: leans and
   idles (4 frames). Journal: bounce jump — 4 poses + translateY keyframes. All wake up on scroll (.on). */
.cb-hero{overflow-x:clip}
.cb-hero .name{position:relative;display:inline-block;z-index:1}
.cb-hero .name .mascot{position:absolute;left:0;bottom:88%;height:0.95em;aspect-ratio:172/300;z-index:-1;pointer-events:none;
  background:url(/assets/img/mascot-walk.webp) 0 0/400% 100% no-repeat;
  animation:mascot-trip 22s linear infinite, mascot-steps 0.6s steps(4) infinite}
@keyframes mascot-trip{
  0%{transform:translateX(calc(var(--pw,600) * 1px + 30%));opacity:1}
  64%{transform:translateX(-130%);opacity:1}
  64.1%,100%{transform:translateX(-130%);opacity:0}
}
@keyframes mascot-steps{from{background-position-x:0}to{background-position-x:133.3334%}}
.dish .mascot-eat{position:absolute;right:22px;bottom:calc(100% - 12px);height:68px;aspect-ratio:223/300;z-index:2;pointer-events:none;
  background:url(/assets/img/mascot-eat-v3.webp) 0 0/1400% 100% no-repeat;
  transform:scale(0);transform-origin:50% 100%;transition:transform .55s cubic-bezier(.34,1.56,.64,1)}
.dish.on .mascot-eat{transform:scale(1);animation:mascot-eat-loop 8s step-end .6s infinite}
@keyframes mascot-eat-loop{0%{background-position-x:0.0000%}4.375%{background-position-x:7.6923%}8.75%{background-position-x:15.3846%}13.125%{background-position-x:23.0769%}17.5%{background-position-x:30.7692%}21.875%{background-position-x:38.4615%}26.25%{background-position-x:46.1538%}30.625%{background-position-x:53.8462%}35%{background-position-x:61.5385%}39.375%{background-position-x:69.2308%}43.75%{background-position-x:76.9231%}48.125%{background-position-x:84.6154%}52.5%{background-position-x:92.3077%}56.875%{background-position-x:100.0000%}61.25%{background-position-x:92.3077%}80%{background-position-x:100%}82.5%{background-position-x:92.3077%}100%{background-position-x:92.3077%}}
#menu .chip{position:relative}
#menu .chip .mascot-lean{position:absolute;left:calc(100% + 4px);bottom:-2px;height:60px;aspect-ratio:217/300;pointer-events:none;
  background:url(/assets/img/mascot-lean-v2.webp) 0 0/400% 100% no-repeat;
  transform:scale(0);transform-origin:50% 100%;transition:transform .55s cubic-bezier(.34,1.56,.64,1)}
#menu .chip.on .mascot-lean{transform:scale(1);animation:mascot-lean 2.80s steps(4) infinite}
@keyframes mascot-lean{from{background-position-x:0}to{background-position-x:133.3333%}}
@media(min-width:861px){#menu .chip .mascot-lean{left:auto;right:calc(100% + 4px)}#menu .chip.on .mascot-lean{transform:scale(1) scaleX(-1)}}
@media(max-width:860px){#menu .chip .mascot-lean{display:none}}
#journal .sec-h{position:relative}
#journal .sec-h .mascot-jump{position:absolute;left:calc(100% + 0.15em);bottom:-0.05em;height:1.7em;aspect-ratio:308/300;pointer-events:none;
  background:url(/assets/img/mascot-jump-v2.webp) 0 0/400% 100% no-repeat;
  transform:scale(0);transform-origin:50% 100%;transition:transform .55s cubic-bezier(.34,1.56,.64,1)}
#journal .sec-h.on .mascot-jump{transform:scale(1);animation:mascot-jump-pose 2.8s step-end .6s infinite, mascot-jump-move 2.8s linear .6s infinite}
/* poses switch (step-end) exactly at take-off / landing; the flight itself is a smooth translateY */
@keyframes mascot-jump-pose{0%{background-position-x:0}40%{background-position-x:33.3333%}46%{background-position-x:66.6667%}74%{background-position-x:100%}82%{background-position-x:0}100%{background-position-x:0}}
@keyframes mascot-jump-move{0%,46%{transform:translateY(0);animation-timing-function:cubic-bezier(.2,.7,.4,1)}60%{transform:translateY(-58%);animation-timing-function:cubic-bezier(.6,0,.8,.3)}74%,100%{transform:translateY(0)}}
}
@media(prefers-reduced-motion:reduce){.cb-hero .name .mascot,.dish .mascot-eat,#menu .chip .mascot-lean,#journal .sec-h .mascot-jump{display:none}}

/* card rails (journal) — arrows handled by [data-rail] in chez.js */
.rail{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none;padding-bottom:8px;align-items:stretch}
.rail::-webkit-scrollbar{display:none}
.jrail .jcard{flex:0 0 min(360px,84vw)}
.rail-btns{display:flex;gap:16px}
.rail-btns button{background:#fff;border:1.5px solid #000;border-radius:30px;width:44px;height:44px;font-size:18px;cursor:pointer}
