/* ========================================
   Template : Bouchon
   Bistrot lyonnais rétro : Abril Fatface + Lora,
   bordeaux sur crème, liseré vichy, pointillés.
   ======================================== */
.menu-template.bouchon {
    --t-primary: var(--custom-primary, #7a1f2b);
    --t-secondary: var(--custom-secondary, #835a24);
    --t-bg: var(--custom-bg, #f6efe2);
    --t-text: var(--custom-text, #3a2a26);
    --t-heading-font: var(--custom-heading-font, 'Abril Fatface', Georgia, serif);
    --t-body-font: var(--custom-body-font, 'Lora', Georgia, serif);
    container-type: inline-size;
    background: var(--t-bg);
    color: var(--t-text);
    font-family: var(--t-body-font);
    padding: 7% 7.5% 6%;
    text-align: center;
}
/* Papier légèrement grené + liseré vichy haut et bas */
.bouchon .menu-texture-overlay {
    background-image:
        radial-gradient(rgba(122,31,43,.035) 1px, transparent 1.2px),
        linear-gradient(transparent, transparent);
    background-size: 5px 5px;
    opacity: 1;
}
.menu-template.bouchon::before,
.menu-template.bouchon::after {
    content: ''; position: absolute; left: 0; right: 0; height: 14px; z-index: 1;
    background:
        repeating-linear-gradient(90deg, rgba(122,31,43,.85) 0 7px, transparent 7px 14px),
        repeating-linear-gradient(0deg, rgba(122,31,43,.45) 0 7px, transparent 7px 14px);
    background-color: #f1e2d3;
}
.menu-template.bouchon::before { top: 0; }
.menu-template.bouchon::after { bottom: 0; }
.bouchon .menu-header { margin: 18px 0 34px; }
.bouchon .menu-header-line {
    width: 64px; height: 3px; margin: 0 auto 18px; background: var(--t-primary); border-radius: 2px;
}
.bouchon .menu-restaurant-name {
    font-family: var(--t-heading-font); font-weight: 400;
    font-size: 3.4em; line-height: 1.02; letter-spacing: .005em; margin: 0;
    color: var(--t-primary);
}
.bouchon .menu-restaurant-subtitle {
    margin: 12px 0 0; font-style: italic; font-size: 1.05em; color: var(--t-secondary);
}
.bouchon .menu-header-deco { margin-top: 14px; color: var(--t-primary); }
.bouchon .menu-restaurant-logo { margin: 0 auto 14px; }
.bouchon .menu-category { margin-bottom: 34px; }
.bouchon .menu-category-name {
    display: inline-block; margin: 0; padding: 6px 22px 5px;
    font-family: var(--t-heading-font); font-weight: 400; font-size: 1.55em; letter-spacing: .04em;
    color: #f6efe2; background: var(--t-primary); border-radius: 3px;
    transform: rotate(-1.2deg); box-shadow: 3px 3px 0 rgba(122,31,43,.18);
}
.bouchon .menu-category-desc { margin: 10px 0 0; font-style: italic; font-size: .9em; opacity: .8; }
.bouchon .menu-category-separator { margin: 10px 0 14px; color: var(--t-secondary); }
.bouchon .menu-category-separator .menu-svg-ornament { width: 110px; }
.bouchon .menu-item { margin: 0 0 14px; text-align: left; }
.bouchon .menu-item-header { display: flex; align-items: baseline; gap: 8px; }
.bouchon .menu-item-name { font-weight: 600; font-size: 1.08em; color: var(--t-text); }
.bouchon .menu-item-dots { flex: 1; min-width: 16px; border-bottom: 2px dotted rgba(122,31,43,.45); transform: translateY(-4px); }
.bouchon .menu-item-price { font-family: var(--t-body-font); font-weight: 600; font-size: 1.08em; color: var(--t-primary); }
.bouchon .menu-item-description { margin: 2px 0 0; font-size: .88em; font-style: italic; opacity: .82; }
.bouchon .menu-footer { margin-top: 28px; padding-top: 16px; border-top: 1px dashed rgba(122,31,43,.35); font-size: .9em; }
.bouchon .menu-restaurant-info p { margin: 2px 0; }
@container (max-width: 520px) {
    .bouchon .menu-restaurant-name { font-size: 2.5em; }
    .bouchon .menu-category-name { font-size: 1.3em; }
    .bouchon .menu-item-name, .bouchon .menu-item-price { font-size: 1em; }
}
