:root{--green:#244b3b;--bg:#f8f5ef;--ink:#223028;--line:#e1dbce}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:10px;background:var(--green);color:white;padding:13px 20px}button:disabled{opacity:.45;cursor:default}a{color:var(--green);text-decoration:none}.preview{text-align:center;background:var(--green);color:white;padding:9px;font-size:12px}header{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:15px 20px}header img{width:125px;height:90px;object-fit:contain}nav{display:flex;gap:35px}header a{line-height:1.8}.hero{height:auto;width:100%;overflow:hidden;background:#f8f5ef}.hero img{display:block;width:100%;height:auto;object-fit:contain}main{max-width:1200px;padding:48px 20px 70px;margin:auto}h1{font-size:38px;color:var(--green);margin:0 0 12px}.subtitle{font-size:18px;color:#4c5b53}.service{display:flex;gap:30px;margin:24px 0;color:var(--green)}.tabs,.subs{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.tabs button,.subs button{background:#f1ede4;color:var(--green);border:1px solid var(--line)}.tabs button[aria-pressed=true],.subs button[aria-pressed=true]{background:var(--green);color:white}.tabs button{font-size:18px;flex:1}.subs button{padding:10px 15px}.search{display:block;max-width:400px;font-size:13px;color:#4c5b53}.search input{margin-top:8px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.media{padding:0;background:#f1ede4;border-radius:0;width:100%;height:240px}.media img{width:100%;height:100%;object-fit:cover}.body{padding:20px;display:flex;flex-direction:column;flex:1}.body h2{font-size:20px;margin:0 0 12px}.body p{color:#4c5b53;font-size:14px;line-height:1.5}.body .price{color:var(--green);font-size:22px;margin-top:auto;padding-top:12px}.details{background:none;color:var(--green);padding:0;text-align:left;text-decoration:underline;align-self:flex-start}.card .buy{width:100%;margin-top:12px}footer{padding:55px 25px;background:#ede7da;text-align:center}footer h2{font-size:32px;color:var(--green)}dialog{border:1px solid var(--line);border-radius:20px;max-width:640px;width:calc(100% - 24px);padding:32px;color:var(--ink);max-height:90vh}dialog::backdrop{background:#13281ecc}.close{float:right;font-size:25px;padding:4px 12px;background:#f1ede4;color:var(--green)}#detailBody img{width:100%;max-height:350px;object-fit:contain;border-radius:12px;margin-top:20px}#detailBody p{line-height:1.6}label{display:block;margin:15px 0}input:not([type=radio]),textarea,select{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)}fieldset{border:1px solid var(--line);border-radius:10px;margin-top:20px}.muted{color:#6c766d;font-size:13px;line-height:1.6}.line{border-bottom:1px solid var(--line);padding:18px 0;display:flex;gap:15px;align-items:center}.line img{width:60px;height:60px;object-fit:cover;border-radius:8px}.line .info{flex:1}.line button{padding:6px 10px}#total{font-size:21px;margin-top:25px}#notice{line-height:1.6}#checkout>button{width:100%}@media(max-width:700px){header{gap:12px;flex-wrap:wrap}header img{width:90px;height:60px}header nav{display:none}header>div{font-size:13px}.hero{height:auto}main{padding-top:30px}h1{font-size:28px}.tabs button{flex:1 1 40%;font-size:16px}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.media{height:155px}.body{padding:12px}.body h2{font-size:17px}.body .price{font-size:18px}.service{gap:12px;font-size:13px}dialog{padding:20px}}

/* Keep every grid/flex child within the viewport, including long product names. */
html { scroll-padding-top: 90px; }
body { width: 100%; min-width: 0; }
.page-shell { min-width: 0; width: 100%; }
main, header, .location { width: 100%; }
main { padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right)); }
h1, h2, p, .line .info { overflow-wrap: anywhere; }
h1 { line-height: 1.2; }
.grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card, .body, .line .info, .location-heading > div { min-width: 0; }
input, select, textarea { min-width: 0; max-width: 100%; }
.brand { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
header .halal { display: block; width: 72px; height: 72px; object-fit: contain; }
header { padding-right: 210px; }
.phones { white-space: nowrap; }
.preview { padding-left: 20px; padding-right: 200px; }
#cartButton { position: fixed; top: 16px; right: max(20px, env(safe-area-inset-right)); z-index: 20; display: inline-flex; align-items: center; gap: 10px; min-height: 48px; max-width: calc(100vw - 40px); border: 2px solid #FFFFFF; box-shadow: 0 4px 20px #244b3b30; }
.cart-icon { width: 23px; height: 23px; flex-shrink: 0; }
#count { min-width: 25px; padding: 4px 6px; border-radius: 20px; background: #FFFFFF; color: #244B3B; font-size: 13px; font-weight: bold; }
.dialog-open { overflow: hidden; }
.dialog-open #cartButton { visibility: hidden; pointer-events: none; }
.quick-add { width: 100%; }
.quick-add label { font-size: 13px; line-height: 1.4; margin: 10px 0; }
.quick-add label input, .quick-add label select { margin-top: 6px; padding: 9px; }
.quick-add .muted { font-size: 12px; }
.quick-add .estimate { font-size: 13px; color: #244B3B; }
.quick-add .buy { min-height: 44px; }
.toast { position: fixed; bottom: 24px; left: 50%; transform: translate(-50%, 12px); display: flex; align-items: center; gap: 12px; width: max-content; max-width: min(520px, calc(100vw - 32px)); padding: 14px 18px; background: #FFFFFF; color: #223028; border: 1px solid #d8e3da; border-radius: 14px; box-shadow: 0 6px 30px #244b3b24; z-index: 25; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .18s, transform .18s, visibility .18s; }
.toast.visible { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.toast-check { color: #244B3B; background: #e7f1ea; border-radius: 50%; width: 26px; height: 26px; display: grid; place-items: center; flex-shrink: 0; font-weight: bold; }
#toastText { overflow-wrap: anywhere; line-height: 1.4; }
.location { max-width: 1200px; margin: auto; padding: 20px 20px 55px; }
.location-heading { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 22px; }
.location h2 { color: #244B3B; font-size: 32px; margin: 0 0 10px; }
.location p { margin: 8px 0; }
.route { display: inline-block; padding: 13px 18px; border: 1px solid #244B3B; border-radius: 10px; flex-shrink: 0; }
.location iframe { display: block; width: 100%; max-width: 100%; height: 420px; border: 0; border-radius: 16px; background: #f1ede4; }
fieldset { min-width: 0; }
@media (min-width: 701px) and (max-width: 1100px) { header nav { display: none; } }
@media (max-width: 700px) {
  /* Scroll content through the entire mobile viewport. Only the cart button floats.
     Do not draw or reserve a solid bottom bar. */
  body { overflow: hidden; }
  .page-shell { height: 100dvh; overflow-y: auto; overscroll-behavior-y: contain; scroll-padding-top: 20px; }
  .dialog-open .page-shell { overflow: hidden; }
  html { scroll-padding-top: 20px; }
  .preview { padding: 10px 16px; }
  header { padding: 16px; gap: 16px; }
  .brand { gap: 10px; }
  header #logo { width: 86px; height: 72px; }
  header .halal { width: 54px; height: 54px; }
  header .phones { font-size: 12px; }
  main { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
  h1 { font-size: clamp(25px, 7vw, 28px); }
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service { flex-wrap: wrap; }
  .tabs button { min-width: 0; }
  .subs button { max-width: 100%; }
  .body { padding: 12px; }
  .body h2 { font-size: 16px; }
  .body .buy { padding-left: 8px; padding-right: 8px; font-size: 14px; }
  #cartButton { top: auto; bottom: max(16px, env(safe-area-inset-bottom)); right: max(16px, env(safe-area-inset-right)); border-radius: 28px; padding: 11px 14px; gap: 8px; }
  #cartButton .cart-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .toast { bottom: calc(86px + env(safe-area-inset-bottom)); padding: 12px 14px; font-size: 14px; }
  .location { padding: 10px 16px 35px; }
  .location-heading { flex-direction: column; align-items: flex-start; gap: 12px; }
  .location h2 { font-size: 28px; }
  .location iframe { height: 340px; }
  footer { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); }
  .line { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) { .toast { transition: none; } }

/* Quantity controls share the existing green/cream palette. */
.quantity-control { margin: 12px 0; width: 100%; max-width: 190px; }
.quantity-control > label { display: block; font-size: 13px; line-height: 1.4; margin: 0 0 6px; }
.quantity-stepper { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; align-items: center; gap: 4px; }
.quantity-stepper button { min-height: 40px; padding: 0; font-size: 22px; border: 1px solid #E1DBCE; background: #F8F5EF; color: #244B3B; border-radius: 8px; }
.quantity-stepper input { text-align: center; padding: 8px 2px; height: 40px; border: 1px solid #E1DBCE; appearance: textfield; -moz-appearance: textfield; }
.quantity-stepper input::-webkit-inner-spin-button, .quantity-stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.quantity-stepper button:focus-visible, .quantity-stepper input:focus-visible { outline: 2px solid #244B3B; outline-offset: 2px; }
.quick-add .quantity-control { max-width: none; }
.quick-add .quantity-control > label { margin: 0 0 6px; }
.line { align-items: flex-start; }
.line > img { margin-top: 4px; }
.line .line-unit { color: #4C5B53; font-size: 13px; margin: 8px 0; }
.line-total { display: block; margin-top: 8px; color: #244B3B; }
.line .remove-line { min-width: 32px; min-height: 36px; }
@media (max-width: 700px) {
  .quantity-stepper { grid-template-columns: 34px minmax(0, 1fr) 34px; gap: 3px; }
  .quantity-stepper button { min-height: 40px; }
  .line > img { width: 48px; height: 48px; }
  .line .quantity-control { max-width: 165px; }
}

[hidden] { display: none !important; }
#checkout h3 { margin-top: 30px; color: #244B3B; }
.phone-field { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 8px 12px; margin: 20px 0; }
.phone-field label[for=phoneCountry] { grid-column: 1; grid-row: 1; margin: 0; }
.phone-field label[for=phoneNumber] { grid-column: 2; grid-row: 1; margin: 0; }
.phone-field select { grid-column: 1; grid-row: 2; }
.phone-field input { grid-column: 2; grid-row: 2; }
.phone-field > p { grid-column: 1 / -1; margin: 2px 0; }
.pickup-info { display: flex; gap: 14px; padding: 18px; margin: 20px 0; border: 1px solid #d6dfd6; border-radius: 12px; background: #F8F5EF; color: #244B3B; }
.pickup-info h3 { font-size: 18px; margin: 0 0 10px !important; }
.pickup-info p { line-height: 1.5; margin: 0 0 12px; }
.pickup-info strong { font-size: 14px; display: block; }
.pickup-icon { flex-shrink: 0; width: 26px; height: 30px; }
.pickup-icon svg { width: 100%; height: 100%; }
.pickup-route { display: inline-block; margin-top: 12px; text-decoration: underline; text-underline-offset: 3px; }
#total, .order-totals { font-size: 16px; margin: 25px 0; }
.order-totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 12px 0; }
.order-totals strong { white-space: nowrap; color: #244B3B; }
.order-totals .grand-total { border-top: 1px solid #E1DBCE; padding-top: 16px; font-size: 21px; }
.honeypot { display: none; }
#result { color: #8c2f2f; line-height: 1.5; }
#orderSuccess h2 { color: #244B3B; font-size: 28px; line-height: 1.2; }
.success-check { width: 48px; height: 48px; display: grid; place-items: center; background: #e7f1ea; color: #244B3B; border-radius: 50%; font-size: 28px; }
.order-number { color: #244B3B; font-size: 20px; font-weight: bold; }
.preview-receipt { border: 1px solid #E1DBCE; background: #F8F5EF; border-radius: 10px; padding: 14px; line-height: 1.5; font-size: 14px; }
.receipt-items { padding: 0; margin: 25px 0; list-style: none; }
.receipt-items li { display: flex; align-items: flex-start; gap: 12px; padding: 15px 0; border-bottom: 1px solid #E1DBCE; }
.receipt-items img { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.receipt-items li > div { min-width: 0; flex: 1; }
.receipt-items li > strong { font-size: 14px; max-width: 35%; overflow-wrap: anywhere; color: #244B3B; }
.receipt-items p { margin: 7px 0 0; font-size: 14px; color: #4C5B53; }
.receipt-details dt { font-size: 13px; color: #4C5B53; margin-top: 16px; }
.receipt-details dd { margin: 5px 0 0; line-height: 1.5; overflow-wrap: anywhere; }
#backToMenu { margin-top: 24px; width: 100%; }
@media (max-width: 450px) {
  .phone-field { display: block; }
  .phone-field label[for] { margin: 14px 0 8px; }
  .phone-field > p { margin-top: 8px; }
  .pickup-info { gap: 10px; padding: 14px; }
  .order-totals .grand-total { font-size: 19px; }
  #orderSuccess h2 { font-size: 25px; }
}

/* Legal links and checkout acknowledgement — standalone from dynamic footer rendering. */
.legal-footer{background:#ede7da;border-top:1px solid #d7ccbb;padding:16px 24px 30px;display:flex;justify-content:center;flex-wrap:wrap;align-items:center;gap:12px 20px}
.legal-footer a{display:inline-block;line-height:1.5;font-size:14px;color:#244b3b;text-decoration:underline;text-underline-offset:3px}
#legalConsent{display:flex;align-items:flex-start;gap:10px;background:#f8f5ef;border:1px solid #e1dbce;padding:13px 12px;border-radius:10px;line-height:1.5;font-size:14px}
#legalConsent input[type="checkbox"]{width:19px;height:19px;min-width:19px;flex:0 0 19px;margin:2px 0 0;accent-color:#244b3b}
#legalConsent a{text-decoration:underline;text-underline-offset:2px}
#legalConsentText{min-width:0}
[dir="rtl"] #legalConsent input[type="checkbox"]{margin:2px 0 0}
@media(max-width:700px){.legal-footer{gap:10px 16px;padding:16px 14px 27px}}

/* Checkout consent: intentionally visibly disabled until actively accepted. */
#placeOrder:disabled{background:#9da7a0;color:#fff;opacity:1;cursor:not-allowed;box-shadow:none;}
#placeOrder:not(:disabled){background:var(--green);color:#fff;}
#placeOrder:focus-visible{outline:3px solid #977748;outline-offset:3px;}

/* Payment marks stay outside the dynamically refreshed contact footer. */
.site-contact-footer{padding-bottom:20px;}
.payment-brands{padding:0 20px 24px;text-align:center;background:#ede7da;}
.payment-brands p{margin:0 0 10px;color:inherit;font-size:14px;}
.payment-brand-logos{display:flex;justify-content:center;align-items:center;gap:12px;direction:ltr;}
.payment-brand-logos img{display:block;width:72px;height:48px;border:1px solid #d6c9b5;border-radius:5px;background:#fff;object-fit:contain;}


/* Premium storefront preview — design-only, no changes to checkout or payment logic. */
:root{--premium-cream:#f8f5ef;--premium-ink:#213c30;--premium-deep:#183b2c;--premium-accent:#bda477}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;letter-spacing:-.01em}
.page-shell{overflow:clip}
header{border-bottom:1px solid #244b3b12;background:var(--premium-cream)}
header nav a{font-weight:550;letter-spacing:.01em}
header nav a:hover{color:#90754a}
.premium-hero{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);align-items:stretch;max-width:1440px;min-height:560px;margin:0 auto;padding:clamp(24px,5vw,72px);gap:clamp(24px,5vw,66px);background:linear-gradient(132deg,#f6f2e9 0%,#f8f5ef 62%,#f3ecdf 100%);position:relative}
.premium-hero::before{content:"";position:absolute;pointer-events:none;width:440px;height:440px;border:1px solid #244b3b14;border-radius:50%;top:-230px;left:-200px}
.premium-hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;position:relative;z-index:1;padding:18px 0}
.premium-eyebrow{display:inline-flex;align-items:center;gap:10px;color:#6b5a3e;font-size:12px;letter-spacing:.15em;text-transform:uppercase;font-weight:650;line-height:1.6}
.premium-sparkle{font-size:19px;color:var(--premium-accent)}
.premium-hero-copy h1,.premium-values-intro h2,.premium-catalog-intro h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.05em;line-height:1.09;color:var(--premium-deep)}
.premium-hero-copy h1{font-size:clamp(43px,5vw,77px);max-width:680px;margin:19px 0 20px}
.premium-lead{font-size:clamp(16px,1.5vw,19px);line-height:1.7;color:#526359;max-width:490px;margin:0}
.premium-hero-actions{display:flex;gap:17px;align-items:center;flex-wrap:wrap;margin:34px 0 40px}
.premium-primary-cta{display:inline-flex;align-items:center;justify-content:center;gap:21px;background:var(--premium-deep);color:white;padding:16px 24px;border-radius:8px;font-weight:650;min-height:54px;box-shadow:0 8px 22px #183b2c1c}
.premium-primary-cta:hover{background:#315b46;color:white;transform:translateY(-1px)}
.premium-secondary-cta{display:inline-flex;align-items:center;gap:12px;color:var(--premium-deep);font-size:15px;font-weight:600;padding:13px 4px}
.premium-secondary-cta:hover{text-decoration:underline;text-underline-offset:5px}
.premium-hero-footnote{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:13px;color:#5e6a61}
.premium-hero-visual{display:flex;flex-direction:column;justify-content:center;min-width:0}
.premium-photo-frame{min-height:370px;height:100%;max-height:570px;background:#eee6d8;overflow:hidden;border-radius:180px 180px 18px 18px;box-shadow:0 28px 54px #203d2b16}
.premium-photo-frame img{display:block;width:100%;height:100%;max-height:570px;min-height:370px;object-fit:contain;background:#eee6d8}
.premium-photo-caption{font-family:Georgia,serif;font-size:13px;color:#6b5a3e;text-align:center;margin-top:13px;letter-spacing:.06em}
.premium-values{max-width:1200px;margin:0 auto;padding:72px 20px 58px}
.premium-values-intro{text-align:center;max-width:730px;margin:0 auto 36px}
.premium-values-intro h2{font-size:clamp(32px,3.7vw,49px);margin:12px 0 0}
.premium-value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.premium-value-grid article{padding:30px 29px;background:#fff;border:1px solid #e7e1d5;border-radius:16px}
.premium-value-symbol{color:#aa906a;font-family:Georgia,serif;font-size:22px}
.premium-value-grid h3{margin:18px 0 10px;color:#203e30;font-family:Georgia,serif;font-size:24px;font-weight:400}
.premium-value-grid p{font-size:14px;color:#69736a;line-height:1.75;margin:0}
main#catalog{padding-top:55px}
.premium-catalog-intro{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:22px}
.premium-catalog-intro h2{font-size:clamp(38px,4.5vw,60px);margin:10px 0}
.premium-catalog-intro .subtitle{margin:0;color:#667269;line-height:1.6}
.premium-catalog-decor{font-size:110px;font-weight:200;line-height:1;color:#c8b48e;opacity:.42}
.service{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0 34px}
.service span{display:inline-flex;align-items:center;padding:10px 15px;border:1px solid #ded8c9;border-radius:999px;background:#fff;color:#33523f;font-size:13px;font-weight:550}
.tabs,.subs{gap:10px}
.tabs button,.subs button{border-radius:8px;transition:background .2s,transform .2s}
.tabs button:not([aria-pressed=true]):hover,.subs button:not([aria-pressed=true]):hover{background:#e7e9de}
.search{max-width:480px;font-weight:550}
.search input{border-radius:10px;padding:14px}
.grid{gap:26px}
.grid .card{border-radius:19px;border:1px solid #e6e1d7;box-shadow:0 4px 14px #233e2d08;transition:transform .2s,box-shadow .2s,border-color .2s}
.grid .card:hover{transform:translateY(-4px);box-shadow:0 15px 38px #263d2e16;border-color:#c9c6b9}
.grid .card .media{height:255px;overflow:hidden;background:#efebe4}
.grid .card .media img{transition:transform .4s}
.grid .card:hover .media img{transform:scale(1.035)}
.grid .card .body{padding:22px}
.grid .card .body h2{font-family:Georgia,"Times New Roman",serif;color:#264332;font-size:23px;font-weight:400;line-height:1.2}
.grid .card .body .price{font-weight:700;font-size:22px}
.grid .card .buy{border-radius:9px;min-height:46px}
@media(max-width:1000px){
.premium-hero{grid-template-columns:1fr 1fr;min-height:450px;padding:40px 24px;gap:25px}
.premium-hero-copy h1{font-size:clamp(37px,5vw,54px)}
.premium-photo-frame{min-height:330px}
.premium-photo-frame img{min-height:330px}
.premium-value-grid article{padding:24px}
}
@media(max-width:700px){
.premium-hero{grid-template-columns:1fr;gap:20px;padding:36px 20px 30px}
.premium-hero-copy{padding:0}
.premium-hero-copy h1{font-size:clamp(40px,11vw,55px);margin:17px 0}
.premium-lead{font-size:16px}
.premium-hero-actions{margin:26px 0 22px;gap:12px}
.premium-primary-cta{padding:14px 19px;min-height:50px}
.premium-photo-frame{height:250px;min-height:250px;border-radius:128px 128px 15px 15px}
.premium-photo-frame img{min-height:250px;max-height:250px;object-fit:contain}
.premium-photo-caption{margin-top:9px}
.premium-values{padding:53px 20px 24px}
.premium-values-intro{margin-bottom:24px}
.premium-value-grid{grid-template-columns:1fr;gap:12px}
.premium-value-grid article{padding:21px 24px}
.premium-value-grid h3{margin:9px 0}
main#catalog{padding-top:42px}
.premium-catalog-decor{display:none}
.grid{gap:13px}
.grid .card .media{height:170px}
.grid .card .body{padding:14px}
.grid .card .body h2{font-size:18px}
}
@media(prefers-reduced-motion:reduce){.grid .card,.grid .card .media img,.premium-primary-cta{transition:none}.grid .card:hover,.grid .card:hover .media img{transform:none}}

/* Curated dishes + basket suggestions, local design preview */
#guestFavorites[hidden],#basketSuggestions[hidden]{display:none!important}
.guest-favorites{max-width:1200px;margin:0 auto;padding:58px 20px 28px}
.favorites-top{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:25px}
.favorites-top h2{font:400 clamp(32px,4vw,51px)/1.13 Georgia,serif;letter-spacing:-.035em;color:#193c2d;margin:11px 0}
.favorites-top p{margin:0;color:#5e6a61;line-height:1.6}
.favorites-all{font-size:14px;border-bottom:1px solid #a5aa9d;padding-bottom:6px;white-space:nowrap}
.favorites-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.favorite-card{min-width:0;overflow:hidden;background:#fff;border:1px solid #e6e1d7;border-radius:17px;box-shadow:0 6px 22px #203d2b0a}
.favorite-photo{width:100%;height:200px;padding:0;border-radius:0;background:#eeeae1;display:block;overflow:hidden}
.favorite-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.favorite-photo:hover img{transform:scale(1.05)}
.favorite-info{padding:18px}
.favorite-info h3{font:400 23px/1.2 Georgia,serif;color:#244b3b;margin:0 0 10px}
.favorite-info p{font-weight:700;margin:0 0 12px;color:#244b3b}
.favorite-more{padding:9px 0;background:transparent;border:0;color:#244b3b;font-size:14px}
.basket-suggestions{padding:20px 0 8px;border-top:1px solid #e1dbce;margin-top:20px}
.basket-suggestions h3{font:400 25px/1.2 Georgia,serif;color:#244b3b;margin:8px 0 16px}
.basket-suggestions-grid{display:grid;gap:9px}
.basket-suggestion{display:flex;align-items:center;gap:12px;border:1px solid #e4dfd3;background:#faf8f3;padding:11px;border-radius:13px;min-width:0}
.basket-suggestion img{width:60px;height:60px;object-fit:cover;border-radius:9px;flex-shrink:0}
.basket-suggestion-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.basket-suggestion-info span{color:#827457;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.basket-suggestion-info strong{font-size:14px;color:#244b3b;overflow-wrap:anywhere}
.basket-suggestion-info small{color:#667268;font-size:13px}
.basket-suggestion>button{flex-shrink:0;font-size:13px;min-height:39px;padding:10px 12px;border-radius:8px}
@media(max-width:900px){.favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
.guest-favorites{padding:43px 16px 10px}
.favorites-top{align-items:start;flex-direction:column;gap:12px}
.favorites-top h2{font-size:36px}
.favorites-grid{gap:11px}
.favorite-photo{height:155px}
.favorite-info{padding:13px}
.favorite-info h3{font-size:18px}
.basket-suggestion{gap:8px;padding:8px}
.basket-suggestion img{width:50px;height:50px}
.basket-suggestion>button{padding:8px;font-size:12px}
}

/* Refinement: show the entire food photo without a tall, empty arch behind it. */
@media(min-width:701px){
 .premium-hero{grid-template-columns:minmax(0,.90fr) minmax(0,1.10fr);gap:clamp(20px,3vw,52px)}
}
.premium-hero-visual{align-self:center;justify-content:center}
.premium-photo-frame{min-height:0;height:auto;max-height:none;background:transparent;border-radius:22px;overflow:hidden;box-shadow:0 18px 48px #203d2b20}
.premium-photo-frame img{display:block;width:100%;height:auto;min-height:0;max-height:none;object-fit:contain;object-position:center;background:transparent}
@media(max-width:700px){
 .premium-hero{gap:24px}
 .premium-photo-frame{width:100%;height:auto;min-height:0;max-height:none;border-radius:15px}
 .premium-photo-frame img{height:auto;min-height:0;max-height:none;object-fit:contain}
}

/* One-click add buttons in the curated favorites section (local preview only). */
.favorite-card{display:flex;flex-direction:column}
.favorite-info{display:flex;flex:1;flex-direction:column}
.favorite-info p{margin-bottom:16px}
.favorite-actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.favorite-buy{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#244b3b;color:#fff;padding:12px 15px;min-height:44px;border-radius:9px;font-weight:650;font-size:14px;transition:background .2s,transform .2s}
.favorite-buy:hover{background:#32644c;transform:translateY(-1px)}
.favorite-buy:focus-visible,.favorite-more:focus-visible{outline:3px solid #a78f65;outline-offset:3px}
.favorite-buy span{font-size:21px;line-height:0.75;font-weight:400}
.favorite-more{min-height:40px;white-space:nowrap}
@media(max-width:700px){
 .favorite-actions{gap:6px;align-items:stretch;flex-direction:column}
 .favorite-buy{width:100%;font-size:13px;padding:9px 8px}
 .favorite-more{text-align:center}
}
@media(prefers-reduced-motion:reduce){.favorite-buy{transition:none}.favorite-buy:hover{transform:none}}

/* Saojaxo private preview: compact cart and fixed checkout summary.
   #cartContent owns scrolling; #cartStickyBar stays visible without moving the payment form. */
#cart[open]{
 display:flex;
 flex-direction:column;
 position:fixed;
 width:min(760px,calc(100vw - 28px));
 max-width:760px;
 height:min(850px,calc(100dvh - 28px));
 max-height:calc(100dvh - 28px);
 padding:0;
 border:1px solid #e4ded1;
 border-radius:22px;
 background:#fffdfa;
 overflow:hidden;
 box-shadow:0 24px 80px #0d291e38;
}
#cart>.close{position:absolute;z-index:5;top:17px;right:18px;float:none;border-radius:100%;width:42px;height:42px;padding:0;background:#f1eee7;color:#244b3b}
#cart>.close:hover{background:#e5e8df}
#cartContent{
 flex:1;
 min-height:0;
 overflow-y:auto;
 overflow-x:hidden;
 overscroll-behavior:contain;
 padding:28px 32px 36px;
 scroll-padding-top:22px;
 scrollbar-width:thin;
}
#cart .cart-heading{padding:0 55px 15px 0;border-bottom:1px solid #e9e3d9}
#cart .cart-heading h2{font:400 39px/1.12 Georgia,serif;color:#244b3b;letter-spacing:-.035em;margin:8px 0}
#cart .cart-heading p{margin:0}
#cart #cartAvailabilityNotice{padding:12px;background:#fbf6ed;border-radius:10px}
#cart #lines{margin-top:8px}
#cart .line{
 display:grid;
 grid-template-columns:80px minmax(0,1fr) 36px;
 gap:16px;
 align-items:start;
 padding:17px 0;
 border-bottom:1px solid #eae5dc;
}
#cart .line>img{width:80px;height:80px;margin:0;object-fit:cover;border-radius:12px;background:#eeeae1}
#cart .line .info{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:6px}
#cart .line .info>strong:first-child{font:400 20px/1.2 Georgia,serif;color:#244b3b}
#cart .line .info>p{margin:0;line-height:1.35;font-size:12px;color:#6f796e}
#cart .line .info .line-unit{margin:0}
#cart .line .quantity-control{margin:4px 0 0;max-width:158px}
#cart .line .quantity-control>label{font-size:11px;color:#69756e;margin-bottom:4px}
#cart .line .quantity-stepper{grid-template-columns:35px minmax(0,1fr) 35px;gap:5px}
#cart .line .quantity-stepper button{min-height:35px;height:35px}
#cart .line .quantity-stepper input{height:35px;min-height:35px}
#cart .line .line-total{margin:2px 0 0;font-size:17px}
#cart .line .remove-line{width:34px;height:34px;min-height:34px;padding:0;font-size:22px;border-radius:50%;background:#f4f0e9;color:#536356}
#cart .line .remove-line:hover{background:#f7e8df;color:#904e3c}
#cart .basket-suggestions{margin:25px 0 10px;padding-top:24px}
#cart .basket-suggestions h3{margin:8px 0 15px}
#cart .basket-suggestions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#cart .basket-suggestion{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:9px;background:#f8f6ef;border-color:#ece4d5;border-radius:14px;scroll-snap-align:start}
#cart .basket-suggestion img{height:94px;width:100%;border-radius:10px;object-fit:cover}
#cart .basket-suggestion-info{flex:1;gap:5px}
#cart .basket-suggestion-info strong{font-size:14px;line-height:1.3}
#cart .basket-suggestion>button{width:100%;min-height:40px;border-radius:9px;padding:8px;font-weight:600}
#checkout{margin-top:26px;padding-top:25px;border-top:1px solid #e2dbce}
#checkout>h3{font:400 30px/1.15 Georgia,serif;color:#244b3b;margin:0 0 8px}
#checkout>p.muted{margin:0 0 20px}
#checkout>label{margin:15px 0;font-size:14px;font-weight:550}
#checkout input:not([type=radio]):not([type=checkbox]),#checkout select,#checkout textarea{min-height:48px;border-radius:10px}
#checkout fieldset{background:#fcfaf6;border:1px solid #e5dfd3;border-radius:14px;padding:10px 16px 16px;margin-top:17px}
#checkout fieldset legend{font-size:15px;font-weight:650;color:#264b38;padding:0 8px}
#checkout fieldset>label{display:flex;align-items:flex-start;gap:10px;border-radius:9px;padding:8px 4px;margin:4px 0;line-height:1.5}
#checkout fieldset>label input[type=radio]{margin:2px 0 0;min-width:17px;min-height:17px;accent-color:#244b3b}
#checkout .phone-field{margin:14px 0;gap:8px 12px}
#checkout #total{padding:18px 18px 8px;background:#f8f6ef;border:1px solid #e6dfd1;border-radius:13px;margin:20px 0}
#checkout #total .grand-total{font-size:21px}
#checkout #legalConsent{margin:15px 0}
#checkout #placeOrder{min-height:54px;border-radius:10px;font-weight:700}
#cartStickyBar[hidden]{display:none!important}
#cartStickyBar{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:18px;
 flex:0 0 auto;
 padding:14px 28px calc(14px + env(safe-area-inset-bottom));
 border-top:1px solid #e5dfd4;
 background:#f8f5ef;
 box-shadow:0 -8px 22px #223e2b0b;
}
.cart-sticky-price{display:flex;flex-direction:column;gap:2px;min-width:0}
.cart-sticky-price>span{font-size:12px;color:#647468}
.cart-sticky-price strong{font-size:25px;font-weight:750;color:#244b3b;line-height:1.2;white-space:nowrap}
.cart-sticky-price small{font-size:11px;color:#647468}
#cartStickyCheckout{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;min-width:175px;border-radius:10px;padding:12px 17px;font-size:14px;font-weight:700}
#cartStickyCheckout:focus-visible{outline:3px solid #b39b75;outline-offset:2px}
#cart #orderSuccess{flex:1;min-height:0;overflow-y:auto;padding:42px 32px}
@media(max-width:700px){
 #cart[open]{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);border-radius:18px}
 #cartContent{padding:24px 18px 24px}
 #cart>.close{right:12px;top:12px}
 #cart .cart-heading h2{font-size:33px}
 #cart .line{grid-template-columns:62px minmax(0,1fr) 30px;gap:10px;padding:14px 0}
 #cart .line>img{width:62px;height:68px;border-radius:10px}
 #cart .line .info>strong:first-child{font-size:18px}
 #cart .line .quantity-control{max-width:145px}
 #cart .line .line-total{font-size:16px}
 #cart .line .remove-line{width:30px;height:30px;min-height:30px}
 #cart .basket-suggestions-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(180px,65%);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:8px;padding-bottom:10px;overscroll-behavior-x:contain}
 #cart .basket-suggestion img{height:103px}
 #checkout fieldset{padding:10px 12px 14px}
 #cartStickyBar{gap:12px;padding:12px 15px calc(12px + env(safe-area-inset-bottom))}
 .cart-sticky-price strong{font-size:21px}
 #cartStickyCheckout{min-width:145px;min-height:47px;padding:10px 12px;font-size:13px}
 #cart #orderSuccess{padding:35px 20px}
}
@media(max-width:360px){#cartStickyCheckout{min-width:124px;padding:10px 8px;font-size:12px}}

/* Private cart refinement: better information density and a clear way back to browsing. */
#cart .cart-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}
#cart .cart-heading>div{min-width:0}
#cart .cart-continue-shopping{align-self:flex-end;white-space:nowrap;min-height:37px;padding:7px 0;color:#244b3b;background:transparent;border:0;border-bottom:1px solid #b9b8a8;border-radius:0;font-size:13px;font-weight:600}
#cart .cart-continue-shopping:hover{color:#55735b;border-color:#55735b}
#cart .cart-continue-shopping:focus-visible{outline:2px solid #b39b75;outline-offset:3px}
#cart .line{grid-template-columns:72px minmax(0,1fr) 32px;gap:12px;padding:12px 0}
#cart .line>img{width:72px;height:72px}
#cart .line .info{gap:4px}
#cart .cart-product-title{display:flex;width:100%;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
#cart .cart-product-name{font:400 19px/1.25 Georgia,serif;color:#244b3b;overflow-wrap:anywhere;min-width:0;flex:1 1 145px}
#cart .cart-product-title .line-total{font-size:17px;font-weight:750;white-space:nowrap;line-height:1.3;margin:0;flex:0 0 auto}
#cart .line .quantity-control{margin:2px 0 0}
#cart .line .quantity-control>label{margin-bottom:3px}
#cart .line .line-unit{font-size:12px}
@media(max-width:700px){
 #cart .cart-heading{display:block}
 #cart .cart-continue-shopping{align-self:auto;margin-top:10px;min-height:35px;padding:5px 0}
 #cart .line{grid-template-columns:58px minmax(0,1fr) 28px;gap:9px;padding:11px 0}
 #cart .line>img{width:58px;height:64px}
 #cart .cart-product-name{font-size:17px;flex-basis:100px}
 #cart .cart-product-title .line-total{font-size:15px}
 #cart .line .quantity-control{max-width:150px}
}

/* Mobile storefront pass — private design preview only. Keep the checkout and payment logic intact. */
@media (max-width: 700px) {
  /* The page-shell (not body) is the phone's scrolling region, leaving the fixed cart visible. */
  html,body{width:100%;max-width:100%;overflow:hidden}
  body{overflow:hidden}
  .page-shell{
    height:100dvh;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    scroll-padding-top:14px;
    -webkit-overflow-scrolling:touch;
  }
  .page-shell>*{min-width:0}
  header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto auto auto;
    align-items:center;
    gap:11px 8px;
    padding:12px 16px 13px;
    padding-right:16px;
    max-width:100%;
    width:100%;
    margin:0;
    border-bottom:1px solid #e5ddd1;
  }
  header .brand{
    grid-column:1;grid-row:1;
    align-items:center;gap:8px;flex-shrink:1;min-width:0;
  }
  header #logo{width:82px;height:60px;object-fit:contain}
  header .halal{width:48px;height:48px;object-fit:contain}
  header .language-switcher{
    grid-column:2;grid-row:1;
    display:flex;align-items:center;gap:3px;
    margin:0;white-space:nowrap;justify-self:end;
    font-size:14px;
  }
  header .language-switcher select{
    width:auto;min-width:76px;max-width:91px;
    min-height:43px;padding:8px 3px;
    border-radius:9px;font-size:14px;
  }
  header nav{
    grid-column:1/-1;grid-row:2;
    display:flex;flex-wrap:nowrap;
    align-items:stretch;gap:8px;
    width:100%;min-width:0;
  }
  header nav a{
    display:flex;align-items:center;justify-content:center;
    flex:1;min-height:43px;min-width:0;padding:9px 10px;
    border:1px solid #ddd6c8;border-radius:10px;
    background:#fffefa;color:#244b3b;font-size:13px;font-weight:650;
    text-align:center;line-height:1.3;
  }
  header nav a:focus-visible{outline:2px solid #a88e65;outline-offset:2px}
  header .phones{
    grid-column:1/-1;grid-row:3;
    display:flex!important;flex-wrap:wrap;
    flex-direction:row;align-items:center;justify-content:center;
    width:100%;min-width:0;
    gap:3px 14px;margin:0;
    font-size:12px;line-height:1.25;
  }
  header .phones a{display:inline-flex;align-items:center;min-height:29px}
  #cartButton{
    right:max(14px,env(safe-area-inset-right));
    bottom:max(14px,env(safe-area-inset-bottom));
    min-width:56px;min-height:52px;
    padding:12px 15px;z-index:20;
    box-shadow:0 4px 17px #244b3b30;
  }
  .premium-hero{
    padding:32px 16px 28px;gap:22px;
    min-height:0;
  }
  .premium-hero-copy h1{font-size:clamp(36px,9.3vw,48px);line-height:1.09}
  .premium-lead{font-size:15px;line-height:1.65}
  .premium-eyebrow{font-size:10.5px;letter-spacing:.11em}
  .premium-hero-footnote{font-size:12px;gap:6px 12px}
  .premium-hero-visual .premium-photo-frame img{max-height:none;height:auto}
  .premium-values{padding:38px 16px 23px}
  .premium-values-intro h2{font-size:32px}
  .premium-value-grid{gap:9px}
  .premium-value-grid article{padding:16px 20px}
  .premium-value-grid h3{font-size:21px}
  .premium-value-grid p{font-size:13px}
  .guest-favorites{padding:38px 16px 13px}
  .favorites-top h2{font-size:clamp(29px,8vw,37px)}
  .favorite-photo{height:145px}
  .favorite-info{padding:12px}
  .favorite-info h3{font-size:17px}
  .favorite-buy{min-height:44px}
  main#catalog{padding:36px 16px 70px;max-width:100%}
  .premium-catalog-intro h2{font-size:clamp(34px,8vw,43px)}
  .premium-catalog-intro .subtitle{font-size:14px}
  main#catalog .service{gap:7px;margin:17px 0}
  main#catalog .service span{font-size:12px;padding:9px 12px}
  #tabs,#subs{
    display:flex;align-items:stretch;flex-wrap:nowrap;
    width:100%;
    min-width:0;max-width:100%;
    overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x proximity;
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    padding:4px 2px 10px;
    margin:9px 0;
    gap:8px;
    -webkit-overflow-scrolling:touch;
  }
  #subs[hidden]{display:none!important}
  #tabs button,#subs button{
    flex:0 0 auto;width:auto;
    white-space:nowrap;
    scroll-snap-align:start;
    min-height:44px;
    border-radius:999px;
    font-size:13px;
    padding:10px 16px;
  }
  #tabs button{font-size:14px;font-weight:650}
  #tabs button:focus-visible,#subs button:focus-visible{outline:2px solid #ac946c;outline-offset:1px}
  #catalog .search{display:block;max-width:100%;margin:16px 0 20px;font-size:13px}
  #catalog .search input{width:100%;font-size:16px;min-height:47px;border-radius:12px}
  #catalog .grid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
  #catalog .grid .card{border-radius:14px;min-width:0}
  #catalog .grid .card .media{height:145px}
  #catalog .grid .card .body{padding:12px}
  #catalog .grid .card .body h2{font-size:18px;line-height:1.24}
  #catalog .grid .card .body p{font-size:12px}
  #catalog .grid .card .body .price{font-size:18px}
  #catalog .grid .quick-add .quantity-control{max-width:100%}
  #catalog .grid .quick-add .quantity-control input{font-size:16px;min-width:0}
  #catalog .grid .quick-add button.buy{min-height:44px;font-size:13px}
  #detail[open]{
    max-height:calc(100dvh - 16px);
    width:calc(100% - 16px);
    padding:20px 16px;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  #detailBody img{max-height:280px}
  #detail input,#detail select,#checkout input,#checkout select,#checkout textarea{font-size:16px}
  .location{padding-bottom:95px}
}
@media(max-width:390px){
  header{padding:10px 13px 12px;gap:7px}
  header #logo{width:76px;height:57px}
  header .halal{width:43px;height:43px}
  header .phones{gap:1px 10px;font-size:11px}
  #catalog .grid{grid-template-columns:1fr}
  #catalog .grid .card .media{height:200px}
  #catalog .grid .card .body{padding:16px}
  #catalog .grid .card .body h2{font-size:22px}
  #catalog .grid .card .body .price{font-size:20px}
  #catalog .grid .quick-add .quantity-control{max-width:220px}
  #catalog .grid .quick-add button.buy{font-size:15px}
  .favorite-photo{height:125px}
  .favorite-info h3{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .page-shell{scroll-behavior:auto}
}

/* Menu finding and checkout clarity — test branch only. */
.catalog-search-tools{display:flex;align-items:end;flex-wrap:wrap;gap:9px 16px;max-width:700px;margin:17px 0 9px}
.catalog-search-tools .search{flex:1 1 320px;max-width:520px;margin:0}
.catalog-search-tools .clear-search{min-height:44px;padding:10px 14px;background:transparent;border:1px solid #c8cbbe;color:#244b3b;font-size:13px;font-weight:650}
.catalog-search-tools .clear-search:hover{background:#e8eddf}
.catalog-results-count{font-size:13px;color:#617466;margin:7px 0 24px}
.catalog-empty{grid-column:1/-1;padding:42px 20px;text-align:center;border:1px dashed #d4cebf;border-radius:16px;background:#fffdfa}
.catalog-empty p{font:400 22px/1.4 Georgia,serif;color:#315440;margin:0 0 16px}
.catalog-empty button{padding:12px 18px;min-height:44px}
@media(max-width:700px){
 .catalog-search-tools{margin:14px 0 4px;gap:10px}
 .catalog-search-tools .search{flex-basis:100%}
 .catalog-search-tools .clear-search{min-height:43px}
 .catalog-results-count{margin:7px 0 15px}
 .catalog-empty{padding:28px 15px}
}


/* One-card premium design experiment; product and order logic unchanged. */
#catalog .grid .premium-menu-card{
 background:#fffdfa;border:1px solid #d6c9b1;border-radius:21px;overflow:hidden;
 box-shadow:0 10px 32px #183b2c12;transition:transform .2s ease,box-shadow .2s ease;
}
#catalog .grid .premium-menu-card:focus-visible{outline:3px solid #b9a071;outline-offset:3px}
#catalog .grid .premium-menu-card:hover{box-shadow:0 18px 40px #183b2c1b}
#catalog .grid .premium-menu-card-photo{position:relative;background:#ede7dd;overflow:hidden}
#catalog .grid .premium-menu-card .media{height:250px;width:100%;background:#f0ede6}
#catalog .grid .premium-menu-card .media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
#catalog .grid .premium-menu-card-chip{
 position:absolute;left:14px;top:14px;background:#fffdf2f5;border:1px solid #e9dfcb;
 border-radius:100px;padding:7px 11px;font-size:10px;font-weight:750;letter-spacing:.045em;
 color:#39513d;pointer-events:none;box-shadow:0 5px 16px #00000014;
}
#catalog .grid .premium-menu-card-body{padding:22px;display:flex;flex-direction:column;flex:1}
#catalog .grid .premium-menu-card-kicker{
 display:inline-block;margin:0 0 9px;color:#988057;letter-spacing:.11em;
 text-transform:uppercase;font-size:10px;font-weight:750;
}
#catalog .grid .premium-menu-card .body h2{
 margin:0 0 10px;font:400 26px/1.14 Georgia,"Times New Roman",serif;
 letter-spacing:-.035em;color:#183b2c;
}
#catalog .grid .premium-menu-card .premium-menu-card-description{
 font-size:13px;line-height:1.55;color:#667268;margin:0 0 15px;
 display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
#catalog .grid .premium-menu-card-meta{
 display:flex;justify-content:space-between;align-items:flex-end;gap:10px;
 border-top:1px solid #e8e0d4;padding-top:13px;margin-top:auto;flex-wrap:wrap;
}
#catalog .grid .premium-menu-card .price{
 font-size:24px;font-weight:750;line-height:1.25;padding:0;margin:0;color:#1d4735;
}
#catalog .grid .premium-menu-card-details{
 background:transparent;border:none;color:#897554;font-size:12px;
 line-height:1.4;padding:3px 0;text-decoration:underline;text-underline-offset:3px;
 text-align:left;font-weight:550;
}
#catalog .grid .premium-menu-card-details:hover{color:#183b2c}
#catalog .grid .premium-menu-card-order{margin-top:14px}
#catalog .grid .premium-menu-card-order .quantity-control{margin-bottom:10px}
#catalog .grid .premium-menu-card-order .buy{
 min-height:48px;background:#1e4533;border-radius:9px;
 display:flex;align-items:center;justify-content:center;gap:10px;
 font-weight:700;font-size:14px;
}
#catalog .grid .premium-menu-card-order .buy:not(:disabled):hover{background:#315f48}
#catalog .grid .premium-menu-card-order .buy:focus-visible,
#catalog .grid .premium-menu-card-details:focus-visible{
 outline:3px solid #c7ac72;outline-offset:3px;
}
@media(max-width:700px){
 #catalog .grid .premium-menu-card{grid-column:span 2}
 #catalog .grid .premium-menu-card .media{height:250px}
 #catalog .grid .premium-menu-card-body{padding:20px}
 #catalog .grid .premium-menu-card .body h2{font-size:27px}
 #catalog .grid .premium-menu-card .premium-menu-card-description{font-size:14px}
 #catalog .grid .premium-menu-card-order .buy{font-size:15px;min-height:48px}
}
@media(max-width:390px){
 #catalog .grid .premium-menu-card{grid-column:span 1}
 #catalog .grid .premium-menu-card .media{height:220px}
}
@media(prefers-reduced-motion:reduce){#catalog .grid .premium-menu-card{transition:none}}


/* Premium cards across the entire catalogue; the original price/variant form remains operational. */
#catalog .grid .premium-menu-card{min-width:0;min-height:100%}
#catalog .grid .premium-menu-card-photo{height:240px}
#catalog .grid .premium-menu-card .media{
  height:100%;min-height:240px;display:flex;align-items:center;justify-content:center;
}
#catalog .grid .premium-menu-card .media img{height:100%;width:100%;object-fit:cover;object-position:center}
#catalog .grid .premium-menu-card .body h2{
  font-size:clamp(18px,1.8vw,24px);line-height:1.24;overflow-wrap:anywhere;
}
#catalog .grid .premium-menu-card .premium-menu-card-description{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  min-height:0;overflow:hidden;margin-bottom:16px;
}
#catalog .grid .premium-menu-card-no-photo{color:#5e6a61;font:italic 18px Georgia,serif}
#catalog .grid .premium-menu-card .price{font-size:clamp(19px,2vw,23px)}
#catalog .grid .premium-menu-card-order .buy{margin-top:8px}
#detail.premium-detail-dialog[open]{
  width:min(960px,calc(100% - 32px));max-width:960px;
  max-height:calc(100dvh - 36px);padding:0;overflow:hidden;
  border:1px solid #e5dfd4;border-radius:20px;
  background:#fffdfa;box-shadow:0 28px 85px #0f2a1f45;position:relative;
}
#detail.premium-detail-dialog #detailBody{max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain}
#detail.premium-detail-dialog>.close{
  position:absolute;z-index:3;top:15px;right:15px;
  float:none;display:grid;place-items:center;
  width:44px;height:44px;padding:0;border:1px solid #e6e1d7;
  border-radius:50%;background:#fffdfafa;color:#244b3b;
  font-size:26px;box-shadow:0 4px 15px #00000014;
}
#detail.premium-detail-dialog>.close:hover{background:#f2eee7}
#detail.premium-detail-dialog>.close:focus-visible{outline:3px solid #b49a69;outline-offset:3px}
#detail .premium-detail-layout{
  display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  align-items:stretch;min-height:480px;
}
#detail .premium-detail-visual{background:#f0e9de;min-width:0}
#detail .premium-detail-photo{height:460px;overflow:hidden}
#detail #detailBody .premium-detail-photo img{
  display:block;margin:0;width:100%;height:100%;
  max-height:none;object-fit:cover;object-position:center;border-radius:0;
}
#detail .premium-detail-photo-empty{display:grid;place-items:center;background:#eee9e0}
#detail .premium-detail-photo-empty span{font:italic 24px Georgia,serif;color:#8c8677}
#detail .premium-detail-info{
  min-width:0;padding:46px 42px 35px 38px;
  display:flex;flex-direction:column;gap:0;
}
#detail .premium-detail-info h2{
  margin:0 0 16px;
  font:400 clamp(29px,3.2vw,44px)/1.14 Georgia,"Times New Roman",serif;
  letter-spacing:-.03em;color:#214332;overflow-wrap:anywhere;
}
#detail .premium-detail-description{
  font-size:15px;line-height:1.7;color:#46584c;margin:0 0 18px;
}
#detail .premium-detail-ingredients{
  padding:14px 17px;background:#f8f5ef;
  border:1px solid #e9e2d5;border-radius:12px;
}
#detail .premium-detail-ingredients p{
  font-size:13px;line-height:1.7;color:#626e64;margin:0;
}
#detail .premium-detail-facts{padding:11px 0}
#detail .premium-detail-facts p{font-size:13px;line-height:1.65;color:#626e64;margin:3px 0}
#detail .premium-detail-order{margin-top:auto;padding-top:22px}
#detail .premium-detail-order .quantity-control{max-width:225px;margin:0 0 12px}
#detail .premium-detail-order .quantity-control>label{font-size:13px;font-weight:600;color:#4a6353;margin-bottom:8px}
#detail .premium-detail-order .quantity-stepper{grid-template-columns:42px minmax(0,1fr) 42px;gap:7px}
#detail .premium-detail-order .quantity-stepper button,
#detail .premium-detail-order .quantity-stepper input{height:43px;min-height:43px}
#detail .premium-detail-order .estimate{
  border-top:1px solid #e7e0d5;margin:20px 0 15px;padding-top:16px;
  color:#244b3b;font-size:20px;line-height:1.4;font-weight:700;
}
#detail .premium-detail-order .premium-detail-buy{
  display:flex;align-items:center;justify-content:center;gap:12px;
  width:100%;min-height:52px;padding:13px 18px;
  border-radius:9px;background:#244b3b;color:#fff;font-size:15px;font-weight:700;
}
#detail .premium-detail-order .premium-detail-buy:hover:not(:disabled){background:#315d49}
#detail .premium-detail-order .premium-detail-buy:focus-visible{outline:3px solid #b49a69;outline-offset:3px}
@media(max-width:760px){
 #detail.premium-detail-dialog[open]{
   width:calc(100% - 16px);max-width:none;
   max-height:calc(100dvh - 16px);padding:0;border-radius:17px;
 }
 #detail.premium-detail-dialog #detailBody{max-height:calc(100dvh - 16px)}
 #detail .premium-detail-layout{display:block;min-height:0}
 #detail .premium-detail-photo{height:220px}
 #detail #detailBody .premium-detail-photo img{height:220px;max-height:none;object-fit:cover}
 #detail .premium-detail-info{padding:23px 20px 25px}
 #detail .premium-detail-info h2{font-size:31px;margin-bottom:12px}
 #detail .premium-detail-description{font-size:14px}
 #detail .premium-detail-ingredients{padding:12px 14px}
 #detail .premium-detail-order{padding-top:17px}
 #detail .premium-detail-order .estimate{margin-top:16px;font-size:19px}
 #detail.premium-detail-dialog>.close{top:10px;right:10px;width:42px;height:42px}
}
@media(max-width:700px){
 #catalog .grid .premium-menu-card{grid-column:auto}
 #catalog .grid .premium-menu-card-photo{height:167px}
 #catalog .grid .premium-menu-card .media{height:100%;min-height:167px}
 #catalog .grid .premium-menu-card-body{padding:13px}
 #catalog .grid .premium-menu-card .body h2{font-size:18px}
 #catalog .grid .premium-menu-card .premium-menu-card-description{font-size:12px}
 #catalog .grid .premium-menu-card .price{font-size:19px}
 #catalog .grid .premium-menu-card-details{font-size:12px}
 #catalog .grid .premium-menu-card-order .buy{font-size:13px}
}
@media(max-width:420px){
 #catalog .grid{grid-template-columns:1fr}
 #catalog .grid .premium-menu-card{grid-column:auto}
 #catalog .grid .premium-menu-card-photo{height:235px}
 #catalog .grid .premium-menu-card .media{min-height:235px}
 #catalog .grid .premium-menu-card-body{padding:18px}
 #catalog .grid .premium-menu-card .body h2{font-size:23px}
 #catalog .grid .premium-menu-card .premium-menu-card-description{font-size:14px}
 #catalog .grid .premium-menu-card .price{font-size:23px}
 #catalog .grid .premium-menu-card-order .buy{font-size:15px}
}
@media(max-width:390px){
 #detail .premium-detail-photo{height:195px}
 #detail #detailBody .premium-detail-photo img{height:195px}
 #detail .premium-detail-info{padding:20px 16px 23px}
}
@media(prefers-reduced-motion:reduce){#catalog .grid .premium-menu-card{transition:none}}

/* ===== «Любимые блюда наших гостей» — компактная витрина на пастельных подложках (2026-11-07) ===== */
.guest-favorites{max-width:1200px;margin:0 auto;padding:56px 20px 24px}
.favorites-top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}
.favorites-top h2{font:400 clamp(28px,3.1vw,40px)/1.12 Georgia,serif;letter-spacing:-.03em;color:#193c2d;margin:0 0 8px}
.favorites-top p{margin:0;color:#5e6a61;line-height:1.55;font-size:15px}
.favorites-all{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:40px;padding:0 18px;border:0;border-radius:999px;background:#244b3b;color:#fff;font-size:14px;font-weight:600;white-space:nowrap;transition:background .2s}
.favorites-all:hover{background:#183b2c;color:#fff}
.favorites-all:focus-visible{outline:2px solid #76614c;outline-offset:3px}
.favorites-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.favorite-card{--tile:#e7eedd;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--tile);border:0;border-radius:22px;box-shadow:none;padding:14px 14px 16px;transition:transform .2s,box-shadow .2s}
.favorite-card:nth-child(4n+2){--tile:#fbe6d6}
.favorite-card:nth-child(4n+3){--tile:#f5ecce}
.favorite-card:nth-child(4n+4){--tile:#ede4f1}
.favorite-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px #203d2b14}
.favorite-photo{position:relative;display:block;width:100%;height:auto;aspect-ratio:4/3;padding:0;margin:0;border-radius:14px;background:transparent;overflow:visible;cursor:pointer}
.favorite-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:14px;transition:transform .3s}
.favorite-card.has-cutout .favorite-photo img{object-fit:contain;border-radius:0;padding:4px;filter:drop-shadow(0 10px 12px rgba(70,45,15,.2))}
.favorite-photo:hover img{transform:scale(1.04)}
.favorite-photo:focus-visible,.favorite-name:focus-visible,.favorite-buy:focus-visible{outline:2px solid #76614c;outline-offset:3px}
.favorite-info{display:flex;flex:1;flex-direction:column;padding:12px 2px 0}
.favorite-info h3{margin:0 0 10px;font:inherit}
.favorite-name{display:block;width:100%;padding:0;margin:0;background:none;border:0;border-radius:0;color:#193c2d;font:400 19px/1.22 Georgia,serif;text-align:start;overflow-wrap:anywhere;hyphens:auto;cursor:pointer}
.favorite-name:hover{text-decoration:underline;text-underline-offset:3px}
.favorite-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
.favorite-info p.favorite-price{margin:0;font-weight:700;font-size:16px;color:#244b3b;white-space:nowrap}
.favorite-buy{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 13px;border-radius:999px;background:#244b3b;color:#fff;font-size:13px;font-weight:600;line-height:1.1;white-space:nowrap}
.favorite-buy:hover{background:#183b2c}
.favorite-buy-icon{width:16px;height:16px;flex:0 0 auto}
.favorite-buy span{font-size:inherit;line-height:inherit;font-weight:inherit}
.favorite-buy:hover{transform:none}
@media(max-width:1060px) and (min-width:681px){.favorite-row{flex-direction:column;align-items:stretch}.favorite-buy{min-height:42px}}
@media(max-width:860px){.favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.favorite-row{flex-direction:row;align-items:center}}
@media(max-width:680px){
  .guest-favorites{padding:40px 16px 12px}
  .favorites-top{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}
  .favorites-top h2{font-size:28px}
  .favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .favorite-card{padding:10px 10px 12px;border-radius:18px}
  .favorite-name{font-size:16px}
  .favorite-row{flex-direction:column;align-items:stretch;gap:8px}
  .favorite-price{font-size:15px}
  .favorite-buy{min-height:44px;width:100%;font-size:14px}
}

/* ===== «Наш подход» — единый светлый блок: заголовок слева, три колонки справа (2026-11-07) ===== */
.premium-values.approach{max-width:1200px;margin:0 auto;padding:40px 20px 24px}
.approach-panel{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(0,2.3fr);gap:40px;align-items:center;background:#f3ead9;border-radius:28px;padding:48px 48px 44px}
.approach-intro h2{font:400 clamp(32px,3.4vw,46px)/1.08 Georgia,"Times New Roman",serif;letter-spacing:-.04em;color:#183b2c;margin:12px 0 0}
.approach-accent{display:block;width:96px;height:12px;margin-top:16px;color:#c9a55a}
.approach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.approach-grid article{min-width:0;padding:0;background:none;border:0}
.approach-media{display:flex;align-items:flex-end;justify-content:center;height:118px;margin-bottom:16px}
.approach-media img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(70,45,15,.16))}
.approach-text h3{margin:0 0 8px;color:#183b2c;font:700 17px/1.3 Arial,sans-serif;letter-spacing:.005em}
.approach-text p{margin:0;color:#5f6b63;font-size:14px;line-height:1.65}
@media(max-width:1000px){.approach-panel{grid-template-columns:1fr;gap:30px;padding:38px 32px}.approach-intro{max-width:560px}}
@media(max-width:680px){
  .premium-values.approach{padding:28px 16px 12px}
  .approach-panel{padding:28px 20px 24px;border-radius:22px;gap:24px}
  .approach-intro h2{font-size:31px}
  .approach-grid{grid-template-columns:1fr;gap:18px}
  .approach-grid article{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center}
  .approach-media{height:76px;margin:0}
  .approach-text h3{font-size:16px;margin-bottom:4px}
}


/* ===== Эффекты главной: зерно, свет за фото, неоновое свечение, Lenis (2026-11-07) ===== */
/* Мелкое матовое зерно на кремовом фоне — неподвижное, под контентом, не затрагивает фото. */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iMTYwIj48ZmlsdGVyIGlkPSJuIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iLjkiIG51bU9jdGF2ZXM9IjIiIHN0aXRjaFRpbGVzPSJzdGl0Y2giLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgLjMyICAwIDAgMCAwIC4yNSAgMCAwIDAgMCAuMTYgIDAgMCAwIC45IDAiLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE2MCIgZmlsdGVyPSJ1cmwoI24pIi8+PC9zdmc+");background-size:160px 160px;opacity:.07}
/* Мягкий кремово-янтарный спотлайт за фотографией блюда (статичный; на компьютере его оживляет Vanta FOG). */
.premium-hero-visual{position:relative;isolation:isolate}
.hero-spotlight{position:absolute;z-index:-1;inset:-14% -12%;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,rgba(240,186,104,.55),rgba(245,214,165,.38) 45%,rgba(248,241,228,0) 80%);
  -webkit-mask-image:radial-gradient(closest-side,#000 52%,transparent 100%);mask-image:radial-gradient(closest-side,#000 52%,transparent 100%)}
.hero-spotlight canvas{opacity:0;transition:opacity 1.2s ease}
.hero-spotlight.has-vanta canvas{opacity:.85}
.premium-photo-frame{position:relative;z-index:1}
.premium-photo-caption{position:relative;z-index:1}
@media(max-width:680px){.hero-spotlight{inset:-10% -6%}}

/* Неоновое свечение акцентов — янтарно-золотой тон из палитры сайта. */
:root{--glow:226,194,127}
.premium-primary-cta{box-shadow:0 8px 22px #183b2c1c,0 0 0 1px rgba(var(--glow),.38),0 0 14px rgba(var(--glow),.32),0 0 32px rgba(var(--glow),.16);transition:box-shadow .25s ease,background .2s,transform .2s}
.premium-primary-cta:hover,.premium-primary-cta:focus-visible{box-shadow:0 10px 24px #183b2c24,0 0 0 1px rgba(var(--glow),.6),0 0 18px rgba(var(--glow),.5),0 0 42px rgba(var(--glow),.26)}
.premium-primary-cta:focus-visible{outline:2px solid #76614c;outline-offset:4px}
.favorites-all .glow-arrow{display:inline-block;margin-inline-start:6px;color:#f3d58c;text-shadow:0 0 6px rgba(var(--glow),.85),0 0 14px rgba(var(--glow),.45);transition:text-shadow .25s ease,transform .25s ease}
.favorites-all:hover .glow-arrow,.favorites-all:focus-visible .glow-arrow{text-shadow:0 0 8px rgba(var(--glow),1),0 0 20px rgba(var(--glow),.7);transform:translate(1px,-1px)}
header nav a.is-active{color:#183b2c;text-shadow:0 0 10px rgba(var(--glow),.55)}
header nav a.is-active::after{content:"";display:block;height:2px;margin-top:2px;border-radius:2px;background:#c9a55a;box-shadow:0 0 8px rgba(var(--glow),.9),0 0 16px rgba(var(--glow),.5)}
header nav a:focus-visible{outline:2px solid #76614c;outline-offset:3px}

/* Lenis */
html.lenis,html.lenis body{height:auto}
html.lenis{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-smooth.lenis-scrolling iframe{pointer-events:none}

/* Первый экран до запуска GSAP (класс ставит fx-boot.js; без JS ничего не скрыто). */
html.fx .premium-hero [data-reveal]{opacity:0}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-spotlight canvas{display:none}
  .premium-primary-cta,.favorites-all .glow-arrow{transition:none}
}

/* ===== Карточки категорий каталога (ряд «Все блюда · Закуски · …») (2026-11-07) ===== */
.cat-rail{position:relative;display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;margin:18px 0 8px}
.cat-rail[hidden]{display:none!important}
#subsRail #subs{display:flex;flex:1 1 auto;flex-wrap:nowrap;align-items:stretch;gap:12px;min-width:0;max-width:100%;margin:0;padding:6px 4px 14px;
  overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding-inline:4px}
#subsRail #subs::-webkit-scrollbar{display:none}
#subsRail #subs .cat-card{flex:0 0 auto;width:auto;min-width:122px;max-width:168px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:9px;
  min-height:0;margin:0;padding:12px 8px 11px;border-radius:18px;background:#fff;border:1.5px solid #ebe5d9;color:#203e30;
  box-shadow:0 2px 10px rgba(32,61,43,.05);font:600 13px/1.22 Arial,sans-serif;text-align:center;white-space:normal;scroll-snap-align:start;
  cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .2s,transform .2s}
#subsRail #subs .cat-card:hover{border-color:#d4c9b3;transform:translateY(-2px);box-shadow:0 5px 10px rgba(32,61,43,.08);background:#fff}
#subsRail #subs .cat-card[aria-pressed=true]{background:#edf3ec;border-color:#244b3b;box-shadow:inset 0 0 0 1px #244b3b,0 3px 8px rgba(36,75,59,.10);color:#183b2c}
#subsRail #subs .cat-card[aria-pressed=true]:hover{transform:none}
#subsRail #subs .cat-card:focus-visible{outline:2px solid #76614c;outline-offset:2px}
.cat-thumb{display:block;width:64px;height:64px;flex:0 0 auto;border-radius:50%;overflow:hidden;background:#f3efe6;box-shadow:0 3px 8px rgba(60,40,15,.12)}
.cat-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.cat-card[data-sub=""] .cat-thumb{box-shadow:none;background:transparent}
.cat-name{display:-webkit-box;width:max-content;max-width:100%;text-wrap:balance;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:2.44em;overflow-wrap:anywhere;hyphens:auto}
.cat-arrow{flex:0 0 auto;display:none;place-items:center;width:40px;height:40px;min-height:0;padding:0;border-radius:50%;background:#fff;color:#244b3b;border:1px solid #e1dbce;box-shadow:0 3px 10px rgba(32,61,43,.08);transition:opacity .2s,background .2s}
.cat-rail.is-overflowing .cat-arrow{display:grid}
.cat-arrow:hover:not(:disabled){background:#edf3ec}
.cat-arrow:disabled{opacity:.35;cursor:default}
.cat-arrow:focus-visible{outline:2px solid #76614c;outline-offset:2px}
html[dir="rtl"] .cat-arrow svg{transform:scaleX(-1)}
@media(max-width:700px){
  .cat-rail{margin:12px 0 6px}
  .cat-rail .cat-arrow{display:none!important}
  #subsRail #subs{gap:10px;padding:5px 2px 14px;scroll-padding-inline:2px}
  #subsRail #subs .cat-card{min-width:98px;max-width:150px;padding:10px 8px 9px;border-radius:16px;font-size:12.5px;gap:7px}
  .cat-thumb{width:54px;height:54px}
}
@media(prefers-reduced-motion:reduce){#subsRail #subs .cat-card{transition:none}#subsRail #subs .cat-card:hover{transform:none}}

/* ===== Шрифты: мягкие засечки для заголовков, гротеск для текста; 4 языка (2026-11-07) ===== */
@font-face{font-family:"SG Display";src:url("fonts/lora.woff") format("woff");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0400-04FF,U+2000-206F,U+2116,U+2122,U+20AC,U+2190-2199}
@font-face{font-family:"SG Display";src:url("fonts/noto-serif-georgian.woff") format("woff");font-weight:100 900;font-display:swap;unicode-range:U+10A0-10FF,U+1C90-1CBF,U+2D00-2D2F}
@font-face{font-family:"SG Display";src:url("fonts/noto-naskh-arabic.woff") format("woff");font-weight:400 700;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
@font-face{font-family:"SG Text";src:url("fonts/manrope.woff") format("woff");font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0400-04FF,U+2000-206F,U+2116,U+2122,U+20AC,U+2190-2199}
@font-face{font-family:"SG Text";src:url("fonts/noto-sans-georgian.woff") format("woff");font-weight:100 900;font-display:swap;unicode-range:U+10A0-10FF,U+1C90-1CBF,U+2D00-2D2F}
@font-face{font-family:"SG Text";src:url("fonts/noto-sans-arabic.woff") format("woff");font-weight:100 900;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
:root{--font-display:"SG Display",Georgia,"Times New Roman",serif;--font-text:"SG Text","Segoe UI",Arial,sans-serif}
body,button,input,select,textarea{font-family:var(--font-text)}
:is(.premium-hero-copy h1,.favorites-top h2,.approach-intro h2,.premium-catalog-intro h2,.location h2,footer h2,
    #detail .premium-detail-info h2,.favorite-name,#catalog .grid .premium-menu-card .body h2,.favorite-info h3,
    .premium-value-symbol,.premium-photo-caption,#cart h2,#orderSuccess h2,.premium-menu-card-no-photo){font-family:var(--font-display)!important}
.premium-hero-copy h1{font-weight:500;letter-spacing:-.025em}
.favorites-top h2,.approach-intro h2,.premium-catalog-intro h2{font-weight:500;letter-spacing:-.02em}
html[lang="ka"] :is(.premium-hero-copy h1,.favorites-top h2,.approach-intro h2,.premium-catalog-intro h2,#detail .premium-detail-info h2){line-height:1.28;letter-spacing:0}
html[dir="rtl"] *{letter-spacing:0!important}
html[dir="rtl"] :is(.premium-hero-copy h1,.favorites-top h2,.approach-intro h2,.premium-catalog-intro h2,#detail .premium-detail-info h2){line-height:1.4}
.premium-eyebrow{font-family:var(--font-text);font-weight:700}

/* ===== Карточки каталога: фото одного формата, описание, цена и кнопка на одной линии ===== */
#catalog .grid .premium-menu-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:18px}
#catalog .grid .premium-menu-card-photo{height:auto;aspect-ratio:4/3;flex:0 0 auto}
#catalog .grid .premium-menu-card .media{display:block;width:100%;height:100%;padding:0;border-radius:0}
#catalog .grid .premium-menu-card .media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
#catalog .grid .premium-menu-card:hover .media img{transform:scale(1.035)}
#catalog .grid .premium-menu-card-body{display:flex;flex-direction:column;flex:1 1 auto;padding:18px 18px 16px}
#catalog .grid .premium-menu-card .body h2{margin:0 0 8px;font-size:clamp(20px,1.7vw,23px);font-weight:500;line-height:1.22;letter-spacing:-.01em;color:#193c2d}
.menu-card-title{display:block;width:100%;padding:0;margin:0;background:none;border:0;border-radius:4px;color:inherit;font:inherit;line-height:inherit;text-align:start;cursor:pointer;overflow-wrap:anywhere;hyphens:auto}
.menu-card-title:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.menu-card-title:focus-visible,#catalog .grid .premium-menu-card .media:focus-visible{outline:2px solid #76614c;outline-offset:3px}
#catalog .grid .premium-menu-card .premium-menu-card-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0;font-size:14px;line-height:1.55;color:#5c695f}
.menu-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px}
.premium-menu-card-description+.menu-card-bottom{margin-top:auto}
#catalog .grid .premium-menu-card .menu-card-bottom .price{display:flex;flex-direction:column;margin:0;padding:0;font:800 20px/1.1 var(--font-text);color:#193c2d;white-space:nowrap}
.menu-card-weight{margin-top:4px;font-size:12px;font-weight:600;color:#5e6a61}
.menu-card-buy{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-height:44px;padding:0 17px;border-radius:999px;background:#244b3b;color:#fff;font:700 14px/1 var(--font-text);white-space:nowrap;transition:background .2s}
.menu-card-buy:hover:not(:disabled){background:#183b2c}
.menu-card-buy:focus-visible{outline:2px solid #76614c;outline-offset:3px}
.menu-card-buy:disabled{background:#c9c4b8;color:#fff}
.catalog-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:14px;padding:44px 20px;text-align:center;background:#fff;border:1px dashed #d9d1c2;border-radius:18px}
.catalog-empty p{margin:0;font:500 22px/1.3 var(--font-display);color:#193c2d}
.catalog-empty button{min-height:44px;padding:0 20px;border-radius:999px;background:#244b3b;color:#fff;font-weight:700}
@media(max-width:700px){
  #catalog .grid{grid-template-columns:1fr!important;gap:14px}
  #catalog .grid .premium-menu-card{grid-column:auto}
  #catalog .grid .premium-menu-card-photo{aspect-ratio:16/10;height:auto}
  #catalog .grid .premium-menu-card .media{height:100%}
  #catalog .grid .premium-menu-card-body{padding:15px 16px 14px}
  #catalog .grid .premium-menu-card .body h2{font-size:21px}
  #catalog .grid .premium-menu-card .premium-menu-card-description{font-size:13.5px}
}

/* ===== Окно блюда: крупное фото, состав, вес; количество и кнопка с суммой внизу ===== */
#detail.dish-sheet .dish-sheet-handle{display:none}
#detail.dish-sheet .premium-detail-info h2{margin:0 0 6px;font-weight:500;font-size:clamp(28px,2.8vw,38px);line-height:1.15;letter-spacing:-.015em}
.dish-detail-price{margin:0 0 16px;font:800 20px/1.2 var(--font-text);color:#244b3b}
#detail.dish-sheet .premium-detail-description{font-size:15px;line-height:1.65;color:#46584c;margin:0 0 16px}
.dish-detail-block{margin:0 0 14px;padding:13px 16px;background:#f8f5ef;border:1px solid #ebe4d7;border-radius:12px}
.dish-detail-block h3{margin:0 0 4px;font:700 12px/1.3 var(--font-text);letter-spacing:.06em;text-transform:uppercase;color:#6b5a3e}
html[lang="ka"] .dish-detail-block h3,html[dir="rtl"] .dish-detail-block h3{text-transform:none;font-size:13px}
.dish-detail-block p{margin:0;font-size:14px;line-height:1.65;color:#4f5d53}
.dish-detail-facts{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.dish-detail-facts li{display:inline-flex;gap:6px;align-items:baseline;padding:7px 12px;border-radius:999px;background:#edf3ec;color:#244b3b;font-size:13px}
.dish-detail-facts li span{color:#5c6f62}
#detail .dish-detail-order{margin-top:auto;padding-top:16px;border-top:1px solid #ece5d8;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:12px 14px}
#detail .dish-detail-order>*{grid-column:1/-1}
#detail .dish-detail-order>.quantity-control{grid-column:1;margin:0;max-width:170px}
#detail .dish-detail-order>.premium-detail-buy{grid-column:2;margin:0}
#detail .dish-detail-order.is-simple .estimate{display:none}
#detail .dish-detail-order .estimate{margin:0;padding:0;border:0;font-size:15px}
#detail .dish-detail-order .premium-detail-buy{min-height:46px;border-radius:999px;gap:0;font:700 15px/1.2 var(--font-text)}
.dish-buy-sum{white-space:nowrap;margin-inline-start:.35em}
@media(min-width:701px){
#detail.dish-sheet .premium-detail-visual{display:flex}
#detail.dish-sheet .premium-detail-photo{flex:1 1 auto;height:auto;min-height:420px}
#detail.dish-sheet #detailBody .premium-detail-photo img{height:100%}
}
@media(max-width:700px){
  #detail.premium-detail-dialog.dish-sheet[open]{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:100%;max-height:92dvh;padding:0;
    border-radius:22px 22px 0 0;border:0;box-shadow:0 -12px 40px #0f2a1f40;animation:dishSheetUp .32s cubic-bezier(.2,.8,.2,1)}
  #detail.premium-detail-dialog.dish-sheet #detailBody{max-height:92dvh;overflow:auto}
  #detail.dish-sheet .premium-detail-layout{display:block;min-height:0;position:relative}
  #detail.dish-sheet .dish-sheet-handle{display:block;position:absolute;z-index:2;top:8px;left:50%;width:44px;height:5px;margin-left:-22px;border-radius:3px;background:#ffffffd9;box-shadow:0 1px 4px #0003}
  #detail.dish-sheet .premium-detail-photo{height:auto;aspect-ratio:16/11;max-height:42dvh}
  #detail.dish-sheet #detailBody .premium-detail-photo img{height:100%;max-height:none}
  #detail.dish-sheet .premium-detail-visual{display:block}
  #detail.dish-sheet .premium-detail-info{padding:18px 18px 0}
  #detail.dish-sheet .premium-detail-info h2{font-size:27px}
  #detail .dish-detail-order{position:sticky;bottom:0;z-index:2;margin:6px -18px 0;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#fffdfa;box-shadow:0 -8px 18px #fffdfa}
  #detail.premium-detail-dialog>.close{top:12px;right:12px}
}
@keyframes dishSheetUp{from{transform:translateY(100%)}to{transform:none}}
@media(prefers-reduced-motion:reduce){#detail.premium-detail-dialog.dish-sheet[open]{animation:none}#catalog .grid .premium-menu-card .media img{transition:none}}

/* ===== «Где нас найти»: адрес, часы и кнопки — до карты (2026-11-07) ===== */
.location .location-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:end;margin:0 0 18px;padding:26px 28px;background:#fff;border:1px solid #e6dfd2;border-radius:20px}
.location .location-info h2{margin:0 0 4px;font:500 clamp(28px,3vw,36px)/1.15 var(--font-display);color:#193c2d}
.location .location-business-name{display:block;margin-bottom:14px;font-size:14px;color:#6b5a3e;font-weight:700}
.location-facts{display:grid;grid-template-columns:repeat(3,minmax(0,auto));gap:10px 34px;margin:0}
.location-facts>div{min-width:0}
.location-facts dt{margin:0 0 3px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6b5a3e}
html[lang="ka"] .location-facts dt,html[dir="rtl"] .location-facts dt{text-transform:none;font-size:13px}
.location-facts dd{margin:0;font-size:15px;line-height:1.5;color:#23392e}
.location-facts dd.location-cutoff{font-size:13px;color:#5e6a61}
.location-facts dd a{color:#244b3b;direction:ltr;unicode-bidi:isolate;white-space:nowrap}
.location-actions{display:flex;flex-direction:column;gap:10px;min-width:210px}
.location-actions .route,.location-actions .location-call{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:999px;font-weight:700;font-size:15px;text-align:center}
.location-actions .route{background:#244b3b;color:#fff;border:1px solid #244b3b}
.location-actions .location-call{background:#fff;color:#244b3b;border:1px solid #244b3b}
.location-actions a:hover{filter:brightness(1.06)}
.location-actions a:focus-visible{outline:2px solid #76614c;outline-offset:3px}
.location iframe{height:380px}
@media(max-width:900px){.location-facts{grid-template-columns:1fr 1fr}}
@media(max-width:700px){
  .location .location-card{grid-template-columns:1fr;padding:20px 18px;gap:16px}
  .location-facts{grid-template-columns:1fr;gap:12px}
  .location-actions{flex-direction:row;min-width:0}
  .location-actions a{flex:1 1 0}
  .location iframe{height:300px}
}


/* Контраст подписей ≥ 4.5:1 и иконки вместо эмодзи (2026-11-07) */
.location .muted{color:#5e6a61}
.premium-sparkle,.premium-catalog-decor{display:inline-flex;align-items:center;justify-content:center;line-height:0}
.premium-sparkle svg{width:15px;height:15px}
.premium-catalog-decor svg{width:1em;height:1em}
.language-icon{display:inline-flex;align-items:center;color:#244b3b}
.language-icon svg{width:20px;height:20px}
.language-switcher select{min-height:44px}
.favorites-all{min-height:44px}
.cat-arrow{width:44px;height:44px}
.language-switcher select{height:44px}
#detail .premium-detail-order .quantity-stepper button,#detail .premium-detail-order .quantity-stepper input{height:44px;min-height:44px}
#detail .premium-detail-order .quantity-stepper{grid-template-columns:44px minmax(0,1fr) 44px}
#detail.premium-detail-dialog>.close{width:44px;height:44px}

/* ===== Отзывы гостей из Google Карт (2026-11-07) ===== */
.guest-reviews{max-width:1200px;margin:0 auto;padding:44px 20px 20px}
.reviews-top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}
.reviews-top h2{margin:10px 0 6px;font:500 clamp(28px,3.1vw,40px)/1.12 var(--font-display);letter-spacing:-.02em;color:#193c2d}
.reviews-top p{margin:0;color:#5e6a61;font-size:15px}
.reviews-all{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;color:#244b3b;font-weight:700;font-size:14px;border-bottom:1px solid #b9b49f;white-space:nowrap}
.reviews-all:focus-visible{outline:2px solid #76614c;outline-offset:3px}
.reviews-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:stretch}
.review-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:26px 26px 22px;background:#fff;border:1px solid #e6dfd2;border-radius:22px;box-shadow:0 6px 22px #203d2b0a;overflow:hidden}
.review-card::before{content:"“";position:absolute;top:-18px;inset-inline-end:18px;font:400 140px/1 var(--font-display);color:#f1e7d3;pointer-events:none}
.review-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px}
.review-stars{display:inline-flex;gap:3px}
.review-stars svg{width:18px;height:18px;fill:#e2a43a}
.review-date{font-size:13px;color:#5e6a61}
.review-text{position:relative;margin:0}
.review-text p{margin:0;font:400 20px/1.5 var(--font-display);color:#1f3a2d}
.review-text-large p{font-size:26px;line-height:1.35}
.review-lang-note{display:none;margin:-6px 0 0;font-size:12px;color:#5e6a61}
html:not([lang="ru"]) .review-lang-note{display:block}
.review-ordered{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.review-ordered-label{font-size:13px;font-weight:700;color:#6b5a3e}
.review-dish{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 14px 4px 4px;border-radius:999px;background:#f8f5ef;border:1px solid #e6dfd2;color:#193c2d;font:700 13px/1.2 var(--font-text);cursor:pointer}
html[dir="rtl"] .review-dish{padding:4px 4px 4px 14px}
.review-dish img{width:36px;height:36px;border-radius:50%;object-fit:cover}
.review-dish:hover{background:#edf3ec;border-color:#c9d6c8}
.review-dish:focus-visible{outline:2px solid #76614c;outline-offset:2px}
.review-dish[hidden]{display:none}
.review-author{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid #efe9de}
.review-avatar{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border-radius:50%;background:#244b3b;color:#fff;font:600 17px/1 var(--font-text)}
.review-author strong{display:block;font-size:15px;color:#193c2d}
.review-author small{display:block;font-size:12px;color:#5e6a61}
@media(max-width:860px){.reviews-grid{grid-template-columns:1fr}}
@media(max-width:680px){
  .guest-reviews{padding:34px 16px 12px}
  .reviews-top{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:16px}
  .reviews-top h2{font-size:28px}
  .review-card{padding:20px 18px 18px;border-radius:18px}
  .review-text p{font-size:18px}
  .review-text-large p{font-size:22px}
}


.minimum-quantity-dialog{max-width:390px;width:calc(100% - 32px);padding:28px;border-radius:18px;text-align:center;background:#fffdfa;color:#244b3b;box-shadow:0 24px 60px #122b2140}.minimum-quantity-dialog h2{font:400 29px/1.2 Georgia,serif;margin:0 0 12px}.minimum-quantity-dialog p{line-height:1.6;margin:0 0 24px}.minimum-quantity-dialog button{min-height:46px;width:100%}.minimum-order-note{font-size:13px!important;color:#745e3c!important;background:#f7f1e5;padding:9px 12px;border-radius:8px;margin:8px 0}

/* Окно блюда: длинные названия не сжимаются по высоте */
.premium-detail-info>*{flex-shrink:0}
