/* Fahrenheit Menus — public menu. Inherits the theme's fonts; colours via variables. */
.fmn-menu, .fmn-dialog {
	--fmn-text: #2a2523;
	--fmn-muted: #5d5551;
	--fmn-accent: #7a1016;   /* wine: 9.6:1 on white */
	--fmn-line: #d9d2cc;
}
.fmn-menu {
	max-width: 980px;
	margin: 0 auto 40px;
	color: var(--fmn-text);
	text-align: left;
}
.fmn-menu__title { margin: 0 0 10px; }
.fmn-menu__intro,
.fmn-section__desc { margin: 0 0 16px; color: var(--fmn-muted); font-size: 16px; line-height: 1.5; max-width: 70ch; }
.fmn-menu__note { margin: 24px 0 0; padding-top: 14px; border-top: 1px solid var(--fmn-line); color: var(--fmn-muted); font-size: 14px; line-height: 1.5; }

.fmn-nav ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; }
.fmn-nav li { margin: 0; }
.fmn-nav a {
	display: inline-block; padding: 9px 14px; border: 1px solid var(--fmn-accent, #7a1016); border-radius: 999px;
	color: var(--fmn-accent, #7a1016); font-size: 14px; font-weight: 700; line-height: 1.2; text-decoration: none;
}
.fmn-nav a:hover, .fmn-nav a:focus-visible { background: var(--fmn-accent, #7a1016); color: #fff; }

.fmn-section { margin: 0 0 30px; }
.fmn-section__title {
	margin: 0 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--fmn-accent);
	color: var(--fmn-accent); scroll-margin-top: 110px;
}
.fmn-section__title:focus { outline: none; }

.fmn-items { margin: 0; padding: 0; list-style: none; }
.fmn-item { display: flex; gap: 16px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--fmn-line); }
.fmn-item:last-child { border-bottom: 0; }
/* Two classes + align-self: the theme's "img { height: auto }" used to stretch the photo to the height of the dish text. */
.fmn-item .fmn-item__img { flex: 0 0 96px; align-self: flex-start; width: 96px; height: 96px; max-width: none; border-radius: 8px; object-fit: cover; }
.fmn-item__body { flex: 1 1 auto; min-width: 0; }
.fmn-item__head { display: flex; align-items: baseline; gap: 10px; }
.fmn-item__name { font-size: 18px; font-weight: 700; line-height: 1.3; }
.fmn-item__dots { flex: 1 1 20px; min-width: 20px; border-bottom: 1px dotted #9a908a; transform: translateY(-4px); }
.fmn-item__price { flex: 0 0 auto; font-size: 17px; font-weight: 700; white-space: nowrap; }
.fmn-item__plabel { font-weight: 400; font-size: 14px; color: var(--fmn-muted); }
.fmn-item__desc { margin: 4px 0 0; color: var(--fmn-muted); font-size: 15px; line-height: 1.5; max-width: 70ch; }
.fmn-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.fmn-tags li {
	margin: 0; padding: 3px 11px; border: 1px solid var(--t-line, var(--fmn-line)); border-radius: 999px;
	background: var(--t-bg, #fff); color: var(--t-ink, var(--fmn-muted)); font-size: 13px; font-weight: 700; line-height: 1.5;
}
/* Label colours — every pair is at least 7:1 (dark ink on its own light tint). */
.fmn-tag--green  { --t-bg: #e3f4e6; --t-ink: #14532d; --t-line: #9fd3aa; }
.fmn-tag--amber  { --t-bg: #fdf0d5; --t-ink: #6b4100; --t-line: #e9c46a; }
.fmn-tag--blue   { --t-bg: #e1effc; --t-ink: #0b4a8f; --t-line: #9cc5ee; }
.fmn-tag--brown  { --t-bg: #f4e7dc; --t-ink: #6b3a12; --t-line: #d6b08e; }
.fmn-tag--teal   { --t-bg: #dff4f3; --t-ink: #0c5551; --t-line: #94d2cd; }
.fmn-tag--red    { --t-bg: #fde4e1; --t-ink: #8f1a12; --t-line: #f0a59e; }
.fmn-tag--purple { --t-bg: #efe6fa; --t-ink: #5b2a94; --t-line: #c6a8ea; }
.fmn-tag--slate  { --t-bg: #e9edf1; --t-ink: #2f3b48; --t-line: #b3bfcc; }
.fmn-tag--pink   { --t-bg: #fce4ef; --t-ink: #8d1b54; --t-line: #eea6c8; }
.fmn-tag--indigo { --t-bg: #e6e8fb; --t-ink: #2f3aa0; --t-line: #adb3ec; }
.fmn-tag--olive  { --t-bg: #eef1d9; --t-ink: #4b5310; --t-line: #c5cc8a; }

/* Typing shortcuts: a line that starts with * is red, with ** bold */
.fmn-red { color: #c0121d; font-weight: 600; }   /* 6:1 on white */
.fmn-bold { font-weight: 700; color: var(--fmn-text); }
.fmn-red .fmn-bold { color: inherit; }
@media (prefers-reduced-motion: reduce) { .fmn-menu.wpb_animate_when_almost_visible { opacity: 1; animation: none; } }

/* Optional dish details (1.1.0) */
.fmn-item__badge {
	flex: 0 0 auto; align-self: center; padding: 2px 8px; border-radius: 4px; background: var(--fmn-accent); color: #fff;
	font-size: 11px; font-weight: 700; letter-spacing: .06em; line-height: 1.5; text-transform: uppercase; white-space: nowrap;
}
.fmn-item__ing, .fmn-item__allergens, .fmn-item__more { margin: 8px 0 0; color: var(--fmn-muted); font-size: 14px; line-height: 1.5; max-width: 70ch; }
.fmn-item__label { margin-right: 6px; color: var(--fmn-text); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fmn-item__open, .fmn-item__details, .fmn-dialog button {
	margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: inherit; font: inherit; line-height: inherit; text-transform: none; cursor: pointer;
}
.fmn-item__open { position: relative; flex: 0 0 96px; align-self: flex-start; width: 96px; height: 96px; border-radius: 8px; overflow: hidden; }
.fmn-item .fmn-item__open .fmn-item__img { display: block; width: 100%; height: 100%; border-radius: 0; transition: transform .25s; }
.fmn-item__open::after { /* magnifier: shows on mouse-over / keyboard focus, always on touch screens */
	content: ""; position: absolute; right: 5px; bottom: 5px; width: 26px; height: 26px; border-radius: 50%; opacity: 0; transition: opacity .2s;
	background: rgba(0, 0, 0, .72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='5.5'/%3E%3Cpath d='M15 15l4.5 4.5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center / 15px no-repeat;
}
.fmn-item__open:hover::after, .fmn-item__open:focus-visible::after { opacity: 1; }
.fmn-item__open:hover .fmn-item__img { transform: scale(1.06); }
@media (hover: none) { .fmn-item__open::after { opacity: 1; } }
.fmn-item__open:focus-visible, .fmn-item__details:focus-visible, .fmn-dialog button:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 2px; }
.fmn-item__details { margin-top: 8px; color: var(--fmn-accent); font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Serving hours */
.fmn-when { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 18px; font-size: 15px; line-height: 1.5; }
.fmn-when__label { color: var(--fmn-muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fmn-when__now:empty { display: none; }
.fmn-when__now { padding: 1px 10px; border: 1px solid; border-radius: 999px; font-size: 13px; font-weight: 700; }
.fmn-when__now--on { color: #1c6b34; }   /* 6.5:1 on white */
.fmn-when__now--off { color: var(--fmn-muted); }
.fmn-menu--closed > :not(.fmn-menu__title):not(.fmn-when) { display: none !important; }

/* Dish pop-up */
html.fmn-dialog-open { overflow: hidden; }
.fmn-dialog {
	width: min(880px, calc(100% - 24px)); max-width: none; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px);
	padding: 0; border: 0; border-radius: 12px; overflow: hidden; background: #fff; color: var(--fmn-text); text-align: left;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .45);
}
.fmn-dialog[open] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
.fmn-dialog::backdrop { background: rgba(0, 0, 0, .72); }
.fmn-dialog--text { width: min(560px, calc(100% - 24px)); }
.fmn-dialog--text[open] { grid-template-columns: minmax(0, 1fr); }
.fmn-dialog__photo { grid-row: 1 / 3; background: #f1ece7; min-height: 280px; }
.fmn-dialog__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fmn-dialog__text { padding: 30px 28px 14px; overflow-y: auto; }
.fmn-dialog .fmn-item__head { flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; padding-right: 34px; }
.fmn-dialog h2.fmn-item__name { flex: 1 1 100%; margin: 0; color: var(--fmn-text); font-size: 26px; line-height: 1.2; }
.fmn-dialog .fmn-item__price { font-size: 19px; color: var(--fmn-accent); white-space: normal; }
.fmn-dialog .fmn-item__desc { margin-top: 12px; font-size: 16px; }
.fmn-dialog .fmn-item__ing, .fmn-dialog .fmn-item__allergens, .fmn-dialog .fmn-item__more { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--fmn-line); font-size: 15px; }
.fmn-dialog .fmn-item__label { display: block; margin: 0 0 3px; }
.fmn-dialog .fmn-tags { margin-top: 12px; }
.fmn-dialog button.fmn-dialog__close {
	position: absolute; top: 10px; right: 10px; z-index: 1; width: 40px; height: 40px; border-radius: 50%;
	background: rgba(255, 255, 255, .94); color: #2a2523; font-size: 26px; line-height: 1; box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
}
.fmn-dialog__nav { display: flex; justify-content: space-between; gap: 10px; padding: 12px 28px 18px; }
.fmn-dialog__nav[hidden], .fmn-dialog__photo[hidden] { display: none; }
.fmn-dialog .fmn-dialog__nav button { padding: 9px 14px; border: 1px solid var(--fmn-accent); border-radius: 999px; color: var(--fmn-accent); font-size: 14px; font-weight: 700; line-height: 1.2; }
.fmn-dialog .fmn-dialog__nav button:hover { background: var(--fmn-accent); color: #fff; }
@media (max-width: 719px) {
	.fmn-dialog[open] { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto; }
	.fmn-dialog__photo { grid-row: auto; min-height: 0; height: 38vh; }
	.fmn-dialog__text { padding: 20px 18px 10px; }
	.fmn-dialog h2.fmn-item__name { font-size: 22px; }
	.fmn-dialog__nav { padding: 10px 18px 14px; }
}
@media (prefers-reduced-motion: reduce) { .fmn-item__open .fmn-item__img, .fmn-item__open::after { transition: none; } }

.fmn-search { margin: 0 0 20px; }
.fmn-search label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 700; }
.fmn-search__input { width: 100%; max-width: 420px; padding: 10px 12px; border: 1px solid #8a807a; border-radius: 6px; font-size: 16px; }
.fmn-search__count { margin: 6px 0 0; min-height: 1.4em; color: var(--fmn-muted); font-size: 14px; }
.fmn-menu [hidden] { display: none !important; }

.fmn-notice { padding: 10px 14px; border-left: 4px solid #c99b5f; background: #fbf6ee; color: #2a2523; font-size: 14px; }

@media (min-width: 900px) {
	.fmn-menu--2col .fmn-items { columns: 2; column-gap: 44px; }
	.fmn-menu--2col .fmn-item { break-inside: avoid; }
}
@media (max-width: 560px) {
	.fmn-item .fmn-item__img, .fmn-item__open { flex-basis: 72px; width: 72px; height: 72px; }
	.fmn-item__head { flex-wrap: wrap; }
	.fmn-item__dots { display: none; }
	.fmn-item__price { margin-left: auto; white-space: normal; text-align: right; }
}
@media print {
	.fmn-nav, .fmn-search, .fmn-item__img, .fmn-item__open, .fmn-item__details, .fmn-when__now { display: none !important; }
	.fmn-menu { max-width: none; color: #000; }
	.fmn-item { break-inside: avoid; padding: 6px 0; }
	.fmn-section__title { color: #000; border-color: #000; }
	.fmn-menu.wpb_animate_when_almost_visible { opacity: 1 !important; animation: none !important; }
}

@media (max-width: 719px) { .fmn-dialog--text[open] { grid-template-rows: minmax(0, 1fr) auto; } }
