/* Front Desk on the website. Inherits the theme's fonts and colours; brand colours only for small accents. */

.fd-out { margin-block: 1em; }
.fd-out :where(h3) { margin: 0 0 .4em; }
.fd-note { font-size: .9em; opacity: .85; }
.fd-group-title { margin: 1.4em 0 .6em; }
.fd-img { display: block; width: 100%; height: auto; }
.fd-buttons { margin-top: 1em; }

/* Announcement bar */
.fd-announce { position: relative; z-index: 60; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 52px 10px 16px; background: var(--fd-primary, #1F4D3F); color: #fff; text-align: center; font-size: 15px; line-height: 1.45; }
.fd-announce__text { margin: 0; }
.fd-announce__link { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; margin-left: 6px; white-space: nowrap; }
.fd-announce__close { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 24px; line-height: 1; cursor: pointer; }
.fd-announce__close:hover, .fd-announce__close:focus-visible { background: rgba(255,255,255,.15); }
.fd-announce[hidden] { display: none; }

/* Opening hours */
.fd-hours-table { width: 100%; max-width: 420px; border-collapse: collapse; }
.fd-hours-table th, .fd-hours-table td { padding: .45em 0; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); text-align: left; font-weight: 400; }
.fd-hours-table td { text-align: right; }
.fd-hours-table tr.is-today th, .fd-hours-table tr.is-today td { font-weight: 700; }
.fd-open { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 .8em; font-weight: 600; }
.fd-open__dot { width: 10px; height: 10px; border-radius: 50%; background: #9aa0a6; }
.fd-open.is-open .fd-open__dot { background: #1A7F45; box-shadow: 0 0 0 4px rgba(26,127,69,.18); }
.fd-hours-closures-title { margin: 1em 0 .3em; font-weight: 700; }
.fd-hours-closures { margin: 0; padding-left: 1.2em; }

/* Prices and menu */
.fd-prices { list-style: none; margin: 0 0 1em; padding: 0; }
.fd-price { padding: .8em 0; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); }
.fd-price__head { display: flex; align-items: baseline; gap: 10px; }
.fd-price__name { font-weight: 700; }
.fd-price__dots { flex: 1; min-width: 20px; border-bottom: 1px dotted color-mix(in srgb, currentColor 35%, transparent); transform: translateY(-4px); }
.fd-price__amount { font-weight: 700; white-space: nowrap; }
.fd-price__meta, .fd-price__desc p { margin: .25em 0 0; font-size: .92em; opacity: .85; }
.fd-price.is-featured .fd-price__name::after { content: "★"; margin-left: 6px; color: var(--fd-accent, #C8693F); }
.fd-diet { display: inline-block; margin-left: 2px; padding: 0 5px; border: 1px solid currentColor; border-radius: 4px; font-size: .72em; font-weight: 700; text-decoration: none; vertical-align: 2px; opacity: .8; }
.fd-allergens { margin: .3em 0 0; font-size: .88em; opacity: .85; }

/* Cards */
.fd-cards-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.fd-card-item { display: flex; flex-direction: column; overflow: hidden; border: 1px solid color-mix(in srgb, currentColor 15%, transparent); border-radius: 10px; background: color-mix(in srgb, Canvas 92%, transparent); }
.fd-card-item .fd-img { aspect-ratio: 3 / 2; object-fit: cover; }
.fd-card-item__body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: .4em; flex: 1; }
.fd-card-item__body p { margin: 0; }
.fd-card-item__body .fd-buttons { margin-top: auto; padding-top: .6em; }
.fd-card-item__kicker { font-size: .78em; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fd-accent-dark, #a45633); }
.fd-card-item__title { margin: 0; font-size: 1.2em; }
.fd-card-item__title a { text-decoration: none; }
.fd-card-item__when { font-weight: 600; opacity: .85; }
.fd-ticks { margin: .5em 0 0; padding-left: 1.2em; }

/* Team */
.fd-team { display: grid; gap: 28px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.fd-person__photo img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: 10px; margin-bottom: .8em; }
.fd-person__name { margin: 0; }
.fd-person__role { margin: .2em 0 .5em; font-weight: 600; opacity: .85; }
.fd-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 .6em; padding: 0; }
.fd-tags li { padding: 2px 10px; border-radius: 20px; background: color-mix(in srgb, currentColor 8%, transparent); font-size: .82em; }

/* Testimonials */
.fd-quotes { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.fd-quote { margin: 0; padding: 22px; border-radius: 10px; border: 1px solid color-mix(in srgb, currentColor 15%, transparent); }
.fd-quote blockquote { margin: 0 0 1em; padding: 0; border: 0; font-style: italic; }
.fd-quote blockquote p { margin: 0 0 .5em; }
.fd-quote figcaption span { display: block; font-size: .9em; opacity: .8; }
.fd-stars { margin: 0 0 .5em; color: #B7791F; letter-spacing: 2px; }

/* FAQs and jobs */
.fd-faq, .fd-job { border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.fd-faq summary, .fd-job summary { position: relative; padding: 1em 2.4em 1em 0; cursor: pointer; font-weight: 700; list-style: none; }
.fd-faq summary::-webkit-details-marker, .fd-job summary::-webkit-details-marker { display: none; }
.fd-faq summary::after, .fd-job summary::after { content: "+"; position: absolute; right: .3em; top: .8em; font-size: 1.4em; font-weight: 400; line-height: 1; }
.fd-faq[open] summary::after, .fd-job[open] summary::after { content: "−"; }
.fd-faq__a, .fd-job__body { padding: 0 0 1em; }
.fd-faq__a p:first-child { margin-top: 0; }
.fd-job__title { display: block; }
.fd-job__facts { display: block; font-weight: 400; font-size: .9em; opacity: .85; margin-top: .2em; }

/* Gallery and lightbox */
.fd-gallery { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); list-style: none; margin: 0; padding: 0; }
.fd-gallery figure { margin: 0; }
.fd-gallery img { aspect-ratio: 1; object-fit: cover; border-radius: 8px; transition: opacity .2s; }
.fd-gallery a:hover img { opacity: .88; }
.fd-gallery figcaption { margin-top: 4px; font-size: .85em; opacity: .85; }
.fd-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 56px 12px; background: rgba(0,0,0,.9); color: #fff; }
.fd-lightbox figure { margin: 0; max-width: 100%; max-height: 100%; text-align: center; }
.fd-lightbox img { max-width: 100%; max-height: calc(100vh - 140px); width: auto; height: auto; }
.fd-lightbox figcaption { margin-top: 8px; }
.fd-lightbox button { position: absolute; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 26px; cursor: pointer; }
.fd-lightbox button:hover, .fd-lightbox button:focus-visible { background: rgba(255,255,255,.25); }
.fd-lightbox .fd-lb-close { top: 10px; right: 10px; }
.fd-lightbox .fd-lb-prev { left: 10px; top: 50%; transform: translateY(-50%); }
.fd-lightbox .fd-lb-next { right: 10px; top: 50%; transform: translateY(-50%); }

/* Downloads */
.fd-downloads { list-style: none; margin: 0; padding: 0; }
.fd-downloads li { padding: .7em 0; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); }
.fd-downloads a { display: flex; justify-content: space-between; gap: 12px; font-weight: 700; }
.fd-downloads__meta { font-weight: 400; font-size: .85em; opacity: .75; white-space: nowrap; }
.fd-downloads__desc { display: block; font-size: .9em; opacity: .85; }

/* Contact */
.fd-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .8em; }
.fd-contact-list__label { display: block; font-size: .78em; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.fd-contact-list address { font-style: normal; }
.fd-socials, .fd-policy-links { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; margin: 0; padding: 0; }
.fd-legal { font-size: .85em; opacity: .8; }
.fd-cookie-link { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Contact form */
.fd-contact__form p { margin: 0 0 1em; }
.fd-contact__form label { display: block; margin-bottom: 4px; font-weight: 600; }
.fd-contact__form input, .fd-contact__form textarea { width: 100%; min-height: 48px; padding: 10px 12px; border: 1.5px solid color-mix(in srgb, currentColor 35%, transparent); border-radius: 8px; background: #fff; color: #222; font: inherit; font-size: 16px; box-sizing: border-box; }
.fd-contact__form textarea { min-height: 140px; }
.fd-contact__small { font-size: .88em; opacity: .85; }
.fd-contact__done { padding: 16px; border-radius: 8px; background: #E3F2E8; color: #155c34; font-weight: 600; }
.fd-contact__error { padding: 12px 16px; border-radius: 8px; background: #FDECEA; color: #B42318; }
.fd-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Cookies */
.fd-cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 99999; max-width: 560px; margin-inline: auto; padding: 18px 20px; border-radius: 12px; background: #fff; color: #222; box-shadow: 0 16px 48px rgba(0,0,0,.25); font-size: 15px; line-height: 1.5; }
.fd-cookie p { margin: 0 0 12px; }
.fd-cookie a { color: inherit; }
.fd-cookie__btns { display: flex; gap: 10px; flex-wrap: wrap; }
.fd-cookie__btns button { min-height: 44px; padding: 8px 20px; cursor: pointer; }
.fd-cookie__reject { border: 1.5px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-weight: 600; }
.fd-cookie-table { width: 100%; border-collapse: collapse; font-size: .92em; }
.fd-cookie-table th, .fd-cookie-table td { padding: .5em .6em; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); text-align: left; vertical-align: top; }
.fd-embed-wait { display: block; padding: 16px; border: 1px dashed color-mix(in srgb, currentColor 40%, transparent); border-radius: 8px; text-align: center; }
iframe[data-fd-src] { display: none; }

/* Booking pop-up */
.fd-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 12px; background: rgba(0,0,0,.6); }
.fd-modal__box { position: relative; width: min(960px, 100%); height: min(88vh, 900px); border-radius: 12px; overflow: hidden; background: #fff; }
.fd-modal__box iframe { width: 100%; height: 100%; border: 0; }
.fd-modal__close { position: absolute; top: 8px; right: 8px; z-index: 2; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; color: #222; font-size: 24px; box-shadow: 0 2px 10px rgba(0,0,0,.2); cursor: pointer; }

/* Simple pages */
.fd-page-intro { font-size: 1.2em; }

@media (prefers-reduced-motion: reduce) { .fd-gallery img { transition: none; } }

/* Social feed and review sources */
.fd-social { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); list-style: none; margin: 0; padding: 0; }
.fd-social a { position: relative; display: block; overflow: hidden; border-radius: 8px; color: #fff; text-decoration: none; }
.fd-social img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .3s ease; }
.fd-social a:hover img, .fd-social a:focus-visible img { transform: scale(1.04); }
.fd-social__net { position: absolute; left: 8px; top: 8px; padding: 2px 8px; border-radius: 20px; background: rgba(0,0,0,.55); font-size: 12px; font-weight: 600; }
.fd-social__cap { position: absolute; inset: auto 0 0 0; padding: 24px 10px 10px; background: linear-gradient(transparent, rgba(0,0,0,.75)); font-size: 13px; line-height: 1.35; opacity: 0; transition: opacity .2s; }
.fd-social a:hover .fd-social__cap, .fd-social a:focus-visible .fd-social__cap { opacity: 1; }
.fd-quote__src { display: block; margin-top: 4px; font-size: .85em; opacity: .8; }
.fd-review-summary { margin: 0 0 1em; }
@media (prefers-reduced-motion: reduce) { .fd-social img, .fd-social__cap { transition: none; } }
.fd-payments { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.fd-payments img { display: block; height: 28px; width: auto; border-radius: 4px; background: #fff; }
