/* Sections merged from the 02 layout, rebuilt on the Luna design system (base.css tokens). */

/* Full menu catalog (inside .menu-preview) */
.menu-catalog{margin-top:var(--head-gap)}
.menu-preview h2 em{font-style:italic;color:var(--olive-soft)}
.menu-filters{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.menu-filter{min-height:var(--control-h-sm);padding:0 var(--space-5);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--cream);color:var(--ink);font-size:var(--fs-small);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.menu-filter:hover{border-color:var(--dark)}
.menu-filter.is-active{border-color:var(--dark);background:var(--dark);color:var(--cream)}
.dish-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--grid-gap);margin-top:var(--space-6)}
.dish-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:var(--radius);background:var(--cream);box-shadow:var(--shadow-sm)}
.dish-card[hidden]{display:none}
.dish-card-media{position:relative;display:block;width:100%;padding:0;overflow:hidden;background:var(--stone)}
.dish-card-media img{width:100%;height:190px;object-fit:cover;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;transition:transform var(--dur-slow) var(--ease)}
.dish-card:hover .dish-card-media img{transform:scale(1.03)}
.dish-card-label:empty{display:none}
.dish-card-label{position:absolute;top:var(--space-3);left:var(--space-3);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--cream);color:var(--terracotta);font-size:11px;letter-spacing:.6px;line-height:1.3}
.dish-card-body{display:flex;flex:1;flex-direction:column;padding:var(--space-4) var(--space-4) var(--space-4)}
.dish-card-title{font-family:var(--font-serif);font-size:20px;font-weight:400;letter-spacing:-.02em;line-height:1.2}
.dish-card-short{margin-top:var(--space-2);color:var(--muted);font-size:var(--fs-small);line-height:1.5}
.dish-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:auto;padding-top:var(--space-5)}
.dish-card-price{font-size:var(--fs-body);font-weight:600;white-space:nowrap}
.dish-card-old-price{margin-right:var(--space-1);color:var(--muted);font-size:var(--fs-caption);white-space:nowrap}
.dish-card-weight{margin-left:var(--space-1);color:var(--muted);font-size:var(--fs-caption)}
.dish-card-open{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--fs-body);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.dish-card-open:hover{background:var(--dark);color:var(--cream)}
.menu-note{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-small)}
.menu-note .link-arrow{color:var(--ink);font-size:var(--fs-small)}

/* Dish dialog (same shell as the booking dialog) */
.dish-dialog{width:min(760px,calc(100% - 40px));padding:0;overflow:hidden}
.dish-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.dish-dialog .dialog-close{z-index:2;background:var(--paper)}
.dish-dialog-image{width:100%;height:100%;min-height:340px;object-fit:cover}
.dish-dialog-copy{display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-8) var(--space-7) var(--space-7)}
.dish-dialog h2{margin-top:var(--space-4);font-family:var(--font-serif);font-size:34px;font-weight:400;letter-spacing:-1.2px;line-height:1.1}
.dish-dialog-description{margin-top:var(--space-4);color:var(--muted);font-size:var(--fs-body);line-height:1.65}
.dish-dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;margin-top:auto;padding-top:var(--space-6)}
.dish-dialog-prices{display:flex;align-items:baseline;gap:var(--space-2);white-space:nowrap}
.dish-dialog-old-price{color:var(--muted);font-size:var(--fs-small)}
.dish-dialog-old-price[hidden]{display:none}
.dish-dialog-price{font-size:var(--fs-lead);font-weight:600;white-space:nowrap}
.dish-dialog{max-height:calc(100dvh - var(--space-7))}
.dish-dialog-copy{overflow-y:auto}
.dish-dialog-details{width:100%;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line)}
.dish-dialog-details[hidden]{display:none}

/* Rich text from the CMS (dish details): bold, italic, links, lists, small headings */
.rich-text{color:var(--muted);font-size:var(--fs-small);line-height:1.6}
.rich-text :is(p,ul,ol,h3,h4,blockquote)+:is(p,ul,ol,h3,h4,blockquote){margin-top:var(--space-3)}
.rich-text :is(ul,ol){margin-block:0;padding-left:var(--space-5)}
.rich-text li+li{margin-top:var(--space-1)}
.rich-text li::marker{color:var(--olive-soft)}
.rich-text :is(strong,b){color:var(--ink);font-weight:600}
.rich-text h3{color:var(--ink);font-family:var(--font-serif);font-size:20px;font-weight:400;letter-spacing:-.02em;line-height:1.25}
.rich-text h4{color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-small);font-weight:600;letter-spacing:0;line-height:1.4}
.rich-text :is(p,ul,ol,blockquote)+h3{margin-top:var(--space-5)}
.rich-text :is(h3,h4)+:is(p,ul,ol){margin-top:var(--space-2)}
.rich-text a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:text-decoration-color var(--dur) var(--ease)}
.rich-text a:hover{text-decoration-color:currentColor}
.rich-text blockquote{margin:0;padding-left:var(--space-4);border-left:2px solid var(--line);font-style:italic}

/* Atmosphere */
.atmosphere .section-head .h2{margin-top:var(--space-4)}
.atmosphere-photos{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--grid-gap);height:520px}
.atmosphere-photos figure{position:relative;min-width:0;margin:0;overflow:hidden;border-radius:var(--radius)}
.atmosphere-photos img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease)}
.atmosphere-photos figure:hover img{transform:scale(1.02)}
.atmosphere-room figcaption{position:absolute;bottom:var(--space-5);left:var(--space-5);color:var(--cream);font-size:var(--fs-caption);letter-spacing:1.2px;line-height:1.4;text-shadow:0 1px 12px rgba(28,32,25,.6)}
.atmosphere-table figcaption{position:absolute;right:var(--space-4);bottom:var(--space-4);left:var(--space-4);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--yellow);color:var(--dark);font-family:var(--font-serif);font-size:20px;line-height:1.2}
.atmosphere-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);margin-top:var(--space-6)}
.atmosphere-bottom .link-arrow{font-size:var(--fs-body)}

/* Chef */
.chef-inner{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--space-9);align-items:center;padding-block:var(--section-y)}
.chef-photo{position:relative;margin:0;overflow:hidden;border-radius:var(--radius)}
.chef-photo img{width:100%;height:600px;object-fit:cover}
.chef-photo figcaption{position:absolute;bottom:var(--space-5);left:var(--space-5);color:var(--cream);font-size:var(--fs-caption);letter-spacing:1.2px;line-height:1.4;text-shadow:0 1px 12px rgba(28,32,25,.6)}
.chef-copy{display:flex;flex-direction:column;align-items:flex-start}
.chef .section-kicker{color:var(--surface-label)}
.chef-copy .h2{margin-top:var(--space-5)}
.chef-text{max-width:460px;margin-top:var(--space-5);color:var(--surface-muted)}
.chef-sign{display:flex;align-items:center;gap:var(--space-4);width:100%;margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--surface-line);color:var(--surface-muted);font-size:var(--fs-small);line-height:1.5}
.chef-sign span{color:var(--yellow);font-size:32px;line-height:1}
.chef-copy .btn{margin-top:var(--space-7)}

/* Reviews */
.reviews .section-head .h2{margin-top:var(--space-4)}
.review-card{min-height:280px}
.review-quote{color:var(--olive-soft);font-family:var(--font-serif);font-size:56px;line-height:.8}
.review-text{margin:var(--space-4) 0 0;font-family:var(--font-serif);font-size:24px;letter-spacing:-.02em;line-height:1.3}
.review-person{display:flex;align-items:center;gap:var(--space-3);margin-top:auto;padding-top:var(--space-6)}
.review-avatar{display:grid;flex:none;place-items:center;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--stone);color:var(--olive);font-size:var(--fs-small)}
.review-person p{display:flex;flex-direction:column;font-size:var(--fs-small);line-height:1.4}
.review-person p span{color:var(--muted);font-size:var(--fs-caption)}

/* Contacts: CTA (CMS) + visit info */
/* Reviews already end with a full section padding: no second gap before the yellow block. */
.reviews + .contacts{margin-top:0}
.contacts{align-items:stretch;gap:var(--space-8)}
.contacts-main{display:flex;flex:1;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--space-6)}
.contacts-info{display:flex;flex:1;flex-direction:column;gap:var(--space-6);padding-left:var(--space-8);border-left:1px solid rgba(48,56,43,.2)}
.contacts-info .section-kicker{color:var(--olive)}
.contacts-address{margin-top:var(--space-3);margin-bottom:var(--space-4);font-size:30px}
.contacts-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
.contacts-value{display:block;margin-top:var(--space-2);font-size:var(--fs-lead);white-space:nowrap}
.contacts-email{display:inline-flex;gap:var(--space-2);font-size:var(--fs-small);color:rgba(48,56,43,.72);transition:color var(--dur) var(--ease)}
.contacts-email:hover,.contacts-value:hover{color:var(--dark)}

/* Footer legal row */
.site-footer{flex-wrap:wrap;row-gap:var(--space-4)}
.site-footer-legal{display:flex;flex-basis:100%;justify-content:space-between;gap:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line)}
.site-footer-legal a:hover{color:var(--ink)}

@media (max-width:1050px){
  .dish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chef-inner{gap:var(--space-7)}
  .chef-photo img{height:520px}
  .contacts-info{padding-left:var(--space-6)}
}

@media (max-width:760px){
  .dish-grid{grid-template-columns:1fr}
  .menu-note{display:block}
  .menu-note .link-arrow{margin-top:var(--space-4)}
  .dish-dialog[open]{grid-template-columns:1fr}
  .dish-dialog-image{min-height:0;height:220px}
  .dish-dialog-copy{padding:var(--space-6) var(--space-5)}
  .atmosphere-photos{grid-template-columns:1fr;height:auto}
  .atmosphere-photos img{height:280px}
  .atmosphere-bottom{display:block}
  .atmosphere-bottom .link-arrow{margin-top:var(--space-4)}
  .chef-inner{grid-template-columns:1fr}
  .chef-photo img{height:420px}
  .review-card{min-height:0}
  .contacts-main{gap:0}
  .contacts-row{grid-template-columns:1fr}
  .contacts-info{margin-top:var(--space-7);padding-top:var(--space-6);padding-left:0;border-top:1px solid rgba(48,56,43,.2);border-left:0}
  .site-footer-legal{flex-direction:column;gap:var(--space-2)}
}
