/* Vitrine — Aki Ramen. MOBILE FIRST : les styles de base sont ceux du téléphone ; les @media (min-width) enrichissent pour tablette puis ordinateur.
   Points de rupture : 600 px (grand téléphone), 768 px (tablette), 1000 px (ordinateur). Les couleurs et polices viennent de theme.css (variables :root).
   Direction artistique « Tradition japonaise & touche urbaine » (identité aki-ramen.fr) : crème chaud (fond), rouge sauce soja (principale),
   or ocre (secondaire, décor uniquement : jamais en texte sur le fond clair), charbon (texte, pied de page). Titres Montserrat, boutons en pilule,
   cartes très arrondies, visuels ronds (bols) avec ombre décalée dorée. Motifs (vagues seigaiha, filet doré) en masques CSS aux couleurs du thème. */
:root{
  --c-primary:var(--color-primary,#1b5e3b);--c-secondary:var(--color-secondary,#c99a12);
  --c-bg:var(--color-bg,#fffaf3);--c-text:var(--color-text,#2b2b2b);
  --c-btn:var(--color-button,#1b5e3b);--c-btn-text:var(--color-button-text,#fff);
  --c-surface:color-mix(in srgb,#fff 70%,var(--c-bg));--c-line:color-mix(in srgb,var(--c-text) 14%,transparent);--c-muted:color-mix(in srgb,var(--c-text) 70%,var(--c-bg));
  --c-soft:color-mix(in srgb,var(--c-secondary) 9%,var(--c-bg));
  --c-ink:color-mix(in srgb,var(--c-text) 80%,#000);--c-on-ink:color-mix(in srgb,var(--c-bg) 92%,#fff);
  --c-pop:#f4a6c0; /* rose « sakura » du menu imprimé : ombres décalées, jamais en texte */
  --f-jp:'Aki JP','Hiragino Kaku Gothic ProN','Yu Gothic','Noto Sans JP',sans-serif;
  --line:2.5px solid var(--c-ink);--hard:4px 4px 0 var(--c-ink);
  --c-lacquer:var(--c-primary);--c-veil:color-mix(in srgb,var(--c-ink) 35%,#0b0705);--c-gold-line:color-mix(in srgb,var(--c-secondary) 55%,transparent);
  --f-head:var(--font-heading,system-ui,sans-serif);--f-body:var(--font-body,system-ui,sans-serif);
  --radius:20px;--radius-sm:12px;--shadow:0 10px 30px rgba(0,0,0,.06);--header-h:60px;--gutter:1rem;
  --ease:cubic-bezier(.2,.7,.2,1);
  --safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);
  /* Vagues seigaiha (motif japonais traditionnel) et filet doré « • ▬ • » sous les titres (souligné d'aki-ramen.fr) */
  --m-lattice:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23000' stroke-width='1'%3E%3Cg id='s'%3E%3Ccircle cx='20' cy='20' r='19'/%3E%3Ccircle cx='20' cy='20' r='13'/%3E%3Ccircle cx='20' cy='20' r='7'/%3E%3C/g%3E%3Cuse href='%23s' x='-20' y='-20'/%3E%3Cuse href='%23s' x='20' y='-20'/%3E%3Cuse href='%23s' x='-20' y='20'/%3E%3Cuse href='%23s' x='20' y='20'/%3E%3C/g%3E%3C/svg%3E");
  --m-orn:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 16'%3E%3Ccircle cx='24' cy='8' r='3'/%3E%3Crect x='34' y='6' width='52' height='4' rx='2'/%3E%3Ccircle cx='96' cy='8' r='3'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:var(--f-body);font-size:1rem;line-height:1.65;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;
  padding-left:var(--safe-l);padding-right:var(--safe-r)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:700;line-height:1.15;letter-spacing:-.015em;margin:0 0 .5em;color:inherit;text-wrap:balance}
h1{font-size:clamp(2.3rem,8.5vw,4.2rem)}h2{font-size:clamp(1.75rem,5.5vw,2.5rem)}h3{font-size:1.25rem}h4{font-size:1.05rem}
.section:not(.custom-colors)>.container>h2,.section:not(.custom-colors) .about-text>h2{color:var(--c-primary)}
p{margin:0 0 1em}a{color:var(--c-primary);text-underline-offset:.2em;text-decoration-thickness:1px}
ul[role=list]{list-style:none;margin:0;padding:0}
button,a,input,select,textarea,summary{touch-action:manipulation}
:focus-visible{outline:3px solid var(--c-secondary);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--c-text);color:var(--c-bg);padding:.7rem 1rem;border-radius:8px;transition:top .15s}
.skip-link:focus{top:12px}
.container{width:min(1180px,100% - 2 * var(--gutter));margin-inline:auto}.container.narrow{width:min(760px,100% - 2 * var(--gutter))}
.muted{color:var(--c-muted)}.lead{font-family:var(--f-head);font-weight:600;font-size:clamp(.88rem,2.6vw,1rem);letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);max-width:56ch}
main:focus{outline:none}
.icon{width:1.1em;height:1.1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* Surtitre : petite capitale espacée précédée d'un filet */
.eyebrow{display:flex;align-items:center;gap:.75rem;text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;font-weight:600;margin-bottom:1rem}
.eyebrow::before{content:"";width:2.2rem;height:1px;background:currentColor;flex:none}

/* Boutons : cibles tactiles >= 44 px */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.7rem 1.6rem;border-radius:999px;border:2px solid transparent;font:inherit;font-family:var(--f-head);font-weight:600;letter-spacing:.02em;line-height:1.2;text-decoration:none;cursor:pointer;transition:transform .15s var(--ease),background .2s,color .2s,box-shadow .2s,border-color .2s}
.btn-primary{background:var(--c-btn);color:var(--c-btn-text);border-color:var(--c-btn)}
.btn-light{background:var(--c-bg);color:var(--c-ink);border-color:var(--c-bg)}
.btn-outline{background:transparent;color:var(--c-primary);border-color:currentColor}
.btn-sm{min-height:44px;padding:.45rem 1.1rem;font-size:.95rem}.btn-lg{min-height:54px;padding:.85rem 1.8rem;font-size:1.02rem}
.btn-icon{min-width:48px;padding:.4rem;background:var(--c-surface);border-color:var(--c-line);color:var(--c-text);font-size:1.4rem}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.btn:active{transform:scale(.98)}
.link-arrow{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-weight:600;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid currentColor}
.link-arrow .icon{transition:transform .2s var(--ease)}

/* Bandeaux */
/* Bandeaux (fermetures, annonces) : même gabarit, icône + texte centrés dans la largeur du site ; marges symétriques pour que la croix ne décale pas le centre */
.topbar{position:relative;background:var(--c-ink);color:var(--c-on-ink);font-size:.88rem;line-height:1.45;padding:.6rem 2.75rem;border-bottom:1px solid var(--c-gold-line)}
.topbar p{margin-block:0;display:flex;align-items:center;justify-content:center;gap:.6rem;text-align:center} /* margin-block : garde le centrage du .container */
.topbar p>.icon{flex:none;width:1.05em;height:1.05em;color:var(--c-secondary)}
.topbar a{color:inherit;font-weight:700}
.topbar-cta{display:inline-block;margin-left:.4rem;padding:.05rem .7rem;border:1px solid currentColor;border-radius:99px;text-decoration:none;font-size:.82rem;white-space:nowrap}
.topbar-closure{background:color-mix(in srgb,var(--c-lacquer) 82%,#000);color:#fff}
.topbar-closure p>.icon{color:#fff;opacity:.9}
.topbar-closure+.topbar-closure{border-top:1px solid rgba(255,255,255,.15)}
.topbar-close{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);background:none;border:0;color:inherit;font-size:1.5rem;line-height:1;width:44px;height:44px;cursor:pointer;opacity:.8}
.topbar-close:hover{opacity:1}

/* En-tête : mobile = marque + bouton menu ; le menu s'ouvre en tiroir */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--c-bg) 92%,transparent);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--c-gold-line)}
.header-inner{display:flex;align-items:center;gap:.6rem;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--c-text);font-family:var(--f-head);font-size:1.15rem;font-weight:600;margin-right:auto;min-width:0}
.brand-logo{width:40px;height:40px;object-fit:contain;border-radius:8px;flex:none}
.brand-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-actions{display:flex;align-items:center;gap:.5rem}
.header-cta,.site-header .open-badge{display:none}
.open-badge{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:600;padding:.3rem .75rem;border-radius:999px;background:var(--c-soft);white-space:nowrap}
.open-badge.is-open{background:#e3f4e8;color:#14532d}.open-badge.is-closed{background:#fbe6e3;color:#7f1d1d}.open-badge.is-exceptional{background:#fff0d4;color:#6b4200}
.nav-toggle{display:inline-block;width:48px;height:48px;border:1px solid var(--c-line);background:transparent;border-radius:var(--radius-sm);cursor:pointer;position:relative;flex:none}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{position:absolute;left:13px;width:20px;height:1.5px;background:var(--c-text);content:"";transition:transform .2s,opacity .2s}
.nav-toggle span{top:23px}.nav-toggle span::before{top:-6px;left:0}.nav-toggle span::after{top:6px;left:0}
.nav-toggle[aria-expanded=true] span{background:transparent}
.nav-toggle[aria-expanded=true] span::before{transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded=true] span::after{transform:translateY(-6px) rotate(-45deg)}
.main-nav{position:fixed;inset:var(--header-h) 0 auto 0;background:var(--c-bg);border-bottom:1px solid var(--c-gold-line);padding:.4rem var(--gutter) calc(1rem + var(--safe-b));
  transform:translateY(-120%);visibility:hidden;transition:transform .3s var(--ease),visibility .3s;max-height:calc(100dvh - var(--header-h));overflow:auto;box-shadow:0 18px 30px -18px rgba(0,0,0,.25)}
.main-nav.is-open{transform:none;visibility:visible}
.main-nav ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.main-nav a{display:flex;align-items:center;min-height:56px;padding:.5rem .4rem;font-family:var(--f-head);font-size:1.3rem;border-bottom:1px solid var(--c-line);text-decoration:none;color:var(--c-text)}
.main-nav a[aria-current=page]{color:var(--c-primary);font-weight:700}

/* Bannière : photo plein cadre, voile laqué, informations utiles en pied */
.hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:min(88svh,780px);color:var(--c-on-ink);background:var(--c-ink);overflow:hidden;isolation:isolate}
.hero:not(.has-image)::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-secondary);opacity:.12;-webkit-mask:var(--m-lattice) 0 0/56px 56px;mask:var(--m-lattice) 0 0/56px 56px}
.hero-media{position:absolute;inset:0;z-index:-2}.hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.hero.has-image::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,color-mix(in srgb,var(--c-veil) 40%,transparent) 0%,color-mix(in srgb,var(--c-veil) 72%,transparent) 40%,color-mix(in srgb,var(--c-veil) 94%,transparent) 100%)}
.hero-inner{position:relative;padding-block:6rem 2rem}
.hero .eyebrow{color:color-mix(in srgb,var(--c-secondary) 55%,#fff);text-shadow:0 1px 12px rgba(0,0,0,.6)}
.hero h1{max-width:14ch;margin-bottom:.35em;text-shadow:0 2px 30px rgba(0,0,0,.3)}
.hero-sub{font-size:clamp(1.05rem,3.6vw,1.25rem);line-height:1.55;max-width:40ch;opacity:.95}
/* Bannière sans photo (identité aki-ramen.fr) : fond crème, texte charbon, logo dans un cercle à ombre décalée dorée, vagues seigaiha discrètes */
.hero.has-visual,.hero:not(.has-image){background:var(--c-bg);color:var(--c-text);justify-content:center}
.hero:not(.has-image)::before{background:var(--c-primary);opacity:.05}
.hero:not(.has-image) .hero-inner{display:grid;gap:1.5rem;align-items:center;padding-block:1.75rem 2rem}
.hero:not(.has-image) .eyebrow{display:inline-flex;width:fit-content;padding:.45rem 1rem;border-radius:999px;background:var(--c-secondary);color:var(--c-ink);text-shadow:none;letter-spacing:.12em;font-weight:700}
.hero:not(.has-image) .eyebrow::before{display:none}
.hero:not(.has-image) h1{max-width:16ch;text-shadow:none}
.hero:not(.has-image) .hero-sub{color:var(--c-muted)}
.hero-visual{order:-1;margin:0 auto;width:min(44vw,180px);aspect-ratio:1;border-radius:50%;background:#fff;overflow:hidden;box-shadow:8px 8px 0 var(--c-secondary)} /* petit sur téléphone : les boutons de commande restent visibles sans défiler */
.hero-visual img{width:100%;height:100%;object-fit:cover}
.hero:not(.has-image) .hero-facts{background:var(--c-primary);color:#fff;border-top:0;backdrop-filter:none}
.hero:not(.has-image) .hero-facts .icon{color:var(--c-secondary)}
.hero:not(.has-image) .btn-light{background:transparent;color:var(--c-primary);border-color:var(--c-primary)}
.hero-text{max-width:56ch}
.hero-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.8rem}.hero-actions .btn{width:100%}
.hero .btn-outline{color:#fff;border-color:rgba(255,255,255,.7)}
.hero-facts{position:relative;border-top:1px solid var(--c-gold-line);background:color-mix(in srgb,var(--c-ink) 70%,transparent);backdrop-filter:blur(6px)}
.hero-facts ul{margin-inline:auto;display:flex;flex-direction:column;gap:.15rem;padding-block:.9rem calc(.9rem + var(--safe-b))}
.hero-facts li{display:flex;align-items:center;gap:.65rem;min-height:40px;font-size:.95rem}
.hero-facts .icon{color:var(--c-secondary)}
.hero-facts a{color:inherit;text-decoration:none}
.hero .open-badge{background:transparent;color:inherit;padding:0;font-size:.95rem;font-weight:500}

/* Sections */
.section{position:relative;padding-block:clamp(3.5rem,10vw,7rem);isolation:isolate}
.section-gallery:not(.custom-colors),.section-info:not(.custom-colors){background:var(--c-soft)}
.custom-colors a{color:inherit}.custom-colors .lead{color:inherit;opacity:.85}
/* Titres de section : filet ornemental (losange de laque) aux couleurs du thème */
.section>.container>h2::after,.about-text>h2::after{content:"";display:block;width:120px;height:16px;margin-top:.8rem;background:var(--c-secondary);-webkit-mask:var(--m-orn) center/contain no-repeat;mask:var(--m-orn) center/contain no-repeat}
.section-specialties>.container,.section-gallery>.container{text-align:center}
.section-specialties>.container>h2::after,.section-gallery>.container>h2::after{margin-inline:auto}
.section-specialties .lead,.section-gallery .lead,.section-specialties .rich{margin-inline:auto}
.rich{max-width:66ch}.rich h2,.rich h3{margin-top:1.4em}.rich blockquote{margin:1.4rem 0;padding:.2rem 1.4rem;border-left:2px solid var(--c-secondary);font-family:var(--f-head);font-weight:600;font-size:1.15rem;color:var(--c-muted)}
.rich ul{list-style:none;padding:0;margin:1.2rem 0}
.rich ul li{position:relative;padding-left:1.6rem;margin-bottom:.55rem}
.rich ul li::before{content:"";position:absolute;left:.15rem;top:.62em;width:.5rem;height:.5rem;background:var(--c-secondary);transform:rotate(45deg)}
.rich ol{padding-left:1.3rem}
.rich strong{color:var(--c-ink)}
.custom-colors .rich strong{color:inherit}

/* Notre histoire : photo ronde (comme un bol vu de dessus), ombre décalée dorée */
.about-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;align-items:center}
/* Si le texte riche commence par son propre titre, le titre de section devient un surtitre (évite deux grands titres empilés) */
.about-text:has(.rich>h2:first-child)>h2{display:flex;align-items:center;gap:.75rem;font-family:var(--f-body);font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--c-lacquer);margin-bottom:1rem}
.about-text:has(.rich>h2:first-child)>h2::before{content:"";width:2.2rem;height:1px;background:currentColor}
.about-text:has(.rich>h2:first-child)>h2::after{display:none}
.custom-colors .about-text>h2{color:inherit}
.about-text .rich>h2:first-child{margin-top:0;font-size:clamp(1.8rem,6vw,2.75rem)}
.about-text .rich>h2:first-child::after{content:"";display:block;width:120px;height:16px;margin-top:.8rem;background:var(--c-secondary);-webkit-mask:var(--m-orn) center/contain no-repeat;mask:var(--m-orn) center/contain no-repeat}
.about-img{position:relative;margin:0 auto;width:min(100%,420px)}
.about-img img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;box-shadow:16px 16px 0 var(--c-secondary)}

/* Éléments des sections libres : cartes blanches arrondies, numéro rond (étapes, engagements) */
.features{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;list-style:none;padding:0}
ul.features[role=list]{margin:2.2rem auto 0} /* l'emporte sur ul[role=list]{margin:0} : garde le centrage du .container */
.feature{background:#fff;color:var(--c-text);border-radius:var(--radius);padding:1.8rem 1.6rem;text-align:center;box-shadow:var(--shadow);transition:transform .3s var(--ease)}
.feature h3{color:var(--c-primary);margin-bottom:.4rem}
.feature p{margin:0;color:var(--c-muted)}
.feature-num{display:grid;place-items:center;width:3.25rem;height:3.25rem;margin:0 auto 1rem;border-radius:50%;background:var(--c-secondary);color:var(--c-ink);font-family:var(--f-head);font-weight:800;font-size:1.1rem;font-variant-numeric:tabular-nums}
.feature-img{width:112px;height:112px;margin:0 auto 1rem}.feature-img img{width:100%;height:100%;object-fit:contain}
.section-custom .about-grid.no-image .about-text{margin-inline:auto;text-align:center}
.section-custom .about-grid.no-image .about-text>h2::after{margin-inline:auto}
.section-custom .about-grid.no-image .lead,.section-custom .about-grid.no-image .rich{margin-inline:auto}
.custom-colors .feature{box-shadow:0 18px 40px -20px rgba(0,0,0,.45)}
@media (min-width:768px){.features{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
@media (hover:hover){.feature:hover{transform:translateY(-5px)}}

/* Annonces / promotions en section : visuel 1200 × 600 px (2:1), pleine largeur sur mobile */
.announce-block{padding-block:1.5rem;background:var(--c-lacquer);color:#fff}
.announce-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:center}
.announce-img img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;border-radius:var(--radius-sm)}
.announce-text,.about-text,.dish-body,.info-card,.card-body{min-width:0}
.announce-text h2{margin-top:0}.announce-text .btn{margin-top:.5rem}

/* Spécialités : fond jade laqué orné du treillis, plats présentés comme sur une carte imprimée */
.section-specialties:not(.custom-colors){background:#fff}
.section-specialties::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-primary);opacity:.035;-webkit-mask:var(--m-lattice) 0 0/56px 56px;mask:var(--m-lattice) 0 0/56px 56px}
.cards{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;margin-top:2.5rem;text-align:center}
.card{position:relative;background:var(--c-bg);color:var(--c-text);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow)}
/* Photo de bol détourée posée sur un disque crème, ombre décalée dorée */
.card-img{padding:1.8rem 1.8rem 0}
.card-img img{width:min(100%,220px);aspect-ratio:1;margin:0 auto;object-fit:contain;border-radius:50%;background:#fff;box-shadow:10px 10px 0 color-mix(in srgb,var(--c-secondary) 70%,transparent)}
.card-body{display:flex;flex-direction:column;align-items:center;flex:1;padding:1.4rem 1.6rem 1.8rem}
.card-num{font-family:var(--f-head);font-weight:800;font-size:.85rem;letter-spacing:.12em;color:var(--c-muted);margin-bottom:.3rem}
.card-body h3{font-size:1.35rem;margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.02em}
.card-body p{margin-bottom:.5rem;color:var(--c-muted)}
.card-body a{color:inherit;text-decoration:none}
.card-body a::after{content:"";position:absolute;inset:0}
.card .price{margin:auto 0 0;padding-top:1rem;font-family:var(--f-head);font-size:1.25rem;font-variant-numeric:tabular-nums}
.card .price::before{content:"";display:block;width:2.5rem;height:1px;margin:0 auto .9rem;background:var(--c-secondary)}
.price{font-weight:700;color:var(--c-lacquer)!important}
.section-more{margin:2.5rem 0 0}
.section-specialties:not(.custom-colors) .link-arrow{color:var(--c-primary)}

/* Galerie : 2 colonnes sur mobile ; une photo seule occupe toute la largeur */
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:2.2rem}
.gallery a{display:block;height:100%;border-radius:var(--radius-sm);overflow:hidden;position:relative}
.gallery img{aspect-ratio:1;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.gallery li:only-child{grid-column:1/-1}.gallery li:only-child img{aspect-ratio:16/10}

/* Carte */
.mode-tabs{display:flex;gap:4px;width:100%;margin:1.4rem 0 .8rem;padding:5px;background:color-mix(in srgb,var(--c-text) 6%,var(--c-bg));border:1px solid var(--c-line);border-radius:999px}
.mode-tabs a{flex:1;white-space:nowrap;justify-content:center;gap:.5rem;padding:.6rem 1rem;border-radius:999px;text-decoration:none;font-weight:600;color:var(--c-muted);min-height:48px;display:inline-flex;align-items:center;transition:background .2s,color .2s,box-shadow .2s}
.mode-tabs a svg{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mode-tabs a:hover{color:var(--c-text)}
.mode-tabs a:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}
.mode-tabs a[aria-selected=true]{background:var(--c-btn);color:var(--c-btn-text);box-shadow:0 3px 10px color-mix(in srgb,var(--c-btn) 35%,transparent)}
.notice{padding:.9rem 1.1rem;border-radius:var(--radius-sm);background:var(--c-soft);border:1px solid var(--c-line)}
.notice-warn{background:#fff3d6;border-color:#e8c46a;color:#4a3300}
.cat-chips-wrap{position:sticky;top:var(--header-h);z-index:5;background:var(--c-bg);margin:0 0 .5rem;border-bottom:1px solid var(--c-gold-line)}
.cat-chips{display:flex;gap:.5rem;overflow-x:auto;scroll-snap-type:x proximity;padding:.5rem 0 .7rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cat-chips::-webkit-scrollbar{display:none}
/* Indice de défilement (mobile) : dégradé + flèche pulsante tant qu'il reste des catégories à droite */
.chips-hint{display:none}
@media (max-width:699px){
  .chips-hint{display:flex;position:absolute;right:0;top:0;bottom:0;width:3.2rem;align-items:center;justify-content:flex-end;padding-right:.35rem;pointer-events:none;font-size:1.9rem;font-weight:700;line-height:1;color:var(--c-primary);background:linear-gradient(to right,transparent,var(--c-bg) 70%);transition:opacity .25s;animation:chips-nudge 1.4s ease-in-out infinite}
  .cat-chips-wrap.at-end .chips-hint,.cat-chips-wrap.no-scroll .chips-hint{opacity:0;animation:none}
}
@keyframes chips-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(-5px)}}
@media (prefers-reduced-motion:reduce){.chips-hint{animation:none!important}}
.cat-chips a{flex:0 0 auto;scroll-snap-align:start;padding:.4rem 1.05rem;border:1px solid var(--c-line);border-radius:999px;background:var(--c-surface);text-decoration:none;color:var(--c-text);font-size:.95rem;min-height:44px;display:inline-flex;align-items:center}
.cat-chips a.is-active{background:var(--c-ink);color:var(--c-on-ink);border-color:var(--c-ink)}
.menu-cat{margin-top:3rem}.cat-title{display:flex;align-items:center;gap:1rem;font-size:clamp(1.6rem,5vw,2rem);margin-bottom:.3rem}
.cat-title::after{content:"";flex:1;height:16px;min-width:2rem;background:linear-gradient(var(--c-gold-line),var(--c-gold-line)) center/100% 1px no-repeat}
.cat-note{font-size:.9rem;color:var(--c-muted);font-style:italic;margin:.3rem 0}.cat-desc{color:var(--c-muted);max-width:60ch;font-family:var(--f-head);font-weight:600}
.dishes{display:grid;grid-template-columns:minmax(0,1fr);gap:.2rem;margin-top:.6rem}
.dish{display:flex;gap:.9rem;padding:.95rem 0;border-bottom:1px solid var(--c-line)}
.dish-img{flex:0 0 80px}.dish-img img{width:80px;height:80px;object-fit:contain;border-radius:50%;background:#fff;box-shadow:0 4px 14px -6px rgba(0,0,0,.25)}
.dish-body{flex:1;min-width:0}
.dish-head{display:flex;align-items:baseline;gap:.5rem}.dish-name{margin:0;font-size:1.12rem}
.dish-dots{flex:1;border-bottom:1px dotted color-mix(in srgb,var(--c-text) 35%,transparent);transform:translateY(-4px);min-width:8px}
.dish-price{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.dish-price strong{color:var(--c-lacquer);font-family:var(--f-head);font-size:1.08rem}.dish-price s{color:var(--c-muted);font-size:.9rem}
.dish-desc{margin:.25rem 0 0;color:var(--c-muted);font-size:.95rem}.dish-comp{margin:.2rem 0 0;font-size:.9rem;font-style:italic;color:var(--c-muted)}
.dish-opts{margin:.3rem 0 0;font-size:.9rem}.opt-label{font-weight:600}
.price-from{font-size:.78rem;font-style:italic;color:var(--c-muted);margin-right:.2rem}
/* Options & variantes : titre du groupe + règle, choix en pastilles ; supplément en couleur, épuisé barré */
.dish-choice{margin:.5rem 0 0}
.choice-h{margin:0 0 .25rem;display:flex;align-items:baseline;gap:.5rem;font-size:.9rem}
.choice-h .opt-label{font-family:var(--f-head);font-weight:600;color:var(--c-lacquer)}
.choice-rule{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--c-muted)}
.choice-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none}
.choice-chips li{display:inline-flex;align-items:baseline;gap:.3rem;padding:.18rem .65rem;border:1px solid var(--c-line);border-radius:999px;background:var(--c-surface);font-size:.86rem;line-height:1.35}
.dish-choice.is-extra .choice-chips li{border-style:dashed}
.choice-price{font-weight:700;color:var(--c-lacquer);font-variant-numeric:tabular-nums;font-size:.8rem}
.choice-chips li.is-out{color:var(--c-muted);text-decoration:line-through;opacity:.7}
.choice-out{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;display:inline-block}
.al-choice{font-style:italic}
.dish.is-oos .dish-choice{opacity:.55}
.dish-allergens{margin:.3rem 0 0;font-size:.82rem;color:var(--c-muted)}.dish-allergens abbr{text-decoration:none}
.dish.is-oos .dish-head,.dish.is-oos .dish-desc,.dish.is-oos .dish-img{opacity:.55}
.dish.is-formula{background:var(--c-surface);padding:1.4rem 1.3rem;border-radius:var(--radius-sm);border:0;box-shadow:inset 0 0 0 1px var(--c-secondary),inset 0 0 0 5px var(--c-surface),inset 0 0 0 6px var(--c-gold-line)}
.dish.is-formula .dish-name{font-size:1.3rem}.formula-step{padding:.35rem 0;border-top:1px dotted var(--c-line)}.formula-step:first-of-type{margin-top:.6rem}.formula-step .opt-label{font-family:var(--f-head);font-weight:600;font-weight:600;color:var(--c-lacquer)}
.badges{display:flex;flex-wrap:wrap;gap:.3rem;margin:.35rem 0 0}
.badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.12rem .55rem;border-radius:999px;background:var(--c-soft);color:var(--c-text);border:1px solid var(--c-line)}
.badge-promo{background:#fbe6e3;color:#7f1d1d;border-color:#f0b8b0}.badge-new{background:#dff1ff;color:#0b4a78;border-color:#a9d3f3}
.badge-signature{background:#fff0d4;color:#6b4200;border-color:#ecc77a}.badge-vegetarian,.badge-vegan{background:#e3f4e8;color:#14532d;border-color:#a7d7b4}
.badge-spicy{background:#ffe4d9;color:#7a2200;border-color:#f2b49b}.badge-oos{background:#2b2b2b;color:#fff;border-color:#2b2b2b}
.allergen-note{margin-top:2.4rem;font-size:.92rem;color:var(--c-muted)}

/* Réservation : une étape à la fois, grands éléments tactiles */
.resa{background:var(--c-bg);border:1px solid var(--c-gold-line);border-radius:var(--radius);padding:1.2rem;box-shadow:var(--shadow);margin-top:1.4rem}
.custom-colors .resa{color:var(--c-text)}
.steps{display:flex;list-style:none;margin:0 0 1.8rem;padding:0;counter-reset:s}
.steps li{counter-increment:s;position:relative;flex:1 1 0;min-width:0;padding-top:2.6rem;text-align:center;font-size:.72rem;line-height:1.25;color:var(--c-muted)}
.steps li::before{content:counter(s);position:absolute;top:0;left:50%;width:2.1rem;height:2.1rem;margin-left:-1.05rem;display:grid;place-items:center;border-radius:50%;border:1px solid var(--c-gold-line);background:var(--c-bg);font-family:var(--f-head);font-size:1rem;color:var(--c-muted);z-index:1;transition:background .2s,color .2s,border-color .2s}
.steps li:not(:last-child)::after{content:"";position:absolute;top:1.05rem;left:calc(50% + 1.05rem);right:calc(-50% + 1.05rem);height:1px;background:var(--c-gold-line)}
.steps li.is-done{color:var(--c-text)}.steps li.is-done::before{background:var(--c-secondary);border-color:var(--c-secondary);color:var(--c-ink)}.steps li.is-done::after{background:var(--c-secondary)}
.steps li.is-current{color:var(--c-text);font-weight:700}.steps li.is-current::before{background:var(--c-primary);border-color:var(--c-primary);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--c-primary) 15%,transparent)}
.step{border:0;margin:0 0 1.6rem;padding:0;min-width:0}.step legend{font-family:var(--f-head);font-size:1.35rem;font-weight:600;padding:0;margin-bottom:.8rem}
.step[data-locked]{opacity:.45;pointer-events:none}
.stepper{display:inline-flex;align-items:center;gap:.5rem}
.stepper input{width:80px;text-align:center;font-size:1.4rem;font-weight:700}
input,textarea,select{font:inherit;font-size:max(1rem,16px);color:var(--c-text);background:#fff;border:1.5px solid color-mix(in srgb,var(--c-text) 30%,transparent);border-radius:var(--radius-sm);padding:.7rem .9rem;min-height:48px;width:100%} /* 16 px mini : évite le zoom automatique d'iOS */
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--c-primary) 35%,transparent);outline-offset:1px;border-color:var(--c-primary)}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#b91c1c;background:#fff8f8}
.field{margin-bottom:1rem}.field label{display:block;font-weight:600;margin-bottom:.3rem}.field-row{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.req{color:#b91c1c}.opt{font-weight:400;color:var(--c-muted);font-size:.9rem}
.field-err{color:#b91c1c;font-size:.9rem;margin:.25rem 0 0}
.check{display:flex;gap:.7rem;align-items:flex-start;margin:1rem 0;font-size:.95rem}.check input{width:24px;height:24px;min-height:0;margin-top:.1rem;flex:0 0 auto;accent-color:var(--c-primary)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.hint{color:var(--c-muted);font-size:.95rem;margin:.6rem 0 0}.form-error{background:#fde8e8;border:1px solid #f3b7b7;color:#7f1d1d;padding:.8rem 1rem;border-radius:var(--radius-sm)}
[data-submit]{width:100%}
.cal{width:100%;max-width:420px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.cal-title{margin:0;font-family:var(--f-head);font-size:1.15rem;font-weight:600;text-transform:capitalize}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{text-align:center;font-size:.78rem;color:var(--c-muted);padding:.2rem 0;font-weight:600}
.cal-day{aspect-ratio:1;min-height:44px;border:1px solid var(--c-gold-line);border-radius:50%;background:#fff;font:inherit;font-weight:600;font-variant-numeric:tabular-nums;color:var(--c-text);cursor:pointer;position:relative;padding:0;transition:background .15s,border-color .15s,color .15s}
.cal-day[aria-pressed=true]{background:var(--c-primary);border-color:var(--c-primary);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--c-secondary) 45%,transparent)}
.cal-day[disabled]{background:transparent;border-color:transparent;color:color-mix(in srgb,var(--c-text) 38%,var(--c-bg));cursor:not-allowed}
.cal-day.is-full[disabled]{text-decoration:line-through}
.cal-day.is-today::after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:currentColor}
.cal-day.is-loading{opacity:.5}
.cal-legend{font-size:.8rem;color:var(--c-muted);margin:.7rem 0 0}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin:0 .25rem 0 .7rem}.dot:first-child{margin-left:0}
.dot-ok{background:var(--c-primary)}.dot-full{background:#c9a227}.dot-off{background:#bbb}
.slot-group{margin-bottom:1rem}.slot-group h3{font-size:1rem;font-family:var(--f-body);margin-bottom:.5rem}
.slot-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.slot{min-height:48px;padding:.4rem .5rem;border-radius:var(--radius-sm);border:1.5px solid var(--c-line);background:#fff;font:inherit;font-weight:600;cursor:pointer;color:var(--c-text);font-variant-numeric:tabular-nums}
.slot[aria-pressed=true]{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.resa-done{padding:1.2rem;border-radius:var(--radius);background:#e3f4e8;border:1px solid #a7d7b4;color:#14532d}.resa-done h3{color:inherit}
.resa-done.is-pending{background:#fff3d6;border-color:#e8c46a;color:#4a3300}
.resa-done a{color:inherit;font-weight:700}

/* Infos pratiques */
.info-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;margin-top:1.8rem}
.info-card{background:var(--c-bg);border:1px solid var(--c-gold-line);border-radius:var(--radius);padding:1.4rem;color:var(--c-text)}
.info-card h3{font-size:1.4rem}.info-card address{font-style:normal;margin-bottom:.8rem}
.info-card a[href^="tel:"],.info-card a[href^="mailto:"]{display:inline-block;padding:.35rem 0;min-height:44px}
.hours{width:100%;border-collapse:collapse}.hours th,.hours td{padding:.55rem 0;border-bottom:1px solid var(--c-line);text-align:left;vertical-align:top;font-variant-numeric:tabular-nums}.hours th{font-weight:600;width:42%}
.hours .is-today th,.hours .is-today td{color:var(--c-primary);font-weight:700}
.map{margin-top:1.4rem;border-radius:var(--radius);overflow:hidden;min-height:300px;background:var(--c-bg);border:1px solid var(--c-gold-line)}
.map iframe{width:100%;height:320px;border:0;display:block}.map-placeholder{display:grid;place-items:center;text-align:center;min-height:300px;padding:1.2rem;color:var(--c-text)}

/* Pied de page laqué (réserve la place du bouton flottant) */
.site-footer{position:relative;isolation:isolate;background:var(--c-ink);color:color-mix(in srgb,var(--c-on-ink) 82%,transparent);padding:3.5rem 0 calc(5.5rem + var(--safe-b));border-top:3px solid var(--c-secondary)}
.site-footer::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-secondary);opacity:.06;-webkit-mask:var(--m-lattice) 0 0/56px 56px;mask:var(--m-lattice) 0 0/56px 56px}
.site-footer a{color:var(--c-on-ink);text-decoration:none;transition:color .2s}.site-footer a:hover,.site-footer a:focus-visible{color:var(--c-secondary)}
.footer-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:2.2rem}
.footer-col p{margin:0 0 .4rem;line-height:1.5}
.footer-brand{font-family:var(--f-head);font-size:1.7rem;font-weight:600;color:var(--c-on-ink);margin-bottom:.4rem!important}
.footer-tagline{font-family:var(--f-head);font-weight:600}
.footer-title{font-family:var(--f-body);font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--c-secondary);margin:0 0 .9rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.footer-contact{margin-top:1rem!important}
.footer-contact li,.social a{display:flex;align-items:center;gap:.6rem;min-height:44px}
.footer-contact .icon,.social .icon{color:var(--c-secondary)}
.hours-compact{margin:0;font-size:.95rem;font-variant-numeric:tabular-nums}
.hours-compact div{padding:.45rem 0;border-bottom:1px solid var(--c-line)}
.hours-compact dt{font-weight:600}.hours-compact dd{margin:0}
.site-footer .hours-compact div{border-color:color-mix(in srgb,var(--c-on-ink) 12%,transparent)}.site-footer .hours-compact dt{color:var(--c-on-ink)}
.hours-note{margin:.6rem 0 0;font-size:.85rem;opacity:.85}
.hours .last-order{display:block;font-size:.85rem;color:var(--c-muted)}
.photo-note{margin:.5rem 0 0;font-size:.85rem;font-style:italic;color:var(--c-muted)}
.site-footer .legal a{display:inline-block;padding:.45rem 0;min-height:44px}
.copyright{margin-top:2.5rem;padding-top:1.3rem;border-top:1px solid color-mix(in srgb,var(--c-on-ink) 14%,transparent);font-size:.85rem;text-align:center}
.copyright .link-btn{color:var(--c-on-ink)}

/* Pages légales / 404 */
.legal-page{padding-bottom:4rem}.legal-page .rich h2{font-size:clamp(1.4rem,4vw,1.7rem)}.legal-page .rich h3{font-size:1.2rem}.legal-back{margin-top:2.5rem}
.breadcrumb{font-size:.92rem;color:var(--c-muted);margin-bottom:1rem}.breadcrumb a{color:inherit}
.not-found{padding-bottom:4.5rem;text-align:center}
.not-found-code{margin:0 0 1.2rem;font-family:var(--f-head);font-weight:600;font-size:clamp(5rem,22vw,9rem);line-height:1;color:color-mix(in srgb,var(--c-secondary) 70%,var(--c-bg))}
.not-found .section-actions{justify-content:center}

/* Pop-up (visuel 800 × 450 px 16:9), lightbox, bouton flottant */
dialog{border:0;padding:0;color:var(--c-text);background:var(--c-bg);border-radius:var(--radius);width:min(480px,calc(100% - 1.5rem));max-width:none;max-height:calc(100dvh - 1.5rem);overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.4)}
dialog::backdrop{background:color-mix(in srgb,var(--c-ink) 75%,transparent)}
.modal{overflow:hidden}.modal-body{padding:1.4rem}.modal-img img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.modal .btn-light{background:var(--c-btn);color:var(--c-btn-text);border-color:var(--c-btn)}
.modal-close{position:absolute;top:.5rem;right:.5rem;z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#222;font-size:1.6rem;line-height:1;cursor:pointer}
.lightbox{width:min(1100px,100vw - 1rem);background:transparent;box-shadow:none;overflow:visible;color:#fff}
.lightbox figure{margin:0;text-align:center}.lightbox img{max-height:78dvh;width:auto;max-width:100%;margin:auto;border-radius:var(--radius-sm)}.lightbox figcaption{margin-top:.6rem;font-family:var(--f-head);font-weight:600}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.9);font-size:1.8rem;cursor:pointer;z-index:2}
.lb-prev{left:.25rem}.lb-next{right:.25rem}
.fab-reserve{position:fixed;left:var(--gutter);right:var(--gutter);bottom:calc(.75rem + var(--safe-b));z-index:40;background:var(--c-btn);color:var(--c-btn-text);padding:.9rem 1.5rem;border-radius:var(--radius-sm);font-weight:600;letter-spacing:.03em;text-decoration:none;box-shadow:0 10px 28px -6px rgba(0,0,0,.45),inset 0 0 0 1px var(--c-gold-line);display:none;min-height:52px;align-items:center;justify-content:center}
.fab-reserve.is-visible{display:flex}

/* Animations d'apparition (désactivées si l'utilisateur le demande) */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.js .reveal.is-in{opacity:1;transform:none}
.hero-copy>*,.hero-visual{animation:hero-in .9s var(--ease) both}.hero-copy>:nth-child(2){animation-delay:.08s}.hero-copy>:nth-child(3){animation-delay:.16s}.hero-copy>:nth-child(n+4),.hero-visual{animation-delay:.24s}
@keyframes hero-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}

/* ===== Grand téléphone / petite tablette ≥ 600 px ===== */
@media (min-width:600px){
  :root{--gutter:1.5rem}
  .hero-actions{flex-direction:row;flex-wrap:wrap}.hero-actions .btn{width:auto}
  .hero-facts ul{flex-direction:row;flex-wrap:wrap;gap:.3rem 2rem}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
  .gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
  .field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
  .slot-list{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}
  .resa{padding:1.8rem}
  .mode-tabs{display:inline-flex;width:auto}.mode-tabs a{padding:.6rem 1.6rem}
  .steps li{font-size:.82rem}
  [data-submit]{width:auto}
  .fab-reserve{left:auto;right:1rem;width:auto}
}

/* ===== Tablette ≥ 768 px : navigation horizontale ===== */
@media (min-width:768px){
  :root{--header-h:72px}
  body{font-size:1.0625rem}
  .brand{font-size:1.35rem}.brand-logo{width:46px;height:46px}
  .nav-toggle{display:none}
  .main-nav{position:static;transform:none;visibility:visible;padding:0;max-height:none;overflow:visible;background:transparent;border:0;box-shadow:none;transition:none}
  .main-nav ul{flex-direction:row;gap:.25rem}
  .main-nav a{position:relative;min-height:44px;padding:.5rem .8rem;font-family:var(--f-body);font-size:.88rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;border-bottom:0}
  .main-nav a::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.35rem;height:1px;background:var(--c-secondary);transform:scaleX(0);transition:transform .25s var(--ease)}
  .main-nav a[aria-current=page]{font-style:normal}.main-nav a[aria-current=page]::after{transform:none}
  .header-inner{gap:1rem}
  .header-actions{order:3}
  .brand{margin-right:0}.main-nav{margin-left:auto}
  .hero-inner{padding-block:8rem 3rem}
  .hero:not(.has-image) .hero-inner{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:3rem;padding-block:4.5rem 4rem}
  .hero-visual{order:0;width:min(100%,440px);box-shadow:20px 20px 0 var(--c-secondary)}
  .hero.has-image::after{background:linear-gradient(90deg,color-mix(in srgb,var(--c-veil) 90%,transparent) 0%,color-mix(in srgb,var(--c-veil) 65%,transparent) 50%,color-mix(in srgb,var(--c-veil) 20%,transparent) 100%),linear-gradient(0deg,color-mix(in srgb,var(--c-veil) 70%,transparent),transparent 40%)}
  .about-grid{grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,6rem)}.about-grid.no-image{grid-template-columns:minmax(0,1fr)}
  .announce-block{padding-block:2.2rem}
  .announce-inner{grid-template-columns:minmax(0,600px) minmax(0,1fr);gap:2rem}.announce-inner.no-image{grid-template-columns:minmax(0,1fr)}
  .cards{grid-template-columns:repeat(auto-fit,minmax(260px,340px));justify-content:center}
  .gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:.8rem}
  .gallery li:first-child:not(:only-child){grid-column:span 2;grid-row:span 2}
  .gallery li:only-child{width:min(100%,880px);margin-inline:auto}
  .dish-img{flex-basis:96px}.dish-img img{width:96px;height:96px}.dish-name{font-size:1.2rem}
  .info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
  .info-card{padding:1.8rem 2rem}
  .footer-inner{grid-template-columns:1.3fr 1.2fr 1fr 1fr;gap:2.5rem}
  .site-footer .legal a,.social a{min-height:0;padding:.35rem 0}
  .footer-contact li{min-height:0;padding:.3rem 0}
  .site-footer{padding-bottom:1.4rem}
  .modal-body{padding:1.8rem}
}

/* ===== Ordinateur ≥ 1000 px ===== */
@media (min-width:1000px){
  .header-cta,.site-header .open-badge{display:inline-flex}
  .hero h1{font-size:clamp(3.6rem,5.4vw,5.2rem)}
  .about-img{width:min(100%,480px)}
  .dishes{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 3rem}
  .resa{padding:2.2rem}
}

/* Effets au survol : uniquement avec une vraie souris (pas de « survol collé » au toucher) */
@media (hover:hover){
  .btn:hover{transform:translateY(-1px);text-decoration:none}
  .btn-primary:hover{box-shadow:0 8px 20px -6px color-mix(in srgb,var(--c-btn) 60%,transparent)}
  .btn-outline:hover{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
  .hero .btn-outline:hover{background:#fff;color:var(--c-ink);border-color:#fff}
  .main-nav a:hover{color:var(--c-primary)}
  .main-nav a:hover::after{transform:none}
  .card{transition:transform .3s var(--ease)}.card:hover{transform:translateY(-6px)}.card:hover h3{color:var(--c-primary)}
  .link-arrow:hover .icon{transform:translateX(4px)}
  .gallery a:hover img{transform:scale(1.05)}
  .cat-chips a:hover{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
  .cal-day:hover:not([disabled]){border-color:var(--c-primary)}
  .slot:hover{border-color:var(--c-primary)}
  .hero-facts a:hover{color:var(--c-secondary)}
}

@media print{.site-header,.topbar,.fab-reserve,.nav-toggle,.resa,.map,dialog{display:none!important}body{background:#fff;color:#000}.site-footer{padding-bottom:1rem}}

/* Civilité (formulaire de réservation) */
.civ{border:0;margin:0 0 1rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:center}
.civ legend{font-weight:600;padding:0;margin-bottom:.3rem;width:100%}
.civ-opt{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:.4rem 1.1rem;border:1.5px solid var(--c-line);border-radius:999px;background:#fff;cursor:pointer;font-weight:600}
.civ-opt input{width:20px;height:20px;min-height:0;accent-color:var(--c-primary)}
.civ-opt:has(input:checked){border-color:var(--c-primary);background:var(--c-soft)}
.civ .field-err{width:100%;margin:0}

/* Sous-catégories de la carte */
.menu-subcat{margin-top:2rem}
/* Sous-catégorie : surtitre en capitales espacées, rouge laque, losange doré + filet — distinct des catégories (grand Playfair) et des plats */
.subcat-title{display:flex;align-items:center;gap:.65rem;margin:0 0 .5rem;font-family:var(--f-body);font-size:1.25rem;font-weight:700;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--c-lacquer)}
.subcat-title::before{content:"";flex:none;width:.55rem;height:.55rem;background:var(--c-secondary);transform:rotate(45deg)}
.subcat-title::after{content:"";flex:1;min-width:1.5rem;height:1px;background:var(--c-gold-line)}

/* Boutons personnalisés des sections (5 max) : styles = couleurs du thème */
.btn-secondary{background:var(--c-secondary);color:var(--c-ink);border-color:var(--c-secondary)}
.btn-secondary:hover{background:color-mix(in srgb,var(--c-secondary) 88%,#000)}
.btn-light:hover{background:#fff;border-color:#fff}
.section-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.6rem}.section-actions .btn{width:100%}
@media (min-width:600px){.section-actions{flex-direction:row;flex-wrap:wrap}.section-actions .btn{width:auto}}

/* Message de la carte à emporter (offre) */
.notice-promo{background:color-mix(in srgb,var(--c-secondary) 16%,var(--c-bg));border-color:var(--c-secondary);color:var(--c-text);font-weight:600;text-align:center}

/* Information cookies */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:90;max-width:720px;margin-inline:auto;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:1rem 1.2rem;background:var(--c-bg);color:var(--c-text);border:1px solid var(--c-gold-line);border-radius:var(--radius);box-shadow:0 12px 36px -8px rgba(0,0,0,.3);font-size:.95rem}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:0;flex:1 1 320px}
.link-btn{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
.cookie-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.cookie-prefs{flex:1 1 100%;display:grid;gap:.5rem;justify-items:start;max-height:50vh;overflow:auto}.cookie-prefs[hidden]{display:none}.cookie-prefs .check{margin:0}

/* En-tête des pages intérieures (Carte, Réserver, Contact) : photo de la bannière voilée ou treillis, titre de page centré */
.section.has-page-head{padding-top:0}
.page-head{position:relative;isolation:isolate;overflow:hidden;margin-bottom:clamp(2.2rem,6vw,4rem);padding-block:clamp(3rem,10vw,6rem) clamp(2.5rem,8vw,4.5rem);background:var(--c-ink);color:var(--c-on-ink);text-align:center;border-bottom:3px solid var(--c-secondary)}
.page-head-media{position:absolute;inset:0;z-index:-2}.page-head-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.6)}
.page-head.has-image::after{content:"";position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--c-veil) 86%,transparent)}
.page-head:not(.has-image)::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-secondary);opacity:.1;-webkit-mask:var(--m-lattice) 0 0/56px 56px;mask:var(--m-lattice) 0 0/56px 56px}
.page-head .breadcrumb{display:flex;justify-content:center;gap:.6rem;margin-bottom:1rem;font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:color-mix(in srgb,var(--c-secondary) 55%,#fff)}
.page-head .breadcrumb a{text-decoration:none;opacity:.85}
.page-head h1{font-size:clamp(2.4rem,8vw,4.2rem);margin-bottom:0}
.page-head h1::after{content:"";display:block;width:120px;height:16px;margin:1rem auto 0;background:var(--c-secondary);-webkit-mask:var(--m-orn) center/contain no-repeat;mask:var(--m-orn) center/contain no-repeat}
.page-head-sub{margin:1rem auto 0;max-width:46ch;font-family:var(--f-head);font-weight:600;font-size:clamp(1.1rem,3.5vw,1.35rem);opacity:.92}

/* Réservation : formulaire + encadré « Bon à savoir » (sous le formulaire sur mobile, à droite sur ordinateur) */
.resa-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;align-items:start}
.resa-main>.resa:first-child{margin-top:0}
.resa-aside{padding:1.5rem;border-radius:var(--radius);background:var(--c-ink);color:var(--c-on-ink);position:relative;isolation:isolate;overflow:hidden}
.resa-aside::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-secondary);opacity:.08;-webkit-mask:var(--m-lattice) 0 0/56px 56px;mask:var(--m-lattice) 0 0/56px 56px}
.aside-title{font-size:1.5rem;margin-bottom:1rem}
.aside-title::after{content:"";display:block;width:90px;height:12px;margin-top:.6rem;background:var(--c-secondary);-webkit-mask:var(--m-orn) center/contain no-repeat;mask:var(--m-orn) center/contain no-repeat}
.aside-list li{display:flex;gap:.7rem;padding:.5rem 0;font-size:.95rem}
.aside-list .icon,.aside-sub .icon{color:var(--c-secondary);margin-top:.2em}
.resa-aside a{color:var(--c-on-ink);font-weight:600;font-size:1.05rem;display:inline-block;min-height:44px;padding-top:.3rem}
.aside-sub{display:flex;align-items:center;gap:.6rem;margin:1.2rem 0 .3rem;font-family:var(--f-body);font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--c-secondary)}
.aside-sub .icon{margin-top:0}
.resa-aside .hours-compact div{border-color:color-mix(in srgb,var(--c-on-ink) 12%,transparent)}.resa-aside .hours-compact dt{color:var(--c-on-ink)}
.section-reservation .form-error{margin-bottom:1rem}
@media (min-width:600px){.steps li{font-size:.85rem}}
@media (min-width:1000px){
  .resa-layout{grid-template-columns:minmax(0,1fr) 320px;gap:3rem}
  .resa-aside{position:sticky;top:calc(var(--header-h) + 1.5rem)}
}

/* Photo d'un plat : vignette inchangée, petite loupe ; ouverture dans la visionneuse */
.dish-img a{position:relative;display:block;border-radius:50%;cursor:zoom-in}
.dish-img a:focus-visible{outline-offset:3px}
.dish-zoom{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--c-bg);color:var(--c-ink);box-shadow:0 2px 8px rgba(0,0,0,.25);border:1px solid var(--c-gold-line)}
.dish-zoom svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
@media (hover:hover){.dish-img a img{transition:transform .3s var(--ease)}.dish-img a:hover img{transform:scale(1.04)}.dish-img a:hover .dish-zoom{background:var(--c-secondary)}}
.lightbox figcaption{display:flex;flex-direction:column;gap:.2rem;max-width:60ch;margin:.8rem auto 0}
.lightbox figcaption strong{font-family:var(--f-head);font-size:1.25rem;font-weight:600;font-style:normal}
.lightbox figcaption span{font-family:var(--f-body);font-style:normal;font-size:.95rem;opacity:.85}
.lb-nav[hidden]{display:none}
@media (max-width:699px){ /* téléphone : texte aligné sur le logo ; seule l'annonce garde une marge pour sa croix */
  .topbar{padding-inline:0}.topbar[data-topbar]{padding-right:2.5rem}
  .topbar p{justify-content:flex-start;text-align:left;align-items:flex-start}
  .topbar p>.icon{margin-top:.2em}
}

/* =====================================================================
   Carte (v2) : recherche, navigation des sous-catégories, quantités, prix lisibles, photos plus grandes.
   ===================================================================== */
.section-menu [hidden]{display:none!important}
.menu-cat,.menu-subcat{scroll-margin-top:calc(var(--header-h) + 76px)} /* sous l'en-tête et la barre de catégories collante */
.menu-search{position:relative;max-width:30rem;margin:0 0 .6rem}
.menu-search svg{position:absolute;left:.95rem;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:none;stroke:var(--c-muted);stroke-width:2;stroke-linecap:round;pointer-events:none}
.menu-search input{padding-left:2.7rem;border-radius:999px;background:var(--c-surface)}
.menu-empty{margin:2rem 0;text-align:center;color:var(--c-muted);font-family:var(--f-head);font-weight:600;font-size:1.15rem}
/* Sous-catégories d'une grande catégorie : pastilles d'accès direct (non collantes) */
.subnav{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 .2rem}
.subnav a{display:inline-flex;align-items:center;gap:.4rem;min-height:40px;padding:.3rem .85rem;border-radius:999px;border:1px solid var(--c-gold-line);background:var(--c-surface);color:var(--c-text);text-decoration:none;font-size:.9rem}
.subnav a span{font-size:.75rem;color:var(--c-muted);font-variant-numeric:tabular-nums}
.menu-subcat.is-untitled{margin-top:.6rem;padding-left:0;border-left:0}
/* Nom : la quantité « (4pcs) » devient une mention discrète */
.dish-qty{display:inline-block;margin-left:.35rem;font-family:var(--f-body);font-size:.78rem;font-weight:500;color:var(--c-muted);white-space:nowrap;vertical-align:.1em}
/* Prix en police de texte : chiffres alignés et « € » sans ambiguïté */
.dish-price strong{font-family:var(--f-body);font-weight:700;font-size:1rem;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.dish-price s{font-family:var(--f-body)}
/* Photos : vignette plus grande (les produits auront des photos) ; le texte reste aligné quand il n'y en a pas */
.dish-img{flex:0 0 88px}.dish-img img{width:88px;height:88px}
.dish.has-photo{align-items:flex-start}
@media (hover:hover){.subnav a:hover{border-color:var(--c-primary);color:var(--c-primary)}}
@media (min-width:768px){.dish-img{flex-basis:112px}.dish-img img{width:112px;height:112px}}
/* Plat avec photo : nom sur toute la largeur, prix dessous (pas de pointillés) — lisible à côté de la photo, même sur téléphone */
.dish.has-photo .dish-head{flex-direction:column;align-items:flex-start;gap:.15rem}
.dish.has-photo .dish-dots{display:none}
.dish.has-photo .dish-body{padding-top:.2rem}
/* Sous-catégorie : un cran au-dessus des noms de plats (1,12 / 1,2 rem), un cran sous les catégories (1,6 à 2 rem) */
@media (min-width:768px){.subcat-title{font-size:1.35rem}}

/* Allergies : encadré en tête de la carte (remplace la note de bas de page) — rouge laque + or, comme les surtitres du site */
.allergen-callout{display:flex;align-items:flex-start;gap:.9rem;margin:1.4rem 0 .2rem;padding:1rem 1.2rem;border:1px solid color-mix(in srgb,var(--c-lacquer) 35%,transparent);border-left:5px solid var(--c-lacquer);border-radius:var(--radius-sm);
  background:color-mix(in srgb,var(--c-lacquer) 7%,var(--c-bg));box-shadow:0 4px 14px -8px color-mix(in srgb,var(--c-lacquer) 45%,transparent)}
.allergen-callout .icon{flex:none;box-sizing:content-box;width:1.35rem;height:1.35rem;padding:.5rem;border-radius:50%;background:var(--c-lacquer);color:#fff;stroke-width:2}
.allergen-callout p{margin:0;font-size:1rem;line-height:1.5;color:var(--c-text)}
.allergen-callout strong{display:block;margin-bottom:.1rem;font-family:var(--f-head);font-size:1.2rem;font-weight:600;color:var(--c-lacquer)}
@media (min-width:600px){.allergen-callout{align-items:center}.allergen-callout strong{display:inline;margin:0 .25rem 0 0;font-size:1.1rem}}
.allergen-note{display:none} /* ancienne note de bas de page */

/* =====================================================================
   Couche « street food » Aki : ramen-ya de rue tokyoïte, ton jeune. Inspirée du menu imprimé (titres noirs condensés,
   katakana rouges, encadrés à bordure noire et ombre décalée rose). Bordures épaisses + ombres dures (« néo-brutalisme »),
   trame manga, rideau noren, tampons hanko, tickets de borne (食券). Chaque décor est aria-hidden ; animations coupées
   par prefers-reduced-motion (règle globale plus haut).
   ===================================================================== */
@font-face{font-family:'Aki JP';src:url('../fonts/dela-gothic-jp.woff2') format('woff2');font-display:swap} /* sous-ensemble : kana et kanji décoratifs du site */
main{overflow-x:clip} /* le bandeau incliné ne crée pas de défilement horizontal */

/* Typographie : titres condensés en capitales, japonais en rouge */
h1,h2,h3,.cat-title,.dish-name,.footer-brand,.brand{font-weight:400;text-transform:uppercase;letter-spacing:.01em}
h1{line-height:.92}h2{font-size:clamp(2.3rem,8vw,3.6rem);line-height:1}h3{font-size:1.45rem;line-height:1.1}
.section:not(.custom-colors)>.container>h2,.section:not(.custom-colors) .about-text>h2{color:var(--c-ink)}
.section>.container>h2::after,.about-text>h2::after,.page-head h1::after{background:var(--c-primary)}
.custom-colors>.container>h2::after,.custom-colors .about-text>h2::after{background:var(--c-secondary)}
.jp{font-family:var(--f-jp);font-weight:400;letter-spacing:0;text-transform:none;color:var(--c-primary)}
h1 .jp,h2 .jp,.cat-title .jp{font-size:.5em;vertical-align:.55em;margin-left:.2em}
.custom-colors .jp,.page-head .jp,.site-footer .jp{color:var(--c-secondary)}
.jp-kicker{font-family:var(--f-jp);color:var(--c-primary);font-size:1.05rem;letter-spacing:.35em;margin:0 0 .4rem;line-height:1.2}
.page-head .jp-kicker{color:var(--c-secondary)}
.lead{font-family:var(--f-body);font-weight:700;font-size:.82rem;letter-spacing:.16em}
mark.hl{color:var(--c-primary);background:linear-gradient(transparent 58%,color-mix(in srgb,var(--c-secondary) 75%,transparent) 58%,color-mix(in srgb,var(--c-secondary) 75%,transparent) 90%,transparent 90%);padding:0 .06em}

/* Boutons « autocollants » : bordure noire, ombre dure, enfoncement au clic */
.btn{font-family:var(--f-head);font-weight:400;text-transform:uppercase;letter-spacing:.06em;font-size:1.08rem;border:var(--line);box-shadow:var(--hard);transition:transform .12s var(--ease),box-shadow .12s var(--ease),background .2s,color .2s}
.btn-sm{font-size:.95rem;box-shadow:3px 3px 0 var(--c-ink)}
.btn-primary{border-color:var(--c-ink)}
.btn-secondary{background:var(--c-secondary);color:var(--c-ink);border-color:var(--c-ink)}
.btn-light,.hero:not(.has-image) .btn-light{background:#fff;color:var(--c-ink);border-color:var(--c-ink)}
.btn-outline{background:var(--c-bg);color:var(--c-ink);border-color:var(--c-ink)}
.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--c-ink)}
@media (hover:hover){
  .btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--c-ink)}
  .btn-primary:hover{box-shadow:6px 6px 0 var(--c-ink)}
  .btn-outline:hover{background:var(--c-secondary);color:var(--c-ink);border-color:var(--c-ink)}
}

/* En-tête */
.site-header{border-bottom:3px solid var(--c-ink)}
.brand{font-family:var(--f-head);font-size:1.45rem}
.brand-logo{border:2px solid var(--c-ink);border-radius:50%}
@media (min-width:768px){
  .main-nav a{font-weight:700;letter-spacing:.12em}
  .main-nav a::after{height:3px;background:var(--c-primary);bottom:.25rem}
}

/* Bannière : noren (rideau d'entrée des boutiques de ramen), trame manga, logo-tampon, nom vertical */
.hero:not(.has-image){justify-content:flex-start}
.hero:not(.has-image)::before{background:radial-gradient(var(--c-primary) 1.3px,transparent 1.8px) 0 0/16px 16px;opacity:.16;
  -webkit-mask:radial-gradient(circle at 82% 45%,#000 0,transparent 62%);mask:radial-gradient(circle at 82% 45%,#000 0,transparent 62%)}
.noren{display:flex;gap:5px;width:min(520px,calc(100% - 2 * var(--gutter)));margin:0 auto;border-top:9px solid #4a2c1a;border-radius:3px}
.noren span{flex:1;height:clamp(46px,11vw,104px);display:grid;justify-items:center;padding-top:.35em;background:var(--c-primary);color:var(--c-bg);
  font-family:var(--f-jp);font-size:clamp(1.4rem,5vw,2.4rem);line-height:1;border:2px solid var(--c-ink);border-top:0;border-radius:0 0 8px 8px;
  transform-origin:top center;animation:noren-sway 5s ease-in-out infinite}
.noren span:nth-child(2){animation-delay:-1.2s}.noren span:nth-child(3){animation-delay:-2.4s}.noren span:nth-child(4){animation-delay:-3.6s}
@keyframes noren-sway{0%,100%{transform:rotate(0)}50%{transform:rotate(1.4deg) skewX(-1deg)}}
.hero-vertical{display:none}
.hero:not(.has-image) .eyebrow{border:var(--line);box-shadow:3px 3px 0 var(--c-ink);transform:rotate(-3deg);color:var(--c-ink)}
.hero:not(.has-image) h1{font-size:clamp(3rem,13vw,6.2rem);max-width:12ch;color:var(--c-ink)}
.hero-sub{font-weight:500}
.hero-visual{position:relative;overflow:visible;background:transparent;box-shadow:none}
.hero-visual img{border-radius:50%;border:3px solid var(--c-ink);background:#fff;box-shadow:10px 10px 0 var(--c-pop)}
.hero-visual::after{content:"美味しい";content:"美味しい"/"";position:absolute;left:-8%;top:8%;padding:.45em .8em;border:var(--line);border-radius:999px;background:var(--c-primary);color:#fff;
  font-family:var(--f-jp);font-size:clamp(.8rem,2.6vw,1.15rem);line-height:1;box-shadow:3px 3px 0 var(--c-ink);transform:rotate(-12deg)}
.hero:not(.has-image) .hero-facts{background:var(--c-ink);border-top:3px solid var(--c-ink)}
@media (min-width:768px){
  .hero-visual img{box-shadow:16px 16px 0 var(--c-pop)}
  .hero:not(.has-image) .hero-inner{padding-block:2.5rem 4rem}
}
@media (min-width:1200px){
  .hero-vertical{display:block;position:absolute;right:1.4rem;top:150px;margin:0;writing-mode:vertical-rl;font-family:var(--f-jp);font-size:4.2rem;line-height:1;letter-spacing:.08em;
    color:transparent;-webkit-text-stroke:1.5px var(--c-primary);opacity:.55;pointer-events:none}
}

/* Bandeau défilant incliné (catégories) */
.ticker{position:relative;z-index:2;margin:-.4rem -1rem 0;overflow:hidden;background:var(--c-primary);color:#fff;border-block:3px solid var(--c-ink);transform:rotate(-1.3deg)}
.ticker-track{display:inline-flex;white-space:nowrap;padding:.55rem 0;animation:ticker 38s linear infinite}
.ticker-track>span{display:inline-flex;align-items:center;font-family:var(--f-head);font-size:clamp(1.25rem,4vw,1.7rem);text-transform:uppercase;letter-spacing:.04em}
.ticker-track>span::after{content:"✦";color:var(--c-secondary);margin:0 1.4rem;font-size:.8em}
.ticker .jp{color:var(--c-secondary);font-size:.75em;margin-left:.35em}
@keyframes ticker{to{transform:translateX(-50%)}}

/* Cartes des sections libres : bordure noire, ombres dures colorées, numéros en tampon hanko (一 二 三) */
.feature{background:#fff;border:var(--line);border-radius:18px;box-shadow:6px 6px 0 var(--c-pop)}
.feature:nth-child(3n+2){box-shadow:6px 6px 0 var(--c-secondary)}.feature:nth-child(3n){box-shadow:6px 6px 0 var(--c-primary)}
.feature h3{color:var(--c-ink);font-family:var(--f-head);font-size:1.7rem}
.feature p{color:var(--c-text)}
.feature-num{width:3.6rem;height:3.6rem;border-radius:12px;background:var(--c-primary);color:#fff;font-family:var(--f-jp);font-size:1.7rem;font-weight:400;border:var(--line);transform:rotate(-6deg);box-shadow:3px 3px 0 var(--c-ink)}
@media (hover:hover){.feature:hover{transform:translate(-3px,-3px) rotate(-.6deg)}}
/* Sur fond coloré : tickets de borne (食券) avec encoches et ligne de découpe */
.section-custom.custom-colors .features{counter-reset:ticket}
.section-custom.custom-colors .feature{position:relative;counter-increment:ticket;background:var(--c-bg);border:0;border-radius:10px;box-shadow:none;padding-top:2.9rem;
  -webkit-mask:radial-gradient(circle 13px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 13px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;
          mask:radial-gradient(circle 13px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 13px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat}
.section-custom.custom-colors .feature::before{content:"食券 · " counter(ticket,decimal-leading-zero);position:absolute;top:.8rem;left:1rem;right:1rem;padding-bottom:.5rem;border-bottom:2px dashed color-mix(in srgb,var(--c-ink) 35%,transparent);
  font-family:var(--f-jp);font-size:.8rem;letter-spacing:.2em;color:var(--c-primary);text-align:left}
.section-custom.custom-colors .feature-num{transform:rotate(4deg)}

/* Spécialités : trame manga, bols sur disque bordé, prix en étiquette inclinée */
.section-specialties:not(.custom-colors){background:var(--c-bg)}
.section-specialties::before{background:radial-gradient(var(--c-ink) 1px,transparent 1.5px) 0 0/14px 14px;opacity:.07;-webkit-mask:none;mask:none}
.card{background:#fff;border:var(--line);border-radius:18px;box-shadow:7px 7px 0 var(--c-pop)}
.card:nth-child(3n+2){box-shadow:7px 7px 0 var(--c-secondary)}.card:nth-child(3n){box-shadow:7px 7px 0 var(--c-primary)}
.card-img img{border:var(--line);background:var(--c-bg);box-shadow:none}
.card-num{display:inline-block;padding:.15rem .6rem;border:2px solid var(--c-ink);border-radius:999px;background:var(--c-secondary);color:var(--c-ink);font-size:.72rem;transform:rotate(-4deg)}
.card-body h3{font-family:var(--f-head);font-size:1.9rem;letter-spacing:.02em}
.card .price{color:var(--c-ink)!important;display:inline-block;margin-top:auto;padding:.25rem .9rem;border:var(--line);border-radius:10px;background:var(--c-secondary);font-family:var(--f-head);font-weight:400;font-size:1.45rem;transform:rotate(-3deg);box-shadow:3px 3px 0 var(--c-ink)}
.card .price::before{display:none}
@media (hover:hover){.card:hover{transform:translate(-4px,-4px) rotate(-.5deg)}.card:hover h3{color:var(--c-primary)}}

/* En-têtes des pages intérieures : charbon + trame rose */
.page-head{background:var(--c-ink);border-bottom:3px solid var(--c-ink)}
.page-head:not(.has-image)::before{background:radial-gradient(var(--c-pop) 1.3px,transparent 1.8px) 0 0/16px 16px;opacity:.22;-webkit-mask:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);mask:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent)}
.page-head h1{font-size:clamp(3rem,11vw,5.5rem)}
.page-head-sub{font-family:var(--f-body);font-weight:500}

/* Carte */
.mode-tabs{border:var(--line);background:#fff;box-shadow:3px 3px 0 var(--c-ink)}
.mode-tabs a{font-family:var(--f-head);font-weight:400;text-transform:uppercase;letter-spacing:.06em;font-size:1.05rem}
.mode-tabs a[aria-selected=true]{box-shadow:none}
.cat-chips-wrap{border-bottom:3px solid var(--c-ink)}
.cat-chips a{border:2px solid var(--c-ink);background:#fff;font-weight:700}
.cat-chips a.is-active{background:var(--c-ink);color:var(--c-bg)}.cat-chips a.is-active .jp{color:var(--c-secondary)}
.cat-chips .jp{font-size:.85em;margin-left:.3em}
.cat-title{font-family:var(--f-head);font-size:clamp(2.2rem,7vw,3rem)}
.cat-title::after{background:linear-gradient(var(--c-ink),var(--c-ink)) center/100% 3px no-repeat}
.cat-desc,.menu-empty{font-family:var(--f-body);font-weight:500} /* Anton reste réservé aux grands titres : illisible en petit corps */
.choice-h .opt-label,.formula-step .opt-label{font-family:var(--f-body);font-weight:700}
.dish-name{font-family:var(--f-head);font-size:1.4rem}
@media (min-width:768px){.dish-name{font-size:1.5rem}}
.dish-price strong{color:var(--c-primary);font-weight:800;font-size:1.08rem}
.dish-img img{border:2.5px solid var(--c-ink);background:var(--c-bg);box-shadow:3px 3px 0 var(--c-pop)}
.dish-zoom{border:2px solid var(--c-ink);box-shadow:none}
.menu-search input{border:var(--line)}
.allergen-callout{border:var(--line);border-left-width:8px;box-shadow:4px 4px 0 var(--c-ink)}

/* Infos pratiques, bandeau cookies */
.info-card{background:#fff;border:var(--line);box-shadow:6px 6px 0 var(--c-pop)}
.info-card+.info-card{box-shadow:6px 6px 0 var(--c-secondary)}
.info-card h3{font-family:var(--f-head);font-size:1.8rem}
.map{border:var(--line)}
.cookie-banner{border:var(--line);box-shadow:5px 5px 0 var(--c-ink)}

/* Pied de page : charbon, grand « ラーメン » en filigrane */
.site-footer{overflow:hidden;border-top:4px solid var(--c-primary)}
.site-footer::after{content:"ラーメン";content:"ラーメン"/"";position:absolute;right:-.05em;bottom:-.18em;z-index:-1;font-family:var(--f-jp);font-size:clamp(5rem,20vw,15rem);line-height:1;
  color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--c-on-ink) 14%,transparent);pointer-events:none}
.footer-brand{font-family:var(--f-head);font-size:2.4rem}
.footer-tagline{font-family:var(--f-body);font-weight:600}

/* Sélecteur de langue (<details>, sans JavaScript) : pastille « 🌐 FR », liste déroulante des langues écrites dans leur propre langue */
.lang-switch{position:relative}
.lang-switch summary{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;min-width:44px;padding:0 .7rem;border:2px solid var(--c-ink);border-radius:999px;background:#fff;
  font-weight:800;font-size:.85rem;letter-spacing:.06em;cursor:pointer;list-style:none;box-shadow:2px 2px 0 var(--c-ink)}
.lang-switch summary::-webkit-details-marker{display:none}
.lang-switch summary .icon{width:1.1em;height:1.1em}
.lang-switch[open] summary{background:var(--c-secondary)}
.lang-switch ul{position:absolute;right:0;top:calc(100% + .5rem);z-index:60;min-width:11rem;margin:0;padding:.35rem;background:#fff;border:var(--line);border-radius:14px;box-shadow:5px 5px 0 var(--c-ink)}
.lang-switch a{display:flex;align-items:center;gap:.7rem;min-height:44px;padding:.35rem .7rem;border-radius:10px;color:var(--c-ink);text-decoration:none;font-weight:600}
.lang-switch a:hover,.lang-switch a:focus-visible{background:var(--c-soft)}
.lang-switch a[aria-current]{background:var(--c-primary);color:#fff}
.lang-code{display:inline-grid;place-items:center;width:2rem;font-size:.72rem;font-weight:800;letter-spacing:.05em;opacity:.75}
/* Chinois : Anton et Inter n'ont pas de sinogrammes, le navigateur prend ces polices système (aucun téléchargement) */
:lang(zh) body,:lang(zh) h1,:lang(zh) h2,:lang(zh) h3,:lang(zh) .btn{font-family:var(--f-body),'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC',sans-serif}
:lang(zh) h1,:lang(zh) h2,:lang(zh) h3,:lang(zh) .cat-title,:lang(zh) .dish-name{font-family:var(--f-head),'PingFang SC','Microsoft YaHei','Noto Sans SC',sans-serif;font-weight:700}
