/* Inadigital Food & Menus v4
 * Layout and behaviour live here. Venue themes can override any class below.
 */
.inadigital-food,
.inadigital-food * { box-sizing: border-box; }
.inadigital-food { width: 100%; clear: both; }
.inadigital-food-loading,
.inadigital-food-error,
.inadigital-food-empty { text-align: center; }

.inadigital-food-menu-panel { width: 100%; }
.inadigital-food-menu-panel[hidden] { display: none !important; }
.inadigital-food-menu-header { text-align: center; margin-bottom: 2rem; }
.inadigital-food-menu-title { margin-bottom: .5rem; color: var(--inadigital-menu-title-color, inherit); }
.inadigital-food-menu-description { line-height: 1.6; color: var(--inadigital-menu-description-color, inherit); }
.inadigital-food-course { margin: 0 0 2.5rem; }

/* Multiple-menu navigation */
.inadigital-food-tabs { display: flex; gap: .5rem; margin-bottom: 2rem; }
.inadigital-nav-horizontal .inadigital-food-tabs { justify-content: center; flex-wrap: wrap; }
.inadigital-food-tab { appearance: none; border: 1px solid currentColor; background: transparent; color: inherit; padding: .65em 1.15em; font: inherit; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.inadigital-food-tab.is-active { background: var(--inadigital-tab-active-bg, #111); color: var(--inadigital-tab-active-text, #fff); border-color: var(--inadigital-tab-active-bg, #111); }
.inadigital-food-tab:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.inadigital-nav-vertical .inadigital-food-tabs-shell { display: grid; grid-template-columns: minmax(150px, 24%) 1fr; gap: 2rem; align-items: start; }
.inadigital-nav-vertical .inadigital-food-tabs { flex-direction: column; margin-bottom: 0; position: sticky; top: 1rem; }

/* Course heading treatments */
.inadigital-food-course-heading-wrap { display: flex; align-items: center; gap: 1rem; margin: 0 0 1.5rem; }
.inadigital-food-course-heading { flex: 0 0 auto; margin: 0; text-align: inherit; color: var(--inadigital-course-title-color, inherit); }
.inadigital-heading-align-left { text-align: left; justify-content: flex-start; }
.inadigital-heading-align-center { text-align: center; justify-content: center; }
.inadigital-heading-align-right { text-align: right; justify-content: flex-end; }
.inadigital-heading-line-either.inadigital-heading-align-left, .inadigital-heading-decorative.inadigital-heading-align-left,
.inadigital-heading-line-either.inadigital-heading-align-center, .inadigital-heading-decorative.inadigital-heading-align-center,
.inadigital-heading-line-either.inadigital-heading-align-right, .inadigital-heading-decorative.inadigital-heading-align-right { justify-content: initial; }
.inadigital-food-divider { display: none; flex: 1 1 auto; min-width: 20px; border-top: 1px solid currentColor; }
.inadigital-heading-line-above { display: block; border-top: 1px solid currentColor; padding-top: .75rem; }
.inadigital-heading-line-below { display: block; border-bottom: 1px solid currentColor; padding-bottom: .75rem; }
.inadigital-heading-line-either .inadigital-food-divider,
.inadigital-heading-decorative .inadigital-food-divider { display: block; }
.inadigital-heading-line-either.inadigital-divider-dotted .inadigital-food-divider,
.inadigital-heading-decorative.inadigital-divider-dotted .inadigital-food-divider { border-top-style: dotted; }
.inadigital-heading-line-either.inadigital-divider-dashed .inadigital-food-divider,
.inadigital-heading-decorative.inadigital-divider-dashed .inadigital-food-divider { border-top-style: dashed; }
.inadigital-heading-decorative.inadigital-divider-custom .inadigital-food-divider { border: 0; height: var(--inadigital-divider-height, 14px); background-image: var(--inadigital-divider-image, none); background-repeat: repeat-x; background-position: center; background-size: auto 100%; }

/* Dish grids */
.inadigital-food-dishes { display: grid; grid-template-columns: repeat(var(--inadigital-columns, 3), minmax(0, 1fr)); gap: var(--inadigital-dish-gap, 1.25rem); }
.inadigital-columns-1 { --inadigital-columns: 1; }
.inadigital-columns-2 { --inadigital-columns: 2; }
.inadigital-columns-3 { --inadigital-columns: 3; }
.inadigital-align-left .inadigital-food-dish { text-align: left; }
.inadigital-align-center .inadigital-food-dish { text-align: center; }
.inadigital-align-right .inadigital-food-dish { text-align: right; }

/* Grid / card retains the original concept without hard-coding brand styling. */
.inadigital-layout-grid .inadigital-food-dish { border: var(--inadigital-card-border, 1px solid rgba(0,0,0,.12)); box-shadow: var(--inadigital-card-shadow, 0 2px 8px rgba(0,0,0,.08)); }
.inadigital-layout-grid .inadigital-food-dish-inner { padding: var(--inadigital-card-padding, 1.25rem); height: 100%; }

/* Classic / printed removes individual cards. */
.inadigital-layout-classic .inadigital-food-dish { border: 0; box-shadow: none; }
.inadigital-layout-classic .inadigital-food-dish-inner { padding: 0; }
.inadigital-layout-classic .inadigital-food-dishes { row-gap: var(--inadigital-classic-row-gap, 1.5rem); column-gap: var(--inadigital-classic-column-gap, 2.5rem); }

/* Each data component remains independently targetable. */
.inadigital-food-dish-name { font-weight: 700; color: var(--inadigital-dish-name-color, inherit); }
.inadigital-food-dish-description { line-height: 1.5; color: var(--inadigital-dish-description-color, inherit); }
.inadigital-food-dish-price { white-space: nowrap; font-weight: 600; color: var(--inadigital-dish-price-color, inherit); }
.inadigital-food-dietary,
.inadigital-food-calories { font-size: .9em; }
.inadigital-food-dietary:empty,
.inadigital-food-calories:empty { display: none; }
.inadigital-food-dish-inner > * + * { margin-top: .35rem; }
.inadigital-food-dish-topline { display: flex; gap: 1rem; justify-content: space-between; align-items: baseline; text-align: left; }
.inadigital-food-dish-topline .inadigital-food-dish-name { flex: 1 1 auto; }
.inadigital-food-dish-topline .inadigital-food-dish-price { flex: 0 0 auto; margin: 0; }
.inadigital-dish-layout-inline .inadigital-food-dish-copy { line-height: 1.5; }
.inadigital-dish-layout-inline .inadigital-food-dish-name,
.inadigital-dish-layout-inline .inadigital-food-dish-description,
.inadigital-dish-layout-inline .inadigital-food-dish-price { display: inline; float: none; width: auto; }
.inadigital-price-inline .inadigital-food-dish-price { margin-left: .35em; }

/* PDF menus */
.inadigital-food-pdfs { display: flex; gap: .75rem; flex-wrap: wrap; margin: 1rem 0 2rem; }
.inadigital-pdf-layout-horizontal { flex-direction: row; }
.inadigital-pdf-layout-vertical { flex-direction: column; }
.inadigital-pdf-layout-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.inadigital-pdf-align-left { justify-content: flex-start; }
.inadigital-pdf-align-center { justify-content: center; }
.inadigital-pdf-align-right { justify-content: flex-end; }
.inadigital-pdf-width-fit .inadigital-pdf-link { flex: 0 0 auto; }
.inadigital-pdf-width-equal .inadigital-pdf-link { flex: 1 1 0; min-width: 160px; }
.inadigital-pdf-width-full .inadigital-pdf-link { width: 100%; flex: 1 0 100%; }
.inadigital-pdf-link { display: inline-flex; align-items: center; justify-content: center; padding: .7em 1.35em; text-decoration: none; font-size: var(--inadigital-pdf-font-size, 18px); font-weight: 600; border: 1px solid var(--inadigital-pdf-border); transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease; }
.inadigital-pdf-style-filled { background: var(--inadigital-pdf-bg); color: var(--inadigital-pdf-text); }
.inadigital-pdf-style-outline { background: transparent; color: var(--inadigital-pdf-border); }
.inadigital-pdf-style-text { background: transparent; color: var(--inadigital-pdf-text); border-color: transparent; }
.inadigital-pdf-radius-square { border-radius: 0; }
.inadigital-pdf-radius-slight { border-radius: 4px; }
.inadigital-pdf-radius-rounded { border-radius: 999px; }
.inadigital-pdf-border-double { border-style: double; border-width: 3px; }
.inadigital-pdf-hover-fill:hover,
.inadigital-pdf-hover-fill:focus-visible,
.inadigital-pdf-hover-colour:hover,
.inadigital-pdf-hover-colour:focus-visible { background: var(--inadigital-pdf-hover-bg); color: var(--inadigital-pdf-hover-text); border-color: var(--inadigital-pdf-hover-border); }
.inadigital-pdf-hover-lift:hover,
.inadigital-pdf-hover-lift:focus-visible { transform: translateY(-2px); }
.inadigital-pdf-hover-scale:hover,
.inadigital-pdf-hover-scale:focus-visible { transform: scale(1.025); }
.inadigital-pdf-hover-shadow:hover,
.inadigital-pdf-hover-shadow:focus-visible { box-shadow: 0 6px 16px rgba(0,0,0,.18); }
.inadigital-pdf-link:focus-visible { outline: 2px solid var(--inadigital-pdf-hover-border); outline-offset: 3px; }

/* Legacy aliases retained for sites with custom CSS. */
.aiop-food-list-row { width: 100%; }
.aiop-food-column-outer { min-width: 0; }
.aiop-pdf-link-box { margin: 0; }

@media (max-width: 980px) {
    .inadigital-columns-3 .inadigital-food-dishes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .inadigital-nav-vertical .inadigital-food-tabs-shell { grid-template-columns: 1fr; gap: 1rem; }
    .inadigital-nav-vertical .inadigital-food-tabs { position: static; flex-direction: row; overflow-x: auto; padding-bottom: .25rem; }
    .inadigital-nav-vertical .inadigital-food-tab { flex: 0 0 auto; }
}

@media (max-width: 600px) {
    .inadigital-food-dishes,
    .inadigital-columns-2 .inadigital-food-dishes,
    .inadigital-columns-3 .inadigital-food-dishes { grid-template-columns: 1fr; }
    .inadigital-nav-horizontal .inadigital-food-tabs { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding-bottom: .25rem; }
    .inadigital-food-tab { flex: 0 0 auto; }
    .inadigital-food-course-heading-wrap { gap: .6rem; }
    .inadigital-pdf-layout-horizontal { flex-direction: column; }
    .inadigital-pdf-layout-horizontal .inadigital-pdf-link { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .inadigital-food-tab,
    .inadigital-pdf-link { transition: none; }
}
