@charset "UTF-8";
/* Vlastní vzhled sekcí. Jedno pravidlo na řádek; responzivní úpravy jsou dole.
   Rozložení a zarovnání používají také utility Bootstrapu v HTML a app.js. */

/* Hlavička, navigace a sociální sítě */
.site-header { z-index: 50; top: 0px; background: rgba(17, 17, 15, 0.72); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.nav-wrap { height: 91px; gap: 30px; }
.brand { line-height: 1; }
.header-logo { width: 101px; height: auto; }
.nav-wrap nav { display: flex; align-items: center; gap: 31px; margin-left: 38px; }
.nav-wrap nav > a { font-size: 22px; font-weight: 300; color: rgb(255, 255, 255); }
.nav-wrap nav > a:hover { color: var(--yellow); }
.social-links { gap: 14px; }
.social-link { background: transparent; padding: 0px; line-height: 1; }
.social-icon { width: 32px; height: 32px; object-fit: contain; }
.nav-call { grid-template-columns: 32px auto; gap: 4px 10px; background: none; color: white; min-height: 42px; padding: 0px; }
.nav-call svg { grid-column: 1; grid-row: 1; width: 32px; height: 32px; fill: none; stroke: var(--yellow); stroke-width: 1.6; }
.nav-phone { grid-column: 2; grid-row: 1; font: 700 36px/1 var(--heading); letter-spacing: 0.5px; }
.nav-call-details { display: contents; }
.nav-hours { grid-column: 2; grid-row: 2; font: 400 12px/1.3 var(--body); color: var(--ink); }
.nav-call:hover .nav-phone { color: var(--yellow); }
.hamburger { display: none; }

/* Úvodní sekce */
.hero { isolation: isolate; background: var(--bg); }
.hero::before { content: ''; position: absolute; inset: 0; z-index: -2; background: url('assets/hero-banner-background.jpg') center 58% / cover no-repeat; }
.hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #11110fe6 0%, #11110fa6 34%, #11110f0d 70%, #11110f1a), linear-gradient(0deg, #11110f40, transparent 30%); }
.hero-inner { min-height: 595px; display: flex; z-index: 1; }
.hero-copy { padding-top: 12px; z-index: 2; width: 53%; pointer-events: none; }
.hero-copy > * { pointer-events: auto; }
.hero-description { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.65; color: #fff; margin-bottom: 30px; }
.hero-delivery { max-width: 440px; font-size: 14px; line-height: 1.6; color: var(--ink); margin: 0 0 26px; }
.hero-delivery strong { font-weight: 700; color: var(--yellow); }
.hero-actions { gap: 26px; }
.hero-actions .button, .contact-banner .button { min-width: 260px; min-height: 66px; padding: 18px 30px; gap: 20px; font-size: 18px; text-align: center; }
.hero-actions .button > span, .contact-banner .button > span { font-size: 26px; line-height: 1; }
.hero-visual { position: absolute; inset: 16px 0 12px 34%; z-index: 1; pointer-events: none; }
.hero-visual img { width: 100%; height: 100%; object-fit: contain; object-position: center 70%; filter: drop-shadow(0 18px 16px #0006); }
.food-stamp { --stamp-size: clamp(140px, 12vw, 170px); right: 11%; bottom: 44px; width: var(--stamp-size); height: var(--stamp-size); padding: 25px 12px; border: 2px solid #ffb48a; border-radius: 50%; background: linear-gradient(145deg, #ff5945, var(--red) 60%, #b82320); color: var(--ink); text-align: center; transform: rotate(8deg); box-shadow: 0 12px 30px #0006, 0 0 0 6px #e83b3126; }
.food-stamp::before { content: ''; position: absolute; inset: 7px; border: 1px dashed #ffd62d99; border-radius: 50%; }
.food-stamp span { font-size: calc(var(--stamp-size) * .065); letter-spacing: 1.2px; line-height: 1.8; }
.food-stamp strong { margin-block: 3px; font: 800 calc(var(--stamp-size) * .29)/.95 var(--heading); letter-spacing: -.7px; }
.food-stamp span:last-child { color: var(--yellow); }

/* Pás nabídky */
.ticker { background: var(--red); height: 48px; }
.ticker-track { width: max-content; font: 700 22px/1 var(--heading); letter-spacing: 2px; animation: ticker-scroll 100s linear infinite; }
.ticker-group { width: max-content; justify-content: flex-start; }
.ticker-item { flex-shrink: 0; }
.ticker-separator { margin-inline: 26px; color: var(--yellow); font: 20px/1 var(--body); }
.ticker:hover .ticker-track { animation-play-state: paused; }
.ticker:focus-visible { outline: 3px solid var(--yellow); outline-offset: -3px; }
.ticker:focus-visible .ticker-track { animation-play-state: paused; }
@keyframes ticker-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ticker-track { animation: none; } }

/* Jídelní lístek */
.menu-section { padding-block: 85px 75px; }
.menu-section h2 { font-size: var(--font-size-h2); overflow-wrap: anywhere; }
.menu-section noscript p { font-size: 14px; }
.section-top { display: flex; align-items: end; gap: 40px; margin-bottom: 32px; }
.menu-promotion { font-size: clamp(16px, 1.5vw, 20px); font-weight: 700; line-height: 1.45; margin: 0 0 20px; }
.menu-promotion span { color: var(--yellow); }
.menu-toolbar { padding: 17px 0px; align-items: center; gap: 20px; margin-bottom: 24px; }
.filter-tabs { gap: 8px; flex-wrap: wrap; flex: 1; min-width: 0; }
.filter-tabs button { color: #fff; background: transparent; font-size: 16.875px; padding: 10px 12px; border-radius: 4px; min-height: 36px; }
.filter-tabs button[aria-pressed="true"] { background: var(--yellow); color: #000; font-weight: bold; }
.filter-tabs button:not([aria-pressed="true"]):hover { background: rgb(38, 39, 30); color: rgb(255, 255, 255); }
.burger-deal { isolation: isolate; min-height: 180px; flex-wrap: wrap; gap: 20px; background: #151510; border: 1px solid rgb(110, 96, 45); padding: 28px 30px; border-radius: 5px; margin: 0px 0px 32px; }
.burger-deal::before { content: ''; position: absolute; inset: 0; z-index: -1; background: url('assets/burger-menu-bg.webp') center 58% / cover no-repeat; opacity: .28; }
.burger-deal > div { flex: 1 1 320px; }
.burger-deal p { color: var(--ink); }
.burger-deal strong { font: 800 44px/1 var(--heading); color: var(--yellow); margin-left: auto; }
.burger-deal strong small { font: 600 21px var(--heading); }
.menu-grid { columns: 3; column-gap: 35px; }
.menu-category { break-inside: avoid; padding-bottom: 29px; display: flow-root; }
.menu-category[data-group="pizza"] { break-inside: auto; }
.menu-category[data-group="pizza"] > h3, .menu-category[data-group="pizza"] > .category-subtitle { break-after: avoid; }
.menu-category h3, .burger-deal h3 { font: 700 32px/1.1 var(--heading); color: var(--yellow); letter-spacing: 0.1px; margin: 0px 0px 4px; overflow-wrap: anywhere; }
.category-subtitle { font-size: 18px; letter-spacing: 0.4px; color: #fff; font-style: italic; margin-bottom: 17px; }
.menu-item { break-inside: avoid; padding-block: 11px; border-top: 1px dashed rgba(255, 255, 255, 0.125); }
.item-line { gap: 6px 13px; flex-wrap: wrap; }
.item-line h4, .burger-deal p { font-size: 18px; line-height: 1.35; letter-spacing: 0.1px; margin: 0px; }
.item-line h4 { flex: 1 1 180px; }
.item-line-variants { flex-wrap: nowrap; }
.item-line-variants h4 { flex: 1 1 0; min-width: 0; }
.item-price { font: 700 22.5px/1.1 var(--heading); color: var(--yellow); margin-left: auto; text-align: right; }
.price-option { display: block; line-height: 1.35; }
.price-option > .price-eur { font-size: .75em; font-weight: 400; color: #fff; }
.menu-item p { font-size: 15px; color: rgb(149, 155, 137); line-height: 1.65; margin: 5px 0px 0px; padding-right: 12px; }

.menu-item p.item-allergens { color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.5; margin-top: 4px; }
.category-note { color: var(--muted); font-size: 15px; line-height: 1.65; margin: 0; }

/* Fotogalerie jídel */
.food-gallery-section { padding-bottom: 80px; }
.food-gallery-section h2 { margin-bottom: 32px; }
.food-gallery { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 16px 18px; align-items: center; }
.food-gallery-viewport { min-width: 0; overflow: hidden; border-radius: 8px; }
.food-gallery-track { --photo-count: 3; --photo-gap: 16px; display: flex; gap: var(--photo-gap); }
.food-gallery-slide { flex: 0 0 calc((100% - (var(--photo-count) - 1) * var(--photo-gap)) / var(--photo-count)); min-width: 0; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; background: var(--surface); }
.food-gallery-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.food-gallery-controls { grid-column: 2; display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--muted); font-size: 14px; }
@media (max-width: 920px) { .food-gallery-track { --photo-count: 2; } }
@media (max-width: 600px) {
 .food-gallery-section { padding-bottom: 45px; }
 .food-gallery-section h2 { font-size: 52px; margin-bottom: 24px; }
 .food-gallery { grid-template-columns: 32px minmax(0, 1fr) 32px; gap: 12px 8px; }
 .food-gallery .gallery-arrow { width: 32px; height: 32px; }
 .food-gallery-track { --photo-count: 1; }
}

/* Rozvoz a mapa */
.delivery-section { background: rgb(27, 29, 22); border-block: 1px solid rgb(43, 48, 34); padding-block: 73px; }
.delivery-grid { grid-template-columns: 1fr 1fr; gap: 74px; }
.delivery-copy h2 { margin-bottom: 28px; }
.delivery-intro { max-width: 48ch; margin: 0 0 28px; color: var(--muted); font-size: 17px; line-height: 1.6; }
.delivery-country-title { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font: 700 27px/1.2 var(--heading); color: var(--yellow); }
.country-flag { display: inline-block; flex: 0 0 auto; width: 27px; height: 18px; border-radius: 2px; box-shadow: 0 0 0 1px #ffffff25; }
.delivery-town-free { display: block; color: var(--yellow); font: 600 14px/1.4 var(--body); }
.delivery-country .delivery-destinations { font-size: 18px; gap: 10px 18px; }
.ticker-country { gap: 10px; }
.delivery-grid { align-items: start !important; }
.map-card { position: sticky; top: 120px; }
.footer .delivery-country-title { margin: 18px 0 12px; display: flex; gap: 8px; font: 700 19px/1.2 var(--heading); }
.footer .delivery-country-title .country-flag { width: 24px; height: 16px; }
.footer .delivery-town-free { font-size: 12px; }
.delivery-destinations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 20px; list-style: none; padding: 0; margin: 0 0 30px; color: var(--ink); font-size: 22px; line-height: 1.5; }
.delivery-destinations li { position: relative; padding-left: 16px; }
.delivery-destinations li::before { content: ''; position: absolute; left: 0; top: .6em; width: 5px; height: 5px; border-radius: 50%; background: var(--yellow); }
.delivery-pricing { container-type: inline-size; display: grid; grid-template-columns: 1fr; gap: 20px; align-items: start; padding: 22px; border: 1px solid #ffd62d55; border-radius: 6px; background: linear-gradient(120deg, #ffd62d12, #171a13); }
.delivery-rate > span, .delivery-free p { display: block; color: var(--ink); font-size: clamp(14px, 4.6cqi, 22px); line-height: 1.6; margin: 0 0 6px; white-space: nowrap; }
.delivery-free p .price-option { display: inline; }
.footer-contact p .price-option { display: inline; }
.delivery-rate > strong, .delivery-free strong { display: block; font: 800 clamp(20px, 7.5cqi, 38px)/1.1 var(--heading); color: var(--yellow); white-space: nowrap; }
.delivery-free { padding-top: 16px; border-top: 1px solid var(--line); color: var(--ink); }
.delivery-free b { white-space: nowrap; }
.delivery-free-title { color: #fff; }
.map-card { border: 1px solid rgba(78, 85, 64, 0.247); border-radius: 7px; background: rgb(24, 26, 22); }
.map-label { padding: 21px 25px; font: 700 32px/1.1 var(--heading); letter-spacing: 1px; color: var(--yellow); gap: 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.04); }
.map-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--yellow); }
.delivery-map { width: 100%; height: auto; }
.map-enlarge { display: flex; justify-content: space-between; gap: 12px; padding: 16px 22px; border-top: 1px solid #ffffff0a; color: var(--yellow); font-size: 15px; }
.map-enlarge:hover { background: #ffd62d0a; }

/* Rauty a catering */
.catering-section { grid-template-columns: 1fr 1fr; gap: 78px; padding-block: 87px; }
.catering-copy .section-description { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.65; color: #fff; margin: 24px 0; max-width: none; }
.catering-gallery { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 12px; align-items: center; min-width: 0; }
.gallery-frame { aspect-ratio: 3 / 4; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.gallery-frame img { width: 100%; height: 100%; object-fit: cover; }
.gallery-arrow { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--surface2); color: var(--ink); }
.gallery-arrow:hover { background: var(--yellow); color: var(--bg); }
.gallery-arrow svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gallery-controls { grid-column: 2; gap: 12px; color: var(--muted); font-size: 14px; }
.gallery-pause { padding: 7px 0; background: transparent; color: inherit; font-size: inherit; }
.gallery-pause:hover { color: var(--yellow); }
.catering-list { list-style: none; padding: 0px; margin: 0px 0px 28px; }
.catering-list li { padding: 14px 0; border-bottom: 1px solid var(--line); color: #fff; font-size: 18px; gap: 12px; }
.catering-list li span { color: var(--red); }

/* Kontaktní výzva */
.contact-banner { background: var(--red); padding-block: 39px; }
.contact-banner > .wrap { display: flex; gap: 32px; }
.contact-banner h2 { font-size: 65px; line-height: 1; }

/* Patička */
.footer { background: #0b0d09; padding-top: 56px; color: var(--ink); }
.footer-grid { grid-template-columns: .9fr 1.1fr 1.25fr 1.45fr; gap: 32px; padding-bottom: 44px; }
.footer-grid > div { min-width: 0; }
.footer-logo { width: 132px; height: auto; }
.footer h3 { font: 700 32px/1.1 var(--heading); color: var(--yellow); margin: 0 0 18px; }
.footer p, .footer address { font-size: 16px; line-height: 1.75; margin: 0 0 16px; }
.footer address { font-style: normal; }
.footer-brand p { margin-top: 18px; color: var(--muted); }
.footer-brand .footer-business { color: #fff; font-weight: 700; }
.footer-brand .footer-service { color: var(--ink); }
.footer-phone { color: #fff; font: 700 48px/1 var(--heading); margin-bottom: 16px; }
.footer-phone:hover { color: var(--yellow); }
.footer-highlight { color: var(--yellow); }
.footer .social-links { margin-top: 18px; }
.footer h4 { font-size: 16px; margin: 22px 0 12px; color: var(--yellow); }
.footer .footer-location h4 { font: 700 32px/1.1 var(--heading); }
.footer .opening-hours { color: var(--yellow); }
.footer dl { margin: 0; }
.opening-hours > div { gap: 16px; font-size: 15px; margin-bottom: 7px; max-width: 220px; }
.opening-hours dd { margin: 0; white-space: nowrap; }
.footer .footer-destinations { font-size: 16px; gap: 8px 12px; margin-bottom: 18px; }
.footer-credit a:hover { color: var(--muted); }
.footer-bottom { border-top: 1px solid var(--line); gap: 12px 24px; padding-block: 24px; }
.footer-copyright { font-size: 20px; font-weight: 700; }
.footer-credit { font-size: 12px; color: #72796b; }
.footer-credit a { color: inherit; }

/* Mobilní objednávková lišta */
.mobile-order { display: none; }

/* Dialogy */
dialog { width: min(520px, 100% - 36px); max-height: calc(-40px + 100svh); padding: 37px; background: rgb(28, 30, 23); color: rgb(249, 249, 235); border: 1px solid rgb(98, 105, 77); border-radius: 8px; box-shadow: rgba(0, 0, 0, 0.467) 0px 25px 80px; }
dialog::backdrop { background: rgba(0, 0, 0, 0.667); backdrop-filter: blur(7px); }
.dialog-close { top: 9px; right: 12px; width: 34px; height: 34px; background: none; color: rgb(181, 190, 162); font-size: 28px; line-height: 1; }
.dialog-label { color: var(--yellow); font-size: 8px; letter-spacing: 1.4px; margin-bottom: 15px; }
dialog h2 { font-size: 43px; line-height: 1; margin: 0px 0px 19px; }
dialog p, dialog li { font-size: 12px; color: rgb(176, 186, 160); line-height: 1.85; }
dialog ul { padding-left: 18px; margin-block: 18px 25px; }
dialog li { padding-bottom: 7px; }
dialog p:last-of-type { margin-bottom: 24px; }
dialog .button { width: 100%; }

/* Responzivní úpravy – původní breakpointy zachovány */
@media (min-width: 1500px) {
  .hero-inner { min-height: 660px; }
  .hero-visual { inset: 20px 0 0px 34%; }
  .hero-copy { padding-top: 8px; }
}

@media (max-width: 1150px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
  .nav-wrap { gap: 20px; }
  .nav-wrap nav { margin-left: 0px; gap: 22px; }
  .nav-wrap nav > a { font-size: 14px; }
  .hero-inner { min-height: 570px; }
  .hero-copy { width: 55%; }
  .hero-actions { gap: 16px; }
  .hero-visual { inset: 25px 0 15px 34%; }
  .food-stamp { right: 10%; bottom: 40px; }
  .menu-grid { column-gap: 25px; }
  .item-price { font-size: 21.25px; }
  .item-line h4, .burger-deal p { font-size: 16.5px; }
  .delivery-grid { gap: 45px; }
  .catering-section { gap: 43px; }
}

@media (max-width: 920px) {
  .nav-wrap nav { gap: 17px; }
  .nav-wrap nav > a { font-size: 14px; }
  .nav-call { gap: 4px 7px; }
  .nav-phone { font-size: 31.5px; }
  .hero-inner { min-height: 550px; }
  .hero-copy { width: 57%; }
  .hero-actions { gap: 15px; }
  .hero-visual { inset: 25px 0 15px 34%; }
  .food-stamp { right: 12%; }
  .menu-toolbar { align-items: start; }
  .filter-tabs { gap: 2px; }
  .filter-tabs button { font-size: 15.1875px; padding-inline: 9px; }
  .menu-grid { columns: 2; column-gap: 30px; }
  .menu-category h3, .burger-deal h3 { font-size: 31px; }
  .item-line h4, .burger-deal p { font-size: 18px; }
  .item-price { font-size: 22.5px; }
  .delivery-grid { gap: 30px; }
  .catering-section { gap: 30px; }
  .contact-banner h2 { font-size: 59px; }
}

@media (max-width: 720px) {
  .footer { padding-top: 36px; padding-bottom: 104px; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; padding-bottom: 30px; }
  .footer h3, .footer .footer-location h4 { font-size: 28px; }
  .footer-phone { font-size: 44px; }
  .footer .footer-destinations { font-size: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-copyright { font-size: 18px; }
  .nav-wrap { height: 75px; gap: 19px; }
  .header-logo { width: 81px; }
  .nav-call { margin-left: auto; min-height: 39px; gap: 4px; }
  .nav-phone { font-size: 34.5px; }
  .hamburger { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; width: 31px; height: 42px; flex-shrink: 0; padding: 0px; background: none; }
  .hamburger span { width: 21px; height: 2px; flex-shrink: 0; background: rgb(229, 233, 217); transition: transform 0.2s, opacity 0.2s; }
  .hamburger[aria-expanded="true"] span:first-child { transform: translateY(8px) rotate(45deg); }
  .hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .hamburger[aria-expanded="true"] span:last-child { transform: translateY(-8px) rotate(-45deg); }
  .nav-wrap nav { position: absolute; top: 75px; left: 0px; right: 0px; padding: 22px 25px 25px; background: rgba(23, 25, 18, 0.96); backdrop-filter: blur(22px); border-bottom: 1px solid rgb(75, 82, 54); display: none; flex-direction: column; gap: 0px; align-items: stretch; margin: 0px; }
  .nav-wrap nav.is-open { display: flex; }
  .nav-wrap nav > a { font-size: 24px; padding: 13px 0px; border-bottom: 1px solid rgba(255, 255, 255, 0.07); }
  .nav-wrap .social-links { align-self: flex-start; padding: 15px 0px 0px; }
  .hero-inner { display: block; min-height: 0px; padding-top: 41px; }
  .hero-copy { width: 100%; padding: 0px; }
  .hero-description { max-width: 350px; }
  .hero-actions { gap: 23px; }
  .hero::before { background-position: 62% bottom; background-size: auto 65%; }
  .hero::after { background: linear-gradient(180deg, #11110ff5 0%, #11110fe6 35%, #11110f40 70%, #11110f59); }
  .hero-visual { position: relative; inset: auto; width: 100%; margin: 12px 0 20px; height: auto; aspect-ratio: 1.2; z-index: 1; }
  .hero-visual img { object-position: center top; }
  .food-stamp { --stamp-size: 132px; right: 0; bottom: 0; }
  .ticker { height: 39px; }
  .ticker-track { font-size: 19px; letter-spacing: 1.5px; }
  .ticker-separator { margin-inline: 20px; font-size: 16px; }
  .menu-section { padding-block: 51px 41px; }
  .menu-section h2 { font-size: 61px; }
  .section-top { display: block; margin-bottom: 23px; }
  .menu-toolbar { flex-direction: row; align-items: center; margin-inline: -20px; padding: 6px 20px; position: sticky; top: 75px; background: rgba(17, 17, 15, 0.94); backdrop-filter: blur(12px); z-index: 25; gap: 8px; }
  .filter-tabs { flex: 1; flex-wrap: wrap; gap: 2px 5px; min-width: 0px; padding-block: 0; }
  .filter-tabs button { flex-shrink: 0; font-size: 16.875px; line-height: 1.25; padding: 4px 12px; min-height: 30px; }
  .burger-deal { padding: 16px 15px; gap: 12px; margin-bottom: 26px; }
  .burger-deal strong { font-size: 39px; align-self: center; }
  .burger-deal strong small { font-size: 19px; }
  .menu-grid { columns: 1; }
  .menu-category { padding-bottom: 27px; }
  .menu-category h3, .burger-deal h3 { font-size: 33px; }
  .category-subtitle { font-size: 20px; margin-bottom: 13px; }
  .menu-item { padding-block: 13px; }
  .item-line { gap: 15px; }
  .item-line h4, .burger-deal p { font-size: 19.5px; line-height: 1.5; }
  .item-price { font-size: 25px; }
  .menu-item p { font-size: 16.5px; line-height: 1.75; margin-top: 4px; color: rgb(164, 173, 152); max-width: 430px; }
  .delivery-section { padding-block: 43px; }
  .delivery-grid { grid-template-columns: 1fr; gap: 29px; }
  .map-card { position: static; }
  .delivery-destinations { font-size: 20px; gap: 12px 16px; }
  .delivery-pricing { padding: 18px; gap: 16px; }
  .map-label { padding: 17px 20px; font-size: 28px; }
  .catering-section { padding-block: 45px; grid-template-columns: 1fr; gap: 27px; }
  .catering-copy { order: -1; }
  .catering-gallery { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 10px; }
  .gallery-arrow { width: 40px; height: 40px; }
  .catering-list li { font-size: 17px; }
  .contact-banner { padding-block: 29px; }
  .contact-banner > .wrap { display: block; }
  .contact-banner h2 { font-size: 58px; }
  .contact-banner .button { margin-top: 23px; }
  .mobile-order { display: flex; position: fixed; bottom: 0px; left: 0px; right: 0px; z-index: 60; align-items: center; justify-content: space-between; gap: 12px; min-height: 84px; padding: 16px 16px max(16px,env(safe-area-inset-bottom)); background: rgba(21, 24, 16, 0.92); backdrop-filter: blur(15px); border-top: 1px solid rgb(80, 89, 62); }
  .mobile-order > span { flex: 1; min-width: 0; font: 700 24px/1.1 var(--heading); letter-spacing: 0.3px; }
  .mobile-order button { flex-shrink: 0; background: var(--yellow); color: rgb(20, 24, 14); font-size: 20px; line-height: 1.2; font-weight: bold; border-radius: 4px; padding: 12px 18px; min-width: 132px; min-height: 50px; display: flex; justify-content: space-between; gap: 14px; align-items: center; }
  .mobile-order button > span { font-size: 20px; font-weight: normal; line-height: 1; }
  dialog { padding: 31px 23px 25px; }
  dialog h2 { font-size: 39px; }
  dialog p, dialog li { font-size: 11px; }
}

@media (max-width: 370px) {
  .delivery-destinations { grid-template-columns: 1fr; }
  .delivery-pricing { padding: 15px; gap: 12px; }
  .delivery-free { font-size: 14px; }
  .nav-wrap { gap: 12px; }
  .header-logo { width: 72px; }
  .nav-phone { font-size: 33px; }

  @media (max-width: 350px) {
    .nav-wrap { gap: 8px; }
    .header-logo { width: 60px; }
  }
  .hero-inner { padding-top: 33px; }
  .hero-actions { gap: 16px; }
  .menu-toolbar { margin-inline: -16px; padding-inline: 16px; }
  .burger-deal strong { font-size: 33px; }
  .contact-banner h2 { font-size: 52px; }
}

@media (min-width: 721px) and (max-width: 820px) {
  .nav-wrap { gap: 12px; }
  .header-logo { width: 81px; }
  .nav-wrap nav { gap: 12px; }
}

/* Větší typografie nabídky burger menu pouze na desktopu. */
@media (min-width: 921px) {
  .burger-deal h3 { font-size: 48px; }
  .burger-deal p { font-size: 27px; }
  .burger-deal strong { font-size: 66px; }
  .burger-deal strong small { font-size: 31.5px; }
}
@media (min-width: 921px) and (max-width: 1150px) {
  .burger-deal p { font-size: 24.75px; }
}

/* Na užších tabletech zůstane celá koláž pod textem, bez překrývání. */
@media (min-width: 721px) and (max-width: 920px) {
  .hero-inner { display: block; min-height: 0; padding-top: 42px; }
  .hero-copy { width: 100%; padding: 0; }
  .hero-description { max-width: 540px; }
  .hero-visual { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 1.5; margin: 20px 0 30px; }
  .hero-visual img { object-position: center; }
  .food-stamp { right: 12px; bottom: 6px; }
}

@media (min-width: 921px) and (max-width: 1200px) {
  .hero-description { max-width: 30vw; }
}

/* Odkaz z menu a samostatný přehled alergenů */
.menu-allergens-link { margin: 18px 0 0; font-size: 18px; text-align: center; }
.menu-allergens-link a, .allergens-back, .allergens-source a { color: var(--yellow); text-decoration: underline; text-underline-offset: 4px; }
.menu-allergens-link a:hover, .allergens-back:hover, .allergens-source a:hover { color: var(--ink); }
.allergens-back { font-size: 16px; font-weight: 700; }
.allergens-content { padding-block: 60px; }
.allergens-content h1 { font-size: clamp(42px, 7vw, 76px); line-height: 1; margin-bottom: 24px; overflow-wrap: anywhere; }
.allergens-intro { font-size: 18px; line-height: 1.6; margin-bottom: 16px; }
.allergens-wheat { font-size: 16px; color: var(--muted); margin-bottom: 32px; }
.allergens-wheat strong { color: var(--ink); }
.allergens-list { list-style: none; padding: 0; margin: 0 0 32px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.allergens-list li { display: flex; align-items: start; gap: 16px; padding-block: 20px; border-top: 1px dashed var(--line); }
.allergen-number { flex: 0 0 32px; color: var(--yellow); font: 700 30px/1.15 var(--heading); }
.allergens-list h2 { font: 700 26px/1.2 var(--heading); letter-spacing: 0; margin-bottom: 8px; }
.allergens-list p { font-size: 16px; line-height: 1.6; color: var(--muted); margin-bottom: 0; }
.allergens-source { color: var(--muted); font-size: 14px; line-height: 1.6; margin-bottom: 24px; }
@media (max-width: 720px) {
 .allergens-content { padding-block: 36px; }
 .allergens-back { font-size: 14px; }
 .allergens-list { grid-template-columns: 1fr; }
}
