/* Beer House Accessibility V6 / Stage 1
   All styling is scoped to the accessibility widget or explicitly opted-in classes.
   Existing style.css remains unchanged. */
#bh-a11y-root { position:fixed; right:14px; bottom:18px; z-index:2147483000; direction:ltr; font: 15px/1.45 Arial,sans-serif; color:#f6e6c7; }
#bh-a11y-root, #bh-a11y-root * { box-sizing:border-box; }
#bh-a11y-root button, #bh-a11y-root input { font:inherit; }
#bh-a11y-root .bha-launch { background:#15120d; border:2px solid #d9b36d; color:#f0c776; width:55px; height:55px; border-radius:50%; display:grid; place-items:center; cursor:pointer; box-shadow:0 4px 17px #0009; font-size:27px; }
#bh-a11y-root .bha-launch:focus-visible, #bh-a11y-root .bha-panel :focus-visible { outline:3px solid #fff; outline-offset:3px; }
#bh-a11y-root .bha-panel[hidden] { display:none!important; }
#bh-a11y-root .bha-panel { position:absolute; right:0; bottom:66px; width:min(356px,calc(100vw - 24px)); max-height:min(690px,calc(100dvh - 105px)); overflow-y:auto; overscroll-behavior:contain; background:#17140f; border:1px solid #947347; border-radius:15px; box-shadow:0 9px 35px #000d; color:#f6e6c7; padding:17px; direction:var(--bha-dir,ltr); }
#bh-a11y-root .bha-head { display:flex; align-items:center; justify-content:space-between; gap:8px; border-bottom:1px solid #645237; padding-bottom:11px; margin-bottom:12px; }
#bh-a11y-root .bha-brand {font-weight:700; letter-spacing:1px; color:#e4b967; font-size:17px; }
#bh-a11y-root .bha-sub {font-size:12px; color:#c8b797;}
#bh-a11y-root .bha-close { border:1px solid #705a38; background:#2d2419; color:#f1dab3; border-radius:8px; min-width:36px; min-height:36px; cursor:pointer; }
#bh-a11y-root .bha-heading { font-size:14px; color:#efcc89; margin:14px 0 7px; font-weight:700; }
#bh-a11y-root .bha-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
#bh-a11y-root .bha-option { min-height:69px; padding:9px 7px; background:#262118; border:1px solid #66553a; color:#e8dfcf; border-radius:9px; cursor:pointer; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; text-align:center; line-height:1.2; font-size:12px; }
#bh-a11y-root .bha-option .bha-symbol { font-size:21px; color:#d8b16c; }
#bh-a11y-root .bha-option[aria-pressed="true"] { background:#594322; border-color:#ffda91; color:#fff6e6; }
#bh-a11y-root .bha-range { display:flex; align-items:center; gap:8px; padding:7px 0; }
#bh-a11y-root .bha-range label { flex:1; font-size:13px; }
#bh-a11y-root .bha-range output { width:43px; text-align:end; font-size:12px; color:#f2cd8b; }
#bh-a11y-root input[type="range"] { width:125px; max-width:43%; accent-color:#e3ba70; cursor:pointer; }
#bh-a11y-root .bha-reset { width:100%; min-height:40px; background:#2b2115; color:#f1cc87; border:1px solid #a27e47; border-radius:8px; margin-top:15px; cursor:pointer; }
#bh-a11y-root .bha-tip { color:#bcad93; font-size:11px; margin-top:10px; }
@media(max-width:480px){#bh-a11y-root {bottom:12px;right:11px;} #bh-a11y-root .bha-panel {bottom:65px;} }
/* Opt-in modes only — the default Beer House stylesheet is untouched. */
/* V6.3: Do not zoom page containers. Font sizes are increased below. */
html.bha-grayscale body > :not(#bh-a11y-root):not(script) { filter:grayscale(1); }
html.bha-dim body > :not(#bh-a11y-root):not(script) { filter:brightness(.72); }
html.bha-bright body > :not(#bh-a11y-root):not(script) { filter:brightness(1.35); }
html.bha-contrast body > :not(#bh-a11y-root):not(script) { filter:contrast(1.8); }
html.bha-no-images body > :not(#bh-a11y-root) img { visibility:hidden!important; }
html.bha-readable body > :not(#bh-a11y-root) { font-family:Arial,Verdana,sans-serif!important; }
html.bha-readable body > :not(#bh-a11y-root) * { font-family:Arial,Verdana,sans-serif!important; }
html.bha-links body > :not(#bh-a11y-root) a { text-decoration:underline!important; text-decoration-thickness:2px!important; text-underline-offset:3px!important; }
html.bha-headings body > :not(#bh-a11y-root) :is(h1,h2,h3,h4) { outline:2px dashed #ffe19b!important; outline-offset:3px; }
html.bha-stop-motion body > :not(#bh-a11y-root), html.bha-stop-motion body > :not(#bh-a11y-root) * { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
html.bha-spacing body > :not(#bh-a11y-root) {letter-spacing:var(--bha-letters,0px)!important;word-spacing:var(--bha-words,0px)!important;line-height:var(--bha-lines,1.5)!important;}
html.bha-spacing body > :not(#bh-a11y-root) :is(p,span,a,button,div,h1,h2,h3,li) {letter-spacing:var(--bha-letters,0px)!important;word-spacing:var(--bha-words,0px)!important;line-height:var(--bha-lines,1.5)!important;}
@media(pointer:fine){html.bha-big-cursor body > :not(#bh-a11y-root) { cursor:crosshair!important; }}
/* Usable keyboard focus without modifying the normal (mouse/touch) appearance. */
body :focus-visible { outline:3px solid #f8d58b; outline-offset:3px; }

/* Stage 2: hide photographic CSS backgrounds only when the visitor opts in.
   Default mode and original style.css are not touched. */
html.bha-no-images .hero,
html.bha-no-images .category-card {
    background-image: none !important;
}
/* =========================================================
   ACCESSIBILITY V6.2 — FOOD MODAL AT 125–200%
   Keep the modal within the viewport.
   Enlarge text without enlarging the entire dialog.
   Normal 100% appearance remains unchanged.
   ========================================================= */

/* Do not zoom the whole Food modal */
/* Enlarge only the dish name */
html.bha-zoom .food-modal-content h2 {
    font-size: calc(24px * var(--bha-scale, 1)) !important;
}

/* Enlarge the price */
html.bha-zoom .food-modal-price {
    font-size: calc(22px * var(--bha-scale, 1)) !important;
}

/* Enlarge the description */
html.bha-zoom .food-modal-content p {
    font-size: calc(16px * var(--bha-scale, 1)) !important;
}

/* Ensure content can scroll when enlarged */
html.bha-zoom .food-modal-content {
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}
/* =========================================================
   ACCESSIBILITY V6.2 — COCKTAIL MODAL AT 125–200%
   Keep dialog dimensions stable and enlarge its text.
   The original appearance at 100% is unchanged.
   ========================================================= */

html.bha-zoom .cocktail-modal-name {
    font-size: calc(23px * var(--bha-scale, 1)) !important;
}

html.bha-zoom .cocktail-modal-price {
    font-size: calc(20px * var(--bha-scale, 1)) !important;
}

html.bha-zoom .cocktail-modal-description {
    font-size: calc(14px * var(--bha-scale, 1)) !important;
}

html.bha-zoom .cocktail-modal-content {
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

/* =============================================================
   ACCESSIBILITY V6.3 — RESPONSIVE TEXT ENLARGEMENT
   Opt-in only: nothing changes at the default 100% setting.
   Do not zoom layout boxes: fixed overlays, viewport widths and
   images must remain inside the screen on mobile devices.
   ============================================================= */

/* Shared content; the values follow the public Beer House stylesheet. */
html.bha-zoom .menu-title { font-size: calc(22px * var(--bha-scale)) !important; }
html.bha-zoom .back-button { font-size: calc(14px * var(--bha-scale)) !important; }
html.bha-zoom .beer-section-title { font-size: calc(16px * var(--bha-scale)) !important; }
html.bha-zoom .category-he,
html.bha-zoom .category-ru,
html.bha-zoom .category-en { font-size: calc(18px * var(--bha-scale)) !important; }
html.bha-zoom .category-card { height:auto; min-height:110px; padding-block:14px; }
html.bha-zoom .category-text { min-width:0; overflow-wrap:anywhere; }
html.bha-zoom .category-link, html.bha-zoom .beer-card { min-width:0; }
html.bha-zoom .beer-card { height:auto; min-height:96px; }
html.bha-zoom .beer-card .beer-name { font-size: calc(18px * var(--bha-scale)) !important; }
html.bha-zoom .beer-card .beer-info { font-size: calc(15px * var(--bha-scale)) !important; }
html.bha-zoom .beer-card .beer-prices { font-size: calc(13px * var(--bha-scale)) !important; }

/* Food, beer, wine, alcohol and soft-drink lists. */
html.bha-zoom .food-name,
html.bha-zoom .wine-name,
html.bha-zoom .alcohol-name,
html.bha-zoom .bottle-name,
html.bha-zoom .cocktail-name,
html.bha-zoom .drink-name { font-size: calc(17px * var(--bha-scale)) !important; }
html.bha-zoom .food-price,
html.bha-zoom .wine-price,
html.bha-zoom .alcohol-price,
html.bha-zoom .bottle-price,
html.bha-zoom .cocktail-price,
html.bha-zoom .drink-price { font-size: calc(17px * var(--bha-scale)) !important; }
html.bha-zoom .wine-description,
html.bha-zoom .drink-description { font-size: calc(13px * var(--bha-scale)) !important; }
html.bha-zoom .food-tab,
html.bha-zoom .alcohol-tab { font-size: calc(14px * var(--bha-scale)) !important; }
html.bha-zoom :is(.food-row,.wine-row,.alcohol-row,.bottle-row,.cocktail-row,.drink-row) { min-width:0; }
html.bha-zoom :is(.food-name,.wine-name,.alcohol-name,.bottle-name,.cocktail-name,.drink-name) { min-width:0; overflow-wrap:anywhere; }
html.bha-zoom :is(.food-price,.wine-prices,.alcohol-prices,.bottle-options,.cocktail-price,.drink-price) { overflow-wrap:anywhere; }
html.bha-zoom :is(.food-tabs,.alcohol-tabs) { flex-wrap:wrap; }

/* Main page: keep the actual header and hero widths, grow text only.
   On a narrow screen, controls move to their own row instead of
   forcing the page to scroll sideways. */
html.bha-zoom .header { flex-wrap:wrap; gap:12px; height:auto; }
html.bha-zoom .brand { flex:1 1 100%; min-width:0; }
html.bha-zoom .logo { min-width:0; }
html.bha-zoom .logo-title { font-size: calc(24px * var(--bha-scale)) !important; overflow-wrap:anywhere; }
html.bha-zoom .logo-subtitle { font-size: calc(8px * var(--bha-scale)) !important; overflow-wrap:anywhere; }
html.bha-zoom .header-right { margin-inline-start:auto; min-width:0; }
html.bha-zoom .language { font-size: calc(13px * var(--bha-scale)) !important; }
html.bha-zoom .menu-button { font-size: calc(27px * var(--bha-scale)) !important; }
html.bha-zoom .hero { height:auto; min-height:290px; overflow:visible; }
html.bha-zoom .hero-content { min-width:0; max-width:100%; }
html.bha-zoom .hero-small { font-size: calc(10px * var(--bha-scale)) !important; overflow-wrap:anywhere; }
html.bha-zoom .hero h1 { font-size: calc(27px * var(--bha-scale)) !important; overflow-wrap:anywhere; }
html.bha-zoom .side-menu-title { font-size: calc(20px * var(--bha-scale)) !important; overflow-wrap:anywhere; }
/* Масштабирование всех пунктов гамбургер-меню */
html.bha-zoom .side-menu-links a,
html.bha-zoom .side-menu-promotions,
html.bha-zoom .side-menu-links .side-menu-feedback {
    font-size: calc(17px * var(--bha-scale)) !important;
    overflow-wrap: anywhere;
}

/* Promotions remain viewport-sized, with scrollable text. */
html.bha-zoom .promotions-title { font-size:calc(22px * var(--bha-scale)) !important; overflow-wrap:anywhere; }
html.bha-zoom .promotions-description { font-size:calc(16px * var(--bha-scale)) !important; overflow-wrap:anywhere; }
html.bha-zoom .promotions-modal { max-width:calc(100vw - 24px); }

/* Both photo dialogs were manually checked on desktop + iPhone at 200%.
   Keep their scroll mechanisms, and prevent overlong dish names from
   producing horizontal overflow. */
html.bha-zoom :is(.food-modal,.cocktail-modal) { max-width:100vw; }
html.bha-zoom :is(.food-modal-content,.cocktail-modal-content) { min-width:0; overflow-wrap:anywhere; }
html.bha-zoom .food-modal-content :is(h2,p),
html.bha-zoom .cocktail-modal-content :is(h2,p) { overflow-wrap:anywhere; }
html.bha-zoom .food-modal-content #sideDishTitle { font-size:calc(16px * var(--bha-scale)) !important; }

@media (max-width: 600px) {
  html.bha-zoom .header { padding-inline:12px; }
  html.bha-zoom .header-right { flex-wrap:wrap; justify-content:flex-end; }
  html.bha-zoom .languages { flex-wrap:wrap; }
  html.bha-zoom .hero { padding:20px 14px; }
  html.bha-zoom .menu { padding-inline:14px; }
  html.bha-zoom .category-card { padding-inline:12px; }
  html.bha-zoom .category-icon { flex-shrink:0; }
  html.bha-zoom .category-arrow { flex-shrink:0; }
  html.bha-zoom .cocktail-modal { padding:20px 12px; }
  html.bha-zoom .food-modal { padding:12px; }
}

/* Beer House — пространство для кнопки доступности
   в открытом гамбургер-меню при увеличении текста.
   Не меняет дизайн и положение меню. */

html.bha-zoom .side-menu {
    padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px));
    scroll-padding-bottom: 110px;
}