/* Shared responsive layout, loaded after the page styles. */
@media (min-width:921px) and (max-width:1200px) {
  .nav .nav-inner { grid-template-columns:170px minmax(0,1fr) auto; gap:12px; }
  .nav .brand img { width:170px; }
  .nav .menu { gap:12px; font-size:11px; }
  .nav .nav-actions { gap:8px; }
  .nav .nav-actions>.btn { padding:12px; font-size:12px; }
}
@media (min-width:921px) {
  .dish-image { background-size:cover; }
}
.mobile-bottom-nav,.mobile-toggle { display:none; }
html.drawer-open { overflow:hidden; }
.mobile-drawer { position:fixed; inset:0 0 0 auto; margin:0; width:min(340px,88vw); max-width:none; height:100dvh; max-height:none; box-sizing:border-box; padding:24px 20px max(24px,env(safe-area-inset-bottom)); border:0; border-left:1px solid var(--line); background:#181310; color:#fff; transform:translateX(100%); transition:transform .24s ease; }
.mobile-drawer[open] { display:flex; flex-direction:column; }
.mobile-drawer.is-open { transform:translateX(0); }
.mobile-drawer::backdrop { background:rgba(0,0,0,.65); backdrop-filter:blur(4px); }
.drawer-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:26px; border-bottom:1px solid var(--line); }
.drawer-logo { display:flex; align-items:center; min-width:0; min-height:44px; }
.drawer-logo img { width:220px; max-width:100%; height:auto; }
.drawer-close { flex:0 0 44px; height:44px; border:1px solid var(--line); border-radius:12px; color:#fff; background:#ffffff08; font-size:30px; }
.drawer-links { display:flex; flex-direction:column; gap:8px; padding:24px 0; }
.drawer-links a { padding:16px; border-radius:12px; font-size:18px; }
.drawer-links a:hover,.drawer-links a.active { color:var(--orange); background:#ff5f2e14; }
.drawer-book { margin-top:auto; flex-shrink:0; }
@media (prefers-reduced-motion:reduce) { .mobile-drawer { transition:none; } }
.field,.form-grid>* { min-width:0; max-width:100%; }
:focus-visible { outline:2px solid var(--orange); outline-offset:4px; }
@media (max-width:1080px) {
  .footer-grid { grid-template-columns:1fr; gap:36px; }
  .warm-story-frame { width:100%; min-height:0; padding:0; gap:32px; }
  .split-story,.inner-section.cream .split-story { gap:32px; }
}
@media (max-width:920px) {
  html { scroll-padding-top:88px; scroll-padding-bottom:90px; }
  body { padding-bottom:calc(72px + env(safe-area-inset-bottom)); }
  .nav,.inner-nav,.nav:hover { position:fixed; top:0; background:rgba(12,10,9,.97); backdrop-filter:blur(16px); border-bottom:1px solid var(--line); z-index:40; }
  .nav .nav-inner { grid-template-columns:minmax(0,1fr) auto; min-height:72px; gap:12px; }
  .nav .brand img { width:clamp(140px,24vw,210px); }
  .nav .nav-actions { gap:8px; }
  .nav .nav-actions>.btn { display:none; }
  .nav .icon-btn,.mobile-toggle { width:42px; height:42px; min-width:42px; }
  .mobile-toggle { display:block; padding:10px; border:1px solid var(--line); border-radius:12px; background:#211c18; }
  .mobile-toggle span { display:block; height:2px; margin:4px 0; background:#fff; }
  .nav .menu { display:none; position:absolute; top:80px; left:16px; right:16px; padding:12px; gap:4px; max-height:calc(100dvh - 170px); overflow:auto; border:1px solid var(--line); border-radius:18px; background:#181310; box-shadow:0 16px 40px #0008; }
  .nav .menu.is-open { display:flex; flex-direction:column; }
  .nav .menu a { padding:15px 16px; border-radius:10px; font-size:16px; }
  .nav .menu a:hover,.nav .menu a.active { background:#ff5f2e1a; color:var(--orange); }
  .mobile-bottom-nav { display:grid; grid-template-columns:repeat(3,1fr); position:fixed; bottom:0; left:0; right:0; z-index:45; padding:6px 12px calc(6px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(18,14,12,.98); backdrop-filter:blur(16px); }
  .mobile-bottom-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:54px; border-radius:12px; color:#bfb5ad; font-size:11px; }
  .mobile-bottom-nav svg { width:22px; height:22px; }
  .mobile-bottom-nav a[aria-current] { color:var(--orange); background:#ff5f2e12; }
  .menu-tools { top:72px; padding:12px 0; }
  .filter-row { gap:8px; scrollbar-width:none; }
  .filter-row::-webkit-scrollbar { display:none; }
  .filter-btn { min-height:44px; padding:10px 16px; font-size:14px; }
  .cart-panel { bottom:calc(90px + env(safe-area-inset-bottom)); max-width:calc(100% - 32px); }
  .page-hero { min-height:400px; padding:130px 0 44px; }
  .section-head { grid-template-columns:1fr; gap:14px; }
  .footer-grid { grid-template-columns:1fr; }
  .reveal { opacity:1; transform:none; }
  .hero-slider .hero-content { animation:none!important; opacity:1; transform:none; }
}
@media (max-width:640px) {
  .container { width:calc(100% - 32px); }
  .nav .nav-actions>a.icon-btn { display:none; }
  .nav .brand img { width:280px; max-width:100%; }
  section,.inner-section,.warm-story { padding:20px 0; }
  .hero.hero-slider { min-height:560px; padding:110px 0 56px; }
  .hero-slider .hero-grid { width:100%; padding:32px 0; }
  .hero-title { font-size:clamp(42px,11vw,62px); line-height:1.04; }
  .hero-slider .hero-copy { font-size:16px; line-height:1.6; }
  .hero-slider .hero-actions { max-width:none; gap:12px; }
  .btn,.hero-outline-btn { min-height:48px; justify-content:center; }
  .page-hero { min-height:360px; padding:122px 0 36px; }
  .page-hero h1 { font-size:clamp(42px,12vw,62px); line-height:1; margin:14px 0 20px; }
  .page-hero p,.lead { font-size:16px; line-height:1.65; }
  .page-hero .actions { display:grid; grid-template-columns:1fr; gap:10px; }
  .display-title,.category-head h2 { font-size:28px; line-height:1.1; }
  .section-head { margin-bottom:24px; }
  .section-head h2 { font-size:34px; line-height:1.1; }
  .section-head p,.card p,.info-card p { line-height:1.6; }
  .grid-2,.grid-3,.values-grid,.contact-grid,.booking-wrap { grid-template-columns:minmax(0,1fr); gap:18px; }
  .story-copy { max-width:none; }
  .story-copy h2 { font-size:24px; line-height:1.1; }
  .story-copy p { font-size:16px; line-height:1.5; }
  .story-copy .actions { display:grid; gap:12px; }
  .story-photo { min-height:300px; transform:none; border-radius:20px; }
  .story-points { margin-top:28px; gap:12px; }
  .story-points .story-feature-card { min-height:190px!important; }
  .story-points h3 { font-size:22px; }
  .about-number { font-size:40px; }
  .flavour-section { padding:36px 0; }
  .flavour-heading h2 { font-size:32px; }
  .flavour-heading p { flex-wrap:wrap; font-size:9px; gap:6px; letter-spacing:.6px; }
  .flavour-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; max-width:420px; }
  .flavour-card:last-child { grid-column:2; width:auto; justify-self:stretch; }
  .flavour-footer p { padding:9px 12px; font-size:12px; }
  .menu-search { margin:0; gap:10px; }
  .menu-search input { width:100%; min-width:0; font-size:16px; min-height:50px; }
  .menu-category { padding:36px 0 0; }
  .category-head { margin-bottom:18px; }
  .category-head p { font-size:15px; line-height:1.6; }
  .menu-grid { gap:12px; }
  .dish-card { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-radius:16px; }
  .dish-image { height:100%; min-height:138px; }
  .dish-body { padding:12px; display:flex; flex-direction:column; justify-content:center; gap:6px; min-width:0; }
  .dish-body h3 { font-size:16px; line-height:1.25; letter-spacing:1; margin:0; }
  .dish-meta { gap:6px; flex-wrap:wrap; }
  .kcal { font-size:17px; }
  .mini-add,.mini-add.add { min-width:65px; min-height:44px; padding:10px; font-size:14px; }
  .booking-panel,.booking-aside,.contact-card,.offer-copy,.form-card { padding:22px; border-radius:20px; }
  .form-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .field { width:100%; min-height:52px; font-size:16px; border-radius:12px; }
  .booking-panel h2,.booking-aside h2 { font-size:32px; line-height:1.15; }
  .booking-panel .lead { font-size:15px; }
  .offer-photo { min-height:260px; }
  .offer-copy .deal-price { font-size:44px; }
  .deal-card { min-height:390px; }
  .story-image-large { min-height:300px; }
  .value-card { min-height:230px; padding:24px; }
  .contact-card p,.contact-card a { overflow-wrap:anywhere; }
  .inner-section.cream .map-panel { min-height:440px; }
  .map-panel iframe { min-height:440px; }
  .inner-section.cream .booking-panel { min-height:0; }
  .map-details { left:12px; right:12px; bottom:26px; padding:12px 14px; border-radius:12px; }
  .map-details .eyebrow:empty { display:none; }
  .map-details h2 { margin:0 0 4px; font-size:20px; line-height:1.15; }
  .map-details p { margin:0 0 8px; font-size:13px; line-height:1.35; }
  .map-details .btn { min-height:40px; padding:8px 14px; font-size:12px; line-height:1.2; }
  footer { padding:42px 0 72px; }
  .footer-grid { gap:28px; }
  .footer-brand-card { padding:26px 20px; min-width:0; }
  .footer-contact-list a,.footer-contact-list span { overflow-wrap:anywhere; text-align:left; }
  .footer-newsletter { width:100%; }
  .newsletter-form { width:100%; }
  .newsletter-form input { min-width:0; font-size:16px; }
  .footer-copy { padding:0 20px; font-size:12px; }
  .back-top { width:42px; height:42px; right:16px; bottom:16px; }
}
@media (hover:none) {
  .card:hover,.form-card:hover,.offer:hover,.dish-card:hover,.flavour-card:hover,.story-points .info-card:hover { transform:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .reveal,.hero-content,.story-badge { animation:none!important; transition:none!important; opacity:1; transform:none; }
}
