/* Customer-facing layout and motion rules. Loaded after the legacy stylesheet. */
:root { --header-height:104px; }
html, html:has(#menu:target) { scroll-padding-top:calc(var(--header-height) + 16px); }
[hidden] { display:none !important; }
img { max-width:100%; }
main, .hero-copy, .hero-visual, .visit-copy, .menu-card { min-width:0; }
.site-header.refined-header .brand .refined-mark img,
body:has(#menu:target) .site-header.refined-header .brand .refined-mark img {
  width:100%; height:100%; max-width:100%; padding:0; object-fit:contain;
}
.site-header.refined-header .refined-mark { border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
.site-header.refined-header .refined-mark:empty { display:none; }
.site-header.refined-header { height:var(--header-height) !important; }
.intro-animation .hero-copy, .intro-animation .hero-visual, .intro-animation .dish-tile,
.intro-animation .site-header, .category-list-enter a,
.menu-card.category-content-enter, .menu-card.category-content-enter .menu-list li {
  animation:none !important;
}
.hero-copy, .hero-visual { top:auto; transform:none; }
.scroll-reveal { opacity:1; transform:none; transition:none; }
.dish-tile > a { display:block; width:100%; height:100%; }
.dish-tile > a:hover { transform:none; }
.dish-tile img { width:100%; height:100%; }
.hero { padding-block:64px; min-height:620px; }
.hero-copy > .button { min-height:48px; }
#menu.menu-section, #menu:target.menu-section { padding-block:64px; scroll-margin-top:0; }
#menu .category-nav { margin-right:auto; align-items:stretch; scroll-margin-top:0; }
#menu .category-option { transition:background-color .18s, color .18s, box-shadow .18s; }
#menu .category-nav a.category-option,
#menu .category-nav a.category-option:hover,
#menu .category-nav a.category-option.is-selected,
#menu .category-nav a.category-option[aria-current="true"] {
  border:0;
}
#menu .category-nav a.category-option.is-selected,
#menu .category-nav a.category-option[aria-current="true"] {
  box-shadow:0 8px 20px rgba(56,37,28,.12);
}
#menu .category-nav a.category-option:focus-visible {
  outline:2px solid #805931;
  outline-offset:3px;
}
#menu .menu-card .card-heading h3:focus {
  outline:none !important;
  box-shadow:none !important;
}
#menu .menu-card .card-heading h3:focus-visible {
  outline:none !important;
  box-shadow:none !important;
}
.visit-copy > .instagram-button,
.visit-copy > .whatsapp-contact-button,
.visit-copy > .map-button,
.visit-copy > .delivery-button {
  justify-content:space-between;
  gap:12px;
  margin:0 0 12px;
}
.visit-copy > .instagram-button svg,
.visit-copy > .whatsapp-contact-button svg,
.visit-copy > .map-button svg,
.visit-copy > .delivery-button svg {
  display:block;
  width:18px;
  height:18px;
  flex:0 0 18px;
}
#menu .category-option span { min-height:48px; font-size:14px; }
#menu .category-option img { aspect-ratio:4/3; }
#menu .menu-grid { gap:0; }
#menu .menu-status { max-width:1260px; min-height:24px; margin:0 auto 20px; color:#6f5542; font-size:13px; line-height:1.6; }
#menu .menu-card { padding:28px; border-radius:12px; scroll-margin-top:0; }
#menu .menu-grid .menu-card.is-active { border:0; box-shadow:none; }
#menu .menu-list { width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:24px; }
#menu .menu-list li,
#menu .menu-list li:not(.menu-no-photo) {
  display:block; min-width:0; padding:0; border:0; background:transparent;
}
.dish-open {
  display:grid; width:100%; height:100%; grid-template-columns:minmax(0,1fr) auto;
  align-content:start; align-items:center; gap:14px 8px; padding:12px;
  border:1px solid #e5d4bd; border-radius:10px; background:#fffdf9;
  text-align:left; font:inherit; color:#38251c; cursor:pointer;
  box-shadow:0 1px 0 #f1e5d4, 0 6px 16px -12px #4a2c2066;
  transition:background-color .18s, border-color .18s, box-shadow .18s;
}
#menu .menu-list .dish-open b { justify-self:end; align-self:start; white-space:nowrap; color:#5a3418; background:#f3e4cf; border:1px solid #e0c6a2; font-variant-numeric:tabular-nums; letter-spacing:.01em; line-height:1.2; }
#menu .menu-list .dish-open .dish-name { font-weight:600; color:#38251c; }
.dish-open:focus-visible { outline-offset:2px; }
.dish-open:active { background:#f5e8d6; }
#menu .menu-list .dish-open .menu-photo-frame {
  grid-column:1/-1; display:block; width:100%; height:auto; aspect-ratio:4/3;
  margin:0; overflow:hidden; border-radius:6px; background:#eee3d4;
}
#menu .menu-list .dish-open .menu-thumb { display:block; width:100%; height:100%; object-fit:cover; border-radius:0; }
#menu .menu-list .dish-open .dish-name { font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
#menu .menu-list .dish-open b { font-size:13px; padding:5px 7px; border-radius:4px; }
#menu .menu-no-photo .dish-open { min-height:100px; align-content:center; }
#menu .menu-category-back { min-height:44px; background:#fffaf4; color:#513522; border-color:#cdb291; font-size:13px; border-radius:6px; }
.visit-copy > p:not(.eyebrow) { font-size:15px; }
.visit-image { overflow:hidden; }
.visit-image img { display:block; }
.feedback-form label, .feedback-form .feedback-intro { font-size:13px; }
.feedback-form input,.feedback-form select,.feedback-form textarea { font-size:16px; min-height:44px; }
.feedback-status { font-size:13px; }
.feedback-status[data-state="pending"] { color:#ead1ad; }
.feedback-status[data-state="error"] { color:#ffb3a5; }
.feedback-status[data-state="success"] {
  display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:12px;
  min-height:70px; margin-top:4px; padding:12px 14px; overflow:hidden;
  border:1px solid #56755e; border-radius:9px; background:#20372a;
  color:#f4f7ef; animation:feedback-success-enter .5s cubic-bezier(.2,.8,.2,1) both;
}
.feedback-success-mark {
  display:grid; width:44px; height:44px; place-items:center; border-radius:50%;
  background:#dce9d8; color:#286144;
  animation:feedback-mark-enter .45s cubic-bezier(.2,.8,.2,1) .08s both;
}
.feedback-success-mark svg { display:block; width:25px; height:25px; }
.feedback-success-check {
  stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:24; stroke-dashoffset:24; animation:feedback-check-draw .42s ease-out .22s forwards;
}
.feedback-success-copy { display:grid; gap:4px; min-width:0; }
.feedback-success-copy strong { color:#e9c995; font:700 15px/1.25 var(--sans); }
.feedback-success-copy > span { color:#e5e8dc; font:400 12px/1.55 var(--sans); }
@keyframes feedback-success-enter {
  from { opacity:0; transform:translateY(8px) scale(.99); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes feedback-mark-enter {
  from { opacity:0; transform:scale(.72); }
  to { opacity:1; transform:scale(1); }
}
@keyframes feedback-check-draw { to { stroke-dashoffset:0; } }
footer { flex-wrap:wrap; gap:16px; padding-bottom:90px; padding-right:max(24px,5.5vw); }
footer > span { max-width:270px; }
.whatsapp-fab {
  isolation:isolate; width:60px; height:60px; min-height:60px;
  padding:0; gap:0; border-radius:50%;
  right:calc(24px + env(safe-area-inset-right)); bottom:calc(24px + env(safe-area-inset-bottom));
  background:#128c4a; color:white; border:2px solid #fff;
  box-shadow:0 5px 20px #152d2340; animation:none; transform:none;
}
.whatsapp-fab::before,.whatsapp-fab::after {
  content:""; position:absolute; inset:-2px; z-index:-1;
  border:2px solid #25b66c; border-radius:50%; pointer-events:none;
  opacity:0; animation:contact-ring 2.8s ease-out infinite;
}
.whatsapp-fab::after { animation-delay:1.4s; }
.whatsapp-fab > span { display:none; }
.whatsapp-fab svg { width:30px; height:30px; }
@keyframes contact-ring {
  0% { opacity:0; transform:scale(1); }
  12% { opacity:.5; }
  85%,100% { opacity:0; transform:scale(1.6); }
}
.product-is-open { position:fixed; top:var(--locked-scroll); width:var(--locked-width,100%); overflow:hidden; }
.product-view {
  width:min(900px,calc(100% - 40px)); max-height:calc(100dvh - 40px);
  padding:0; border:1px solid #ddc8ae; border-radius:16px; color:#38251c;
  background:#fffaf3; overflow:auto; overscroll-behavior:contain;
  box-shadow:0 24px 100px #180c0866;
}
.product-view::backdrop { background:#160d09b8; }
.product-shell { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.product-close {
  position:absolute; right:12px; top:12px; z-index:1; width:44px; height:44px;
  border:1px solid #d8c3a9; border-radius:50%; background:#fffaf3; color:#38251c;
  font:30px/1 var(--sans); cursor:pointer;
}
.product-image { display:grid; align-items:center; background:#eadbc7; min-height:380px; }
.product-image img { display:block; width:100%; height:100%; object-fit:contain; }
.product-no-image { padding:40px; text-align:center; font:600 36px/1.3 var(--serif); }
.product-no-image small { display:block; margin-top:16px; font:600 10px var(--sans); letter-spacing:.2em; }
.product-copy { padding:64px 32px 36px; align-self:center; }
.product-copy h2 { font:600 clamp(27px,4vw,38px)/1.2 var(--serif); margin:12px 0; overflow-wrap:anywhere; }
.product-copy .eyebrow { font-size:10px; }
.product-price { display:inline-block; font-size:26px; line-height:1.1; font-weight:700; color:#5a3418; background:#f3e4cf; border:1px solid #e0c6a2; border-radius:6px; padding:8px 14px; margin:12px 0 18px; font-variant-numeric:tabular-nums; }
.product-price:empty { display:none; }
.product-description { color:#6b5848; font-size:14px; line-height:1.7; padding-top:16px; border-top:1px solid #e9d9c4; white-space:pre-line; overflow-wrap:anywhere; }
.product-close:hover { background:#f3e4cf; }
.product-image { position:relative; }
.product-image img { position:absolute; inset:0; }
.product-image img[hidden] { display:none; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #a26931; outline-offset:4px; }
@media (hover:hover) {
  .dish-open:hover { border-color:#a77543; background:#faf1e5; transform:none !important; }
  .whatsapp-fab:hover { background:#0e733c; transform:none; }
}
@media(max-width:1000px) {
  #menu .menu-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  footer small { display:none; }
}
@media(max-width:640px) {
  :root { --header-height:76px; }
  .hero { min-height:0; padding:28px 18px 32px; gap:22px; justify-content:flex-start; }
  .hero-copy,.hero-visual { top:auto; margin:0; padding:0; }
  .hero-copy > .eyebrow { margin-bottom:12px; font-size:10px; letter-spacing:.2em; }
  .hero h1 { font-size:clamp(46px,13vw,58px); line-height:.98; letter-spacing:-.035em; }
  .hero-intro { font-size:14px; line-height:1.6; max-width:34ch; margin:14px 0 18px; color:#eadccb; }
  .hero-copy > .button { width:100%; justify-content:space-between; padding:0 18px; }
  .hero-note { margin-top:14px; font-size:10px; letter-spacing:.14em; }
  .hero-visual { gap:10px; }
  .hero-visual .dish-gallery { gap:8px; }
  .hero-visual .dish-tile { aspect-ratio:4/3; border-radius:10px; }
  .hero-visual .visual-badge { height:50px; padding:0 16px; border-radius:6px; }
  .hero-visual .visual-badge span { font-size:9px; letter-spacing:.16em; }
  .hero-visual .visual-badge b { font-size:16px; letter-spacing:.02em; font-variant-numeric:tabular-nums; }
  #menu.menu-section,#menu:target.menu-section { padding:44px 16px; }
  #menu .section-heading { margin-bottom:24px; }
  #menu .section-heading > p { font-size:14px; }
  #menu .category-option span { font-size:13px; }
  #menu .menu-card { padding:18px 14px; }
  #menu .menu-list { gap:14px; margin-top:20px; }
  #menu .menu-list .dish-open .dish-name { font-size:14px; }
  #menu .menu-list .dish-open b { font-size:12px; }
  .visit-copy { padding:36px 22px; }
  .visit-image { min-height:240px; }
  footer { display:grid; grid-template-columns:44px minmax(0,1fr); gap:18px 12px; align-items:center; padding:26px 18px 96px; }
  footer > img { width:44px; height:44px; }
  footer > span { grid-column:2/-1; max-width:none; font-size:11px; font-weight:700; letter-spacing:.1em; line-height:1.5; }
  .feedback-status[data-state="success"] { grid-template-columns:40px minmax(0,1fr); gap:10px; padding:11px; }
  .feedback-success-mark { width:40px; height:40px; }
  .feedback-success-copy > span { font-size:12px; }
  .whatsapp-fab {
    width:56px; height:56px; min-height:56px;
    right:calc(22px + env(safe-area-inset-right)); bottom:calc(22px + env(safe-area-inset-bottom));
  }
  .product-view { width:calc(100% - 24px); max-height:calc(100dvh - 24px); border-radius:12px; }
  .product-shell { grid-template-columns:1fr; }
  .product-image { min-height:0; height:auto; }
  .product-image img { position:static; height:auto; max-height:50dvh; }
  .product-copy { padding:22px 20px calc(24px + env(safe-area-inset-bottom)); }
  .product-close { right:10px; top:10px; box-shadow:0 2px 10px #180c0840; }
  .product-price { font-size:24px; }
  .product-phone { padding-block:14px 2px; min-height:44px; }
  .product-copy h2 { font-size:28px; }
}
@media(max-width:420px) { #menu .menu-list { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* Availability notices, approved guest reviews, and uploaded menu photos. */
#menu .menu-list .menu-availability {
  grid-column:1/-1; display:grid; gap:2px; width:fit-content; max-width:100%;
  padding:6px 9px; border:1px solid #dec6ac; border-radius:6px;
  background:#f5e9dc; color:#69422d; font-size:11px; font-weight:700; line-height:1.4;
}
#menu .menu-list .menu-availability small { color:#806c5f; font-size:10px; font-weight:500; }
#menu .menu-list li.temporarily-unavailable .dish-open { border-color:#d5bfa9; }
.product-availability { margin:0 0 14px; color:#744b30; font-size:13px; font-weight:700; line-height:1.5; }
.guest-reviews { padding:54px max(24px,5.5vw); background:#efe4d7; color:#38251c; }
.guest-reviews-inner { width:min(1260px,100%); margin:0 auto; }
.guest-reviews .section-heading { display:block; margin:0 auto 25px; text-align:center; }
.guest-reviews .section-heading .eyebrow { justify-content:center; margin-bottom:14px; }
.guest-reviews-toggle {
  display:flex; width:min(420px,100%); min-height:68px; margin:0 auto; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 20px; border:1px solid #cbb294; border-radius:8px;
  background:#fffaf4; color:#38251c; text-align:left; cursor:pointer;
  font:600 clamp(24px,2.8vw,32px)/1.15 var(--serif);
  box-shadow:0 6px 18px #38251c0b; transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.guest-reviews-toggle svg { width:26px; height:26px; flex:none; color:#8d6238; transition:transform .25s ease; }
.guest-reviews-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.guest-reviews-toggle:hover { background:#f3e4cf; border-color:#a77543; transform:translateY(-1px); box-shadow:0 9px 22px #38251c16; }
.guest-reviews-toggle:focus-visible { outline:3px solid #8d6238; outline-offset:4px; }
.guest-review-grid[hidden] { display:none; }
.guest-review-grid:not([hidden]) { max-height:min(62svh,620px); overflow-y:auto; overscroll-behavior:contain; padding:22px 8px 8px 0; scrollbar-color:#a98a5e #24170f; scrollbar-width:thin; -webkit-overflow-scrolling:touch; }
.guest-review-grid:focus-visible { outline:2px solid #d5b67a; outline-offset:3px; }
.guest-review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.guest-review-card { min-width:0; padding:22px; border:1px solid #d7c4af; border-radius:10px; background:#fffaf4; box-shadow:0 8px 24px #38251c0b; }
.guest-review-rating { margin:0 0 12px; color:#8d6238; font-size:17px; letter-spacing:.08em; }
.guest-review-name { margin:0 0 10px; color:#38251c; font-size:15px; font-weight:700; }
.guest-review-card blockquote { margin:0; color:#4c372b; font-size:15px; line-height:1.7; overflow-wrap:anywhere; white-space:pre-line; }
.guest-review-card time { display:block; margin-top:18px; color:#806c5f; font-size:11px; }
@media(max-width:800px) { .guest-review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .guest-reviews { padding:32px 18px; } .guest-reviews .section-heading .eyebrow { margin-bottom:12px; } .guest-reviews-toggle { width:min(360px,100%); min-height:60px; padding:12px 16px; font-size:25px; } .guest-review-grid:not([hidden]) { max-height:min(50svh,440px); padding:16px 5px 6px 0; } .guest-review-grid { grid-template-columns:1fr; gap:12px; } .guest-review-card { padding:18px; } }
