﻿.dish-detail { padding-bottom: var(--space-4); }
.dish-detail-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); min-height: 650px; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-md); }
.dish-visual { display: grid; height: 100%; min-height: 650px; align-self: stretch; place-items: center; overflow: hidden; background: var(--color-surface-muted); }
.dish-hero-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.dish-hero-placeholder { display: grid; place-items: center; align-content: center; gap: 1rem; color: var(--color-text-muted); }
.dish-hero-placeholder i { color: var(--color-gold); font-size: 3rem; }
.dish-information { display: flex; min-width: 0; flex-direction: column; padding: clamp(2rem, 5vw, 4.5rem); }
.dish-title { max-width: 12ch; margin: .25rem 0 1.5rem; font-size: clamp(2.8rem, 6vw, 5rem); }
.dish-facts { display: flex; gap: 2rem; padding-block: 1rem; border-block: 1px solid var(--color-border); }
.dish-facts span { display: grid; gap: .1rem; }
.dish-facts small { color: var(--color-text-muted); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.dish-facts strong { color: var(--color-primary); font-size: 1rem; }
.dish-description { min-width: 0; max-width: 100%; margin-block: 1.5rem; }
.dish-description-label { margin: 0 0 .55rem; color: var(--color-text-muted); font-family: var(--font-body); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.dish-description-content { min-width: 0; max-width: 100%; color: var(--color-text-muted); font-size: .97rem; overflow-wrap: anywhere; word-break: break-word; }
.dish-description-content p { max-width: 100%; }
.dish-description-content p:last-child { margin-bottom: 0; }
.dish-admin { margin-bottom: 1.5rem; }
.order-panel { margin-top: auto; padding: 1.4rem; border-radius: var(--radius-md); background: var(--color-surface-muted); }
.order-kicker { margin: 0; color: var(--color-accent); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.order-panel h2 { margin: .15rem 0 1rem; font-size: 1.7rem; }
.order-form > label { font-size: .78rem; }
.order-controls { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: .65rem; }
.order-controls .form-control { text-align: center; }
.order-login-note { display: flex; align-items: flex-start; gap: .6rem; margin-top: .9rem; color: var(--color-text-muted); font-size: .8rem; }
.order-login-note i { margin-top: .2rem; color: var(--color-accent); }
.dish-service-note { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: var(--space-6); overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-border); }
.dish-service-note > div { display: flex; min-height: 132px; align-items: center; gap: 1.2rem; padding: 1.65rem 1.5rem; background: var(--color-surface); }
.dish-service-note i { flex: 0 0 auto; color: var(--color-accent); font-size: 1.45rem; }
.dish-service-note span { display: grid; gap: .3rem; }
.dish-service-note strong { font-family: var(--font-heading); font-size: 1.35rem; line-height: 1.15; }
.dish-service-note small { color: var(--color-text-muted); font-size: .82rem; line-height: 1.45; }
@media (max-width: 900px) {
    .dish-detail-grid { grid-template-columns: 1fr; }
    .dish-visual { height: clamp(400px, 68vw, 560px); min-height: 0; }
    .dish-title { max-width: none; }
    .dish-service-note > div { align-items: flex-start; flex-direction: column; justify-content: center; gap: .8rem; padding: 1.4rem; }
}
@media (max-width: 700px) { .dish-service-note { grid-template-columns: 1fr; } .dish-service-note > div { min-height: 0; align-items: center; flex-direction: row; justify-content: flex-start; padding: 1.35rem 1.4rem; } }
@media (max-width: 575.98px) {
    .dish-information { padding: 1.4rem; }
    .dish-title { font-size: 2.65rem; }
    .dish-visual { height: clamp(300px, 78vw, 430px); }
    .dish-facts { gap: 1.25rem; }
    .order-controls { grid-template-columns: 72px minmax(0, 1fr); }
    .order-controls .btn { padding-inline: .7rem; }
}

.add-to-cart-button { min-width: 140px; }
.add-to-cart-button.is-loading { cursor: wait; }
.add-to-cart-button.is-loading:disabled, .add-to-cart-button.is-success:disabled, .add-to-cart-button.is-error:disabled { opacity: 1; }
.add-to-cart-button.is-success, .add-to-cart-button.is-success:hover { border-color: #376f43; background: #376f43; color: #fff; }
.add-to-cart-button.is-error, .add-to-cart-button.is-error:hover { border-color: var(--color-danger); background: var(--color-danger); color: #fff; }
.cart-loading-spinner { width: 1rem; height: 1rem; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: cart-button-spin 650ms linear infinite; }
@keyframes cart-button-spin { to { transform: rotate(360deg); } }
