/* Original interaction layer: no layout changes, libraries or autoplay. */
:root { --ui-ease: cubic-bezier(.2,.7,.2,1); --ui-time: 180ms; }
:where(.btn, .filter, .app-nav a, .social-toggle, .social-links button, .section-controls button, .gallery-navigation button, .review-controls button) {
  transition: color var(--ui-time), background-color var(--ui-time), border-color var(--ui-time), box-shadow var(--ui-time), opacity var(--ui-time), transform var(--ui-time) var(--ui-ease);
}
:where(.btn, .filter, .social-toggle, .section-controls button, .gallery-navigation button, .review-controls button):active:not(:disabled) { transform: scale(.97); }
:where(a, button, input, select, textarea, [role="button"]):focus-visible { outline: 3px solid var(--leaf); outline-offset: 4px; }
.filter[aria-pressed="true"] { box-shadow: inset 0 0 0 1px currentColor; }
.app-nav a[aria-current="location"] svg { stroke-width: 2; }
.dish-card, .review-note, .gallery figure { transition: border-color 180ms, box-shadow 180ms, background-color 180ms; }
.dish-image, .gallery figure { overflow: hidden; }
.dish-image img, .gallery figure > img { transition: transform 350ms var(--ui-ease), filter 350ms; }
input, select, textarea { transition: border-color 180ms, box-shadow 180ms, background-color 180ms; }
input:focus, select:focus, textarea:focus { border-color: var(--selva); box-shadow: 0 0 0 3px rgba(47,111,82,.12); background-color: #fffdf8; }
.contact-fields [aria-invalid="true"] { border-color: #a54f3b; box-shadow: 0 0 0 2px rgba(165,79,59,.12); }
.contact-fields [aria-invalid="false"]:not(:placeholder-shown) { border-color: var(--selva); }
.section-controls button:disabled, .review-controls button:disabled { opacity: .35; box-shadow: none; }
.footer-links a, .footer-contact-link, .award-source, .desktop-nav a { transition: color 180ms, text-decoration-color 180ms; text-underline-offset: .3em; }
dialog::backdrop { background: rgba(9,28,20,.72); backdrop-filter: blur(5px); }
@media (hover: hover) and (pointer: fine) {
  .btn-primary:hover { filter: brightness(1.08); box-shadow: 0 4px 12px rgba(15,47,36,.16); }
  .btn-ghost:hover { background-color: rgba(126,159,132,.13); border-color: var(--leaf); }
  .filter:not([aria-pressed="true"]):hover { background: #e4eadb; color: var(--forest); border-color: var(--leaf); }
  .dish-card:hover, .gallery figure:hover { border-color: var(--leaf); box-shadow: 0 7px 20px rgba(15,47,36,.14); }
  .dish-card:hover .dish-image img, .gallery figure:hover > img { transform: scale(1.035); filter: saturate(1.04); }
  .footer-links a:hover, .footer-contact-link:hover, .award-source:hover { text-decoration: underline; }
  .section-controls button:not(:disabled):hover, .review-controls button:not(:disabled):hover, .gallery-navigation button:hover { background: var(--forest); color: var(--paper); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .dish-card:hover .dish-image img, .gallery figure:hover > img { transform: none; }
}
/* Lighter contact typography; explicitly avoid inheriting bold labels. */
.contact-section .section-head h2 { font-family: system-ui, sans-serif; font-weight: 600; letter-spacing: -.025em; }
.contact-section .contact-fields label { font-weight: 500; }
.contact-section .contact-fields :is(input, select, textarea, option) { font-weight: 400; line-height: 1.45; }
.contact-section .contact-fields ::placeholder { font-weight: 400; color: #7b8278; opacity: 1; }
.contact-section .contact-disclaimer { font-weight: 400; }
/* Complete the feedback states on modal, filter and utility controls. */
.product-tabs button, .lightbox-close, .social-links button, .review-controls button, .gallery-navigation button, .section-controls button {
  transition: background-color 180ms, color 180ms, border-color 180ms, box-shadow 180ms, transform 180ms;
}
.product-tabs button:active, .lightbox-close:active, .social-links button:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) {
  .product-tabs button:hover { background: #e8eddf; color: var(--forest); }
  .lightbox-close:hover { background: var(--forest); color: var(--paper); border-color: var(--leaf); }
  .social-links button:hover { background: #e8eddf; color: var(--forest); }
  .contact-section .contact-panel .btn-primary:hover, .product-bottom .btn-primary:hover { background: var(--selva); color: var(--paper); }
  .contact-section .contact-channels .btn:hover { background: rgba(169,185,164,.17); color: var(--paper); border-color: var(--moss); }
  .hero-actions .btn-ghost:hover { background: rgba(255,250,241,.22); color: var(--paper); }
  .location-card .btn:hover { background: #e5ecdd; color: var(--forest); }
  .review-note[role="button"]:hover { background-color: #fffdf5; box-shadow: 0 8px 18px rgba(32,52,34,.16); }
}
@media (prefers-reduced-motion: reduce) {
  .product-tabs button:active, .lightbox-close:active, .social-links button:active { transform: none; }
}

/* Stable first paint: single decoded photo above a solid green base. */
.hero{background:#102c22}.hero-media{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden;background:#102c22}.hero-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 650ms cubic-bezier(.2,.7,.2,1)}.hero-media img.is-ready{opacity:1}.hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,30,22,.94),rgba(8,30,22,.68) 48%,rgba(8,30,22,.28))}.hero .hero-grid{position:relative;z-index:2}@media(prefers-reduced-motion:reduce){.hero-media img{transition:none}}
