/* Silong Core blocks. Uses the theme's colour and font presets, with fallbacks so the blocks still
   read well under another theme. Mobile first. */

.sg-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sg-icon { flex: none; vertical-align: middle; }

/* Open now: a small dot and a line of text, green when open. */
.sg-open { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .2rem .5rem; margin-block: 0; font-size: .9375rem; line-height: 1.4; }
.sg-open__dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--wp--preset--color--clay, #b4532f); }
.sg-open.is-open .sg-open__dot { background: #2f9a55; box-shadow: 0 0 0 4px rgba(47, 154, 85, .18); }
.sg-open__text { font-weight: 600; }
.sg-open__detail { color: var(--wp--preset--color--muted, #5e655f); }
:is(.has-ink-background-color, .has-leaf-background-color) .sg-open__detail { color: rgba(255, 255, 255, .7); }

/* Info bar under the hero: three items on one hairline. */
.sg-info { margin-top: 1rem; }
.sg-info__list { display: flex; flex-wrap: wrap; gap: .75rem 2.5rem; margin: 0; padding: 1.1rem 0; list-style: none; border-bottom: 1px solid var(--wp--preset--color--line, #e4dccf); font-size: .9375rem; }
.sg-info__list a { color: var(--wp--preset--color--ink, #1b231f); text-decoration-color: var(--wp--preset--color--line, #e4dccf); }
.sg-info__list a:hover { text-decoration-color: currentColor; }

/* Opening hours. */
.sg-hours table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.sg-hours :is(th, td) { padding: .55rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #e4dccf); text-align: left; vertical-align: top; font-weight: 400; }
.sg-hours th { padding-right: 1rem; }
.sg-hours td { text-align: right; white-space: nowrap; }
.sg-hours tr.is-today :is(th, td) { font-weight: 600; }
.sg-hours__today { margin-left: .4rem; font-size: .8125rem; font-weight: 500; opacity: .7; }

/* Tag badges: small text, no fill. */
.sg-chips { display: flex; flex-wrap: wrap; gap: .25rem .75rem; margin: .45rem 0 0; padding: 0; list-style: none; }
.sg-chips li { font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--leaf, #2d5b3f); }
.sg-chips .is-bestseller, .sg-chips .is-spicy { color: var(--wp--preset--color--clay, #b4532f); }
.sg-chips .is-spicy { color: #96401f; }

/* The full menu: sticky section tabs, then each section as a clean two-column list. */
.sg-menu__nav { position: sticky; top: 4.5rem; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; margin: 0 0 var(--wp--preset--spacing--50, 2rem); padding: .9rem 0; background: var(--wp--preset--color--base, #f7f3ec); border-bottom: 1px solid var(--wp--preset--color--line, #e4dccf); }
.admin-bar .sg-menu__nav { top: calc(4.5rem + var(--wp-admin--admin-bar--height, 0px)); }
.sg-menu__nav ul { display: flex; gap: .4rem; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.sg-menu__nav a { display: inline-block; padding: .45rem .95rem; border-radius: 999px; color: var(--wp--preset--color--ink, #1b231f); font-size: .9375rem; font-weight: 500; text-decoration: none; white-space: nowrap; }
.sg-menu__nav a:hover { background: var(--wp--preset--color--surface, #efe8dc); }
.sg-menu__nav a[aria-current] { background: var(--wp--preset--color--ink, #1b231f); color: #fff; }
.sg-menu__print { margin: 0; }
.sg-print { padding: .45rem 0; border: 0; background: transparent; color: var(--wp--preset--color--ink, #1b231f); font: inherit; font-size: .9375rem; font-weight: 600; text-decoration: underline; text-underline-offset: .22em; cursor: pointer; }
.sg-menu__sections { display: grid; gap: var(--wp--preset--spacing--60, 3.5rem); }
.sg-menu__section { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .sg-menu__section { grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr); gap: 3rem; } .sg-menu__head { position: sticky; top: 9.5rem; align-self: start; } }
.sg-menu__head { display: grid; gap: .5rem; }
.sg-menu__title { margin: 0; font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.4rem) !important; font-weight: 500; }
.sg-menu__note { margin: 0; color: var(--wp--preset--color--muted, #5e655f); font-size: .9375rem; max-width: 34ch; }
.sg-rows { display: grid; gap: 0 2.5rem; margin: 0; padding: 0; list-style: none; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--wp--preset--color--ink, #1b231f); }
@media (min-width: 760px) { .sg-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sg-row { display: flex; gap: 1rem; padding: 1.15rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #e4dccf); }
.sg-row__thumb { flex: none; width: 64px; margin: 0; }
.sg-row__thumb img { display: block; width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.sg-row__main { flex: 1; min-width: 0; }
.sg-row__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.sg-row__name { margin: 0; font-family: var(--wp--preset--font-family--sans, inherit); font-size: 1.0625rem !important; font-weight: 600; line-height: 1.35; letter-spacing: 0; }
.sg-row__price { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sg-row__desc { margin: .3rem 0 0; color: var(--wp--preset--color--muted, #5e655f); font-size: .9375rem; line-height: 1.55; }

/* Signature drinks: tall product cards; a sideways swipe on phones. */
.sg-dishes { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; grid-auto-flow: column; grid-auto-columns: 72%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.sg-dishes > li { scroll-snap-align: start; }
@media (min-width: 700px) { .sg-dishes { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; gap: 1.5rem; } }
.sg-dish__photo { margin: 0; overflow: hidden; border-radius: 12px; background: var(--wp--preset--color--surface, #efe8dc); }
.sg-dish__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.sg-dish:hover .sg-dish__photo img { transform: scale(1.03); }
.sg-dish__body { padding-top: 1rem; }
.sg-dish__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.sg-dish__name { margin: 0; font-family: var(--wp--preset--font-family--sans, inherit); font-size: 1.0625rem !important; font-weight: 600; line-height: 1.35; }
.sg-dish__price { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sg-dish__desc { margin: .3rem 0 0; color: var(--wp--preset--color--muted, #5e655f); font-size: .9375rem; line-height: 1.55; }

/* Promos and events as cards: photo, kind and title, when, deal. The title link covers the card. */
.sg-events { display: grid; gap: 1.5rem; margin: 0; padding: 0; list-style: none; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .sg-events { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .sg-events { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sg-event { position: relative; display: flex; flex-direction: column; border-radius: 12px; background: #fff; overflow: hidden; box-shadow: 0 1px 2px rgba(27, 35, 31, .05), 0 12px 32px -12px rgba(27, 35, 31, .14); color: var(--wp--preset--color--ink, #1b231f); }
.sg-event__photo { margin: 0; overflow: hidden; }
.sg-event__photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.sg-event:hover .sg-event__photo img { transform: scale(1.03); }
.sg-event__stamp { position: absolute; top: 1rem; left: 1rem; display: grid; justify-items: center; min-width: 3.4rem; margin: 0; padding: .45rem .5rem .4rem; border-radius: 8px; background: #fff; color: var(--wp--preset--color--ink, #1b231f); line-height: 1; }
.sg-event__stamp span { font-size: .6875rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--clay, #b4532f); }
.sg-event__stamp strong { margin-top: .15rem; font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.6rem; font-weight: 500; }
.sg-event__body { display: grid; gap: .4rem; padding: 1.25rem 1.4rem 1.5rem; }
.sg-event__kind { margin: 0; font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--leaf, #2d5b3f); }
.sg-event.is-promo .sg-event__kind { color: var(--wp--preset--color--clay, #b4532f); }
.sg-event__title { margin: 0; font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.5rem !important; font-weight: 500; line-height: 1.15; font-variation-settings: "opsz" 72; }
.sg-event__title a { color: inherit; text-decoration: none; }
.sg-event__title a::after { content: ""; position: absolute; inset: 0; }
.sg-event__title a:focus-visible { outline: none; }
.sg-event:has(a:focus-visible) { outline: 2px solid var(--wp--preset--color--leaf, #2d5b3f); outline-offset: 3px; }
.sg-event__when { margin: 0; color: var(--wp--preset--color--muted, #5e655f); font-size: .9375rem; }
.sg-event__deal { margin: .35rem 0 0; font-size: .9375rem; font-weight: 600; color: var(--wp--preset--color--clay, #b4532f); }
.sg-empty { margin: 0; padding: 1.5rem; border: 1px dashed var(--wp--preset--color--line, #e4dccf); border-radius: 12px; color: var(--wp--preset--color--muted, #5e655f); }

/* What's on board: the next one large (photo left, details right), the rest as rows. */
.sg-board { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .sg-board { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; } }
.sg-board__feature { margin: 0; padding: 0; list-style: none; }
@media (min-width: 700px) {
	.sg-board__feature .sg-event { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
	.sg-board__feature .sg-event__photo img { height: 100%; aspect-ratio: auto; min-height: 340px; }
	.sg-board__feature .sg-event__body { align-content: center; padding: 2rem; }
	.sg-board__feature .sg-event__title { font-size: 2rem !important; }
}
.sg-board__rows { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .25); }
.sg-erow { position: relative; display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem 0; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.sg-erow__date { display: grid; justify-items: center; min-width: 3.2rem; margin: 0; line-height: 1; }
.sg-erow__date span { font-size: .6875rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }
.sg-erow__date strong { font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.9rem; font-weight: 500; }
.sg-erow__body { flex: 1; min-width: 0; }
.sg-erow__title { margin: 0; font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.375rem !important; font-weight: 500; line-height: 1.2; }
.sg-erow__title a { color: inherit; text-decoration: none; }
.sg-erow__title a::after { content: ""; position: absolute; inset: 0; }
.sg-erow__when { margin: .25rem 0 0; font-size: .9375rem; opacity: .8; }
.sg-erow__go { font-size: 1.25rem; transition: transform .2s; }
.sg-erow:hover .sg-erow__go { transform: translateX(4px); }
.sg-erow:has(a:focus-visible) { outline: 2px solid currentColor; outline-offset: 2px; }
.sg-erow__title a:focus-visible { outline: none; }
/* Rows on the leaf band read white; on a light background, ink with plain hairlines. */
:is(.has-leaf-background-color, .sg-band) .sg-board__rows, :is(.has-leaf-background-color, .sg-band) .sg-board__rows a { color: #fff; }
:not(.has-leaf-background-color) > * > .sg-events-wrap .sg-board__rows, .has-base-background-color .sg-board__rows { border-color: var(--wp--preset--color--line, #e4dccf); }

/* A promo or event page: the details as a list. */
.sg-ticket { display: grid; gap: 0; margin-block: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; border-top: 1px solid var(--wp--preset--color--line, #e4dccf); }
.sg-ticket > div { padding: .9rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #e4dccf); }
.sg-ticket dt { font-size: .8125rem; color: var(--wp--preset--color--muted, #5e655f); }
.sg-ticket dd { margin: .15rem 0 0; font-weight: 600; }

/* Share links. */
.sg-share { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--wp--preset--color--line, #e4dccf); }
.sg-share__label { margin: 0 0 .75rem; font-weight: 600; }
.sg-share ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.sg-share :is(a, button) { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .95rem; border: 1px solid var(--wp--preset--color--line, #e4dccf); border-radius: 999px; background: transparent; color: var(--wp--preset--color--ink, #1b231f); font: inherit; font-size: .9375rem; font-weight: 500; text-decoration: none; cursor: pointer; }
.sg-share :is(a, button):hover { border-color: var(--wp--preset--color--ink, #1b231f); }
.sg-share__done { margin: .5rem 0 0; min-height: 1.5em; color: var(--wp--preset--color--leaf, #2d5b3f); font-weight: 600; }

/* Social links: icons, or names with icons; "is-text" makes them a quiet row of text links. */
.sg-social { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.sg-social a { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; color: inherit; text-decoration: none; }
.sg-social.has-labels a { display: inline-flex; gap: .45rem; width: auto; height: auto; padding: .5rem .95rem; border-radius: 999px; border: 1px solid currentColor; font-weight: 600; }
.is-text .sg-social, .sg-social.is-text { gap: .5rem 1.5rem; }
.is-text .sg-social.has-labels a { padding: 0; border: 0; border-radius: 0; font-weight: 500; font-size: .9375rem; }
.is-text .sg-social.has-labels a:hover { text-decoration: underline; text-underline-offset: .22em; }
.is-text .sg-social .sg-icon { width: 16px; height: 16px; }
.sg-head + .is-text, .wp-block-silong-core-social-links.is-text { margin-bottom: 1.5rem; }

/* Social grid: six square photos; the platform and caption appear on hover and focus. */
.sg-wall__posts { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .sg-wall__posts { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; } }
.sg-post { position: relative; overflow: hidden; border-radius: 10px; }
.sg-post__photo { margin: 0; }
.sg-post__photo img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.sg-post:hover .sg-post__photo img { transform: scale(1.04); }
.sg-post__platform { position: absolute; top: .5rem; right: .5rem; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; margin: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--wp--preset--color--ink, #1b231f); }
.sg-post__platform span { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sg-post__platform .sg-icon { width: 15px; height: 15px; }
.sg-post__caption { position: absolute; inset: auto 0 0; margin: 0; padding: 2.5rem .9rem .8rem; background: linear-gradient(180deg, transparent, rgba(27, 35, 31, .82)); color: #fff; font-size: .875rem; line-height: 1.4; opacity: 0; transition: opacity .25s; }
.sg-post:hover .sg-post__caption, .sg-post:focus-within .sg-post__caption { opacity: 1; }
@media (hover: none) { .sg-post__caption { opacity: 1; } }
.sg-post__caption a { color: inherit; text-decoration: none; }
.sg-post__caption a::after { content: ""; position: absolute; inset: 0; }
.sg-post:has(a:focus-visible) { outline: 2px solid var(--wp--preset--color--leaf, #2d5b3f); outline-offset: 3px; }
.sg-post__caption a:focus-visible { outline: none; }
.sg-post__date { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Visit details. */
.sg-visit__list { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--wp--preset--color--line, #e4dccf); }
.sg-visit__list > div { display: grid; gap: .15rem; padding: .9rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #e4dccf); }
@media (min-width: 600px) { .sg-visit__list > div { grid-template-columns: 8rem 1fr; gap: 1rem; } }
.sg-visit__list dt { font-size: .875rem; color: var(--wp--preset--color--muted, #5e655f); }
.sg-visit__list dd { margin: 0; }
.sg-visit__list a { color: inherit; }
.sg-visit__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.5rem 0 0; }
.sg-btn { display: inline-flex; align-items: center; gap: .45rem; padding: .85rem 1.4rem; border-radius: 999px; background: var(--wp--preset--color--leaf, #2d5b3f); color: #fff; font-weight: 600; font-size: .9375rem; text-decoration: none; line-height: 1.2; transition: background-color .2s; }
.sg-btn:hover { background: var(--wp--preset--color--leaf-deep, #1f4430); color: #fff; }
.sg-btn.is-outline { background: transparent; color: var(--wp--preset--color--ink, #1b231f); border: 1.5px solid var(--wp--preset--color--ink, #1b231f); padding: calc(.85rem - 1.5px) calc(1.4rem - 1.5px); }
.sg-btn.is-outline:hover { background: var(--wp--preset--color--ink, #1b231f); color: #fff; }
.sg-visit__review { margin: 1.25rem 0 0; color: var(--wp--preset--color--muted, #5e655f); font-size: .9375rem; }

/* The floating "Message us" button. */
.sg-float { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 60; display: inline-flex; align-items: center; gap: .5rem; padding: .75rem 1.1rem .75rem .9rem; border-radius: 999px; background: var(--wp--preset--color--ink, #1b231f); color: #fff; font-size: .9375rem; font-weight: 600; text-decoration: none; box-shadow: 0 10px 30px -8px rgba(27, 35, 31, .45); transition: transform .2s; }
.sg-float:hover { transform: translateY(-2px); color: #fff; }
@media (max-width: 599px) { .sg-float { right: .75rem; bottom: .75rem; padding: .7rem; } .sg-float span { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .sg-float .sg-icon { width: 24px; height: 24px; } }

/* Forms (the plugin's own; Fluent Forms replaces reservation and contact on the demo). */
.sg-form__grid { display: grid; gap: 1.1rem 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .sg-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sg-form__field { display: grid; gap: .4rem; margin: 0; }
.sg-form__field--wide, .sg-form__actions { grid-column: 1 / -1; }
.sg-form label { font-size: .9375rem; font-weight: 600; }
.sg-form :is(input, select, textarea) { width: 100%; box-sizing: border-box; padding: .8rem 1rem; border: 1px solid var(--wp--preset--color--line, #e4dccf); border-radius: 8px; background: #fff; font: inherit; color: var(--wp--preset--color--ink, #1b231f); transition: border-color .2s, box-shadow .2s; }
.sg-form :is(input, select, textarea):focus { outline: none; border-color: var(--wp--preset--color--leaf, #2d5b3f); box-shadow: 0 0 0 3px rgba(45, 91, 63, .15); }
.sg-form__req { color: var(--wp--preset--color--clay, #b4532f); }
.sg-form__hp { position: absolute; left: -9999px; }
.sg-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: .5rem 0 0; }
.sg-form__hint { font-size: .875rem; color: var(--wp--preset--color--muted, #5e655f); }
.sg-form__notice { margin: 0 0 1rem; padding: .9rem 1rem; border-radius: 8px; color: var(--wp--preset--color--ink, #1b231f); }
.sg-form__notice--ok { background: #e3eee6; }
.sg-form__notice--error { background: #f6ddd2; }
/* The one-field sign-up: the email and the button on one line, on dark or light. */
.sg-form--signup .sg-form__grid { display: flex; gap: .5rem; }
.sg-form--signup .sg-form__field { flex: 1; }
.sg-form--signup label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sg-form--signup .sg-form__actions { margin: 0; }
.sg-form--signup .sg-form__hint { display: none; }
.sg-form--signup .sg-form__submit { padding: .8rem 1.2rem; white-space: nowrap; }
.has-ink-background-color .sg-form--signup input { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .25); color: #fff; }
.has-ink-background-color .sg-form--signup input::placeholder { color: rgba(255, 255, 255, .6); }
.has-ink-background-color .sg-form--signup .sg-form__submit { background: #fff; color: var(--wp--preset--color--ink, #1b231f); }

/* Fluent Forms in the theme's look. */
.sg-form.is-fluent .ff-el-input--label label { font-size: .9375rem; font-weight: 600; }
.sg-form.is-fluent .ff-el-form-control { padding: .8rem 1rem; border: 1px solid var(--wp--preset--color--line, #e4dccf); border-radius: 8px; font: inherit; }
.sg-form.is-fluent .ff-el-form-control:focus { border-color: var(--wp--preset--color--leaf, #2d5b3f); box-shadow: 0 0 0 3px rgba(45, 91, 63, .15); }
.sg-form.is-fluent .ff-btn-submit { padding: .9rem 1.6rem !important; border-radius: 999px !important; font-weight: 600 !important; }

.sg-editor-empty { padding: 1rem; border: 1px dashed #8a8f96; border-radius: 6px; color: #5c6168; }

@media print { .sg-float, .sg-share, .sg-menu__nav { display: none !important; } }
