/* Foodie Finder Directory — design system
 * Palette: blue #025B93, green #037657, red #DC2128, orange #FA842D, dark #1A1A1A, charcoal #2E2E2E
 * Type: Oswald (display), Montserrat (body), Libre Baskerville (fine print)
 */
.ffd-scope, .ffd-card, .ffd-single, .ffd-dash, .ffd-pricing, .ffd-search, .ffd-account-box, .ffd-modal {
	--ffd-blue:#025B93; --ffd-green:#037657; --ffd-red:#DC2128; --ffd-orange:#FA842D;
	--ffd-dark:#1A1A1A; --ffd-charcoal:#2E2E2E; --ffd-grey:#808080; --ffd-light:#F7F7F5;
}
:root{
	--ffd-blue:#025B93; --ffd-green:#037657; --ffd-red:#DC2128; --ffd-orange:#FA842D;
	--ffd-dark:#1A1A1A; --ffd-charcoal:#2E2E2E; --ffd-grey:#808080; --ffd-light:#F7F7F5;
}

/* ---- Buttons (solid blue CTA) ---- */
.ffd-btn{
	display:inline-flex; align-items:center; gap:9px; cursor:pointer;
	font-family:"Oswald",sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.6px;
	font-size:16px; line-height:1; color:#fff; text-decoration:none;
	padding:15px 34px; border:none; border-radius:50px;
	background:var(--ffd-blue);
	box-shadow:0 6px 18px rgba(2,91,147,.25); transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.ffd-btn:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(2,91,147,.34); background:#014a78; color:#fff; }
.ffd-btn i{ font-size:.9em; }
.ffd-btn--sm{ padding:9px 18px; font-size:13px; }
.ffd-btn--ghost{ background:var(--ffd-blue); color:#fff; border:2px solid var(--ffd-blue); box-shadow:none; }
.ffd-btn--ghost:hover{ background:#014a78; border-color:#014a78; color:#fff; }

.ffd-section-title{ font-family:"Oswald",sans-serif; font-weight:700; color:var(--ffd-blue);
	font-size:42px; line-height:1.05; text-align:center; margin:0 0 24px; }
.ffd-empty,.ffd-notice{ font-family:"Montserrat",sans-serif; color:var(--ffd-dark); padding:14px 0; }
.ffd-notice{ background:var(--ffd-light); border-left:4px solid var(--ffd-orange); padding:14px 18px; border-radius:6px; }

/* ---- Listing card ---- */
.ffd-card{ display:flex; flex-direction:column; background:#fff; border-radius:10px; overflow:hidden;
	box-shadow:0 8px 26px rgba(0,0,0,.10); height:100%; }
.ffd-card__media{ display:block; height:200px; background-size:cover; background-position:center;
	background-color:#e9e9e9; position:relative; }
.ffd-card__noimg{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
	font-family:"Montserrat",sans-serif; color:#999; font-size:14px; }
.ffd-card__body{ padding:18px 20px 22px; display:flex; flex-direction:column; gap:8px; flex:1; }
.ffd-card__title{ font-family:"Oswald",sans-serif; font-weight:600; font-size:21px; line-height:1.1; margin:0; }
.ffd-card__title a{ color:var(--ffd-blue); text-decoration:none; }
.ffd-card__desc{ font-family:"Montserrat",sans-serif; font-weight:300; font-size:14px; line-height:1.6;
	color:var(--ffd-dark); margin:0; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.ffd-card__meta{ display:flex; flex-direction:column; gap:5px; margin-top:auto; }
.ffd-card__metarow{ display:flex; gap:8px; align-items:flex-start; font-family:"Montserrat",sans-serif;
	font-weight:400; font-size:12.5px; color:var(--ffd-charcoal); }
.ffd-card__metarow i{ color:var(--ffd-orange); margin-top:2px; width:14px; text-align:center; }
.ffd-card .ffd-btn{ margin-top:10px; align-self:flex-start; }

/* ---- Carousel ---- */
.ffd-carousel{ position:relative; padding:0 44px; }
.ffd-carousel__viewport{ overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.ffd-carousel__viewport::-webkit-scrollbar{ display:none; }
.ffd-carousel__track{ display:flex; gap:20px; padding:8px 2px 18px; }
.ffd-carousel__slide{ flex:0 0 320px; max-width:320px; scroll-snap-align:start; }
.ffd-carousel__arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:2;
	width:42px; height:42px; border-radius:50%; border:none; cursor:pointer; color:#fff;
	background:var(--ffd-blue); box-shadow:0 4px 12px rgba(2,91,147,.3); }
.ffd-carousel__arrow--prev{ left:0; }
.ffd-carousel__arrow--next{ right:0; }

/* ---- Search by category ---- */
.ffd-search{ display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; background:#fff;
	padding:18px; border-radius:12px; box-shadow:0 8px 26px rgba(0,0,0,.08); }
.ffd-search__field{ flex:1 1 220px; display:flex; flex-direction:column; gap:6px; }
.ffd-search__label{ font-family:"Oswald",sans-serif; font-weight:600; text-transform:uppercase;
	letter-spacing:.5px; font-size:12px; color:var(--ffd-blue); }
.ffd-search__select,.ffd-search input{ font-family:"Montserrat",sans-serif; font-size:15px;
	padding:12px 14px; border:1px solid #d8d8d8; border-radius:8px; background:#fff; }
.ffd-search__btn{ flex:0 0 auto; }

/* ---- Forms (login / claim / edit / booking) ---- */
.ffd-form{ font-family:"Montserrat",sans-serif; display:flex; flex-direction:column; gap:14px; }
.ffd-form__head{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	letter-spacing:.5px; color:var(--ffd-blue); font-size:24px; margin:0 0 4px; }
.ffd-form__lead,.ffd-form__alt{ font-size:14px; color:var(--ffd-charcoal); margin:0; }
.ffd-form__alt a{ color:var(--ffd-blue); }
.ffd-field{ display:flex; flex-direction:column; gap:6px; }
.ffd-field-row{ display:flex; gap:14px; }
.ffd-field-row .ffd-field{ flex:1; }
.ffd-field label{ font-family:"Oswald",sans-serif; font-weight:500; text-transform:uppercase;
	letter-spacing:.4px; font-size:12.5px; color:var(--ffd-dark); }
.ffd-field input,.ffd-field textarea,.ffd-field select{ font-family:"Montserrat",sans-serif;
	font-size:15px; padding:12px 14px; border:1px solid #d8d8d8; border-radius:8px; background:#fff; width:100%; }
.ffd-field input:focus,.ffd-field textarea:focus{ outline:none; border-color:var(--ffd-orange);
	box-shadow:0 0 0 3px rgba(250,132,45,.15); }
.ffd-hint{ font-weight:400; text-transform:none; letter-spacing:0; color:var(--ffd-grey); font-size:11px; }
.ffd-locked{ opacity:.55; }
.ffd-check{ display:flex; gap:8px; align-items:center; font-size:14px; }
.ffd-form__msg{ font-size:14px; min-height:1.2em; }
.ffd-form__msg.is-ok{ color:var(--ffd-green); }
.ffd-form__msg.is-err{ color:var(--ffd-red); }
.ffd-account-box{ max-width:440px; }
.ffd-account-box .ffd-btn{ margin-top:6px; margin-right:8px; }

/* ---- Modal ---- */
.ffd-modal{ position:fixed; inset:0; z-index:99999; display:none; }
.ffd-modal.is-open{ display:block; }
.ffd-modal__overlay{ position:absolute; inset:0; background:rgba(26,26,26,.6); }
.ffd-modal__dialog{ position:relative; z-index:1; max-width:520px; width:92%; margin:6vh auto;
	background:#fff; border-radius:14px; padding:30px 30px 34px; box-shadow:0 24px 60px rgba(0,0,0,.35);
	max-height:88vh; overflow:auto; }
.ffd-modal__close{ position:absolute; top:12px; right:16px; background:none; border:none; font-size:30px;
	line-height:1; cursor:pointer; color:var(--ffd-charcoal); }
.ffd-modal__title{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	color:var(--ffd-blue); font-size:26px; margin:0 0 4px; }
.ffd-modal__sub{ font-family:"Montserrat",sans-serif; font-weight:300; font-size:14px; color:var(--ffd-charcoal); margin:0 0 16px; }

/* ---- Dashboard ---- */
.ffd-dash{ font-family:"Montserrat",sans-serif; }
.ffd-dash__tabs{ display:flex; flex-wrap:wrap; gap:6px; border-bottom:2px solid #eee; margin-bottom:22px; }
.ffd-tab{ font-family:"Oswald",sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.5px;
	font-size:14px; background:none; border:none; cursor:pointer; padding:12px 16px; color:var(--ffd-charcoal);
	border-bottom:3px solid transparent; }
.ffd-tab.is-active{ color:var(--ffd-blue); border-bottom-color:var(--ffd-orange); }
.ffd-pane{ display:none; }
.ffd-pane.is-active{ display:block; }
.ffd-pane__head{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	color:var(--ffd-blue); font-size:22px; margin:0 0 16px; }
.ffd-pane__lead{ font-size:14px; color:var(--ffd-charcoal); margin:-8px 0 18px; }
.ffd-tab__badge{ display:inline-block; min-width:18px; height:18px; line-height:18px; text-align:center;
	background:var(--ffd-red); color:#fff; border-radius:999px; font-size:11px; font-weight:700;
	padding:0 5px; margin-left:6px; vertical-align:middle; }
/* Notifications list */
.ffd-notes{ display:flex; flex-direction:column; gap:12px; }
.ffd-note{ position:relative; background:#fff; border-radius:12px; padding:16px 18px;
	box-shadow:0 4px 14px rgba(0,0,0,.07); border-left:4px solid transparent; }
.ffd-note.is-unread{ border-left-color:var(--ffd-orange); background:#fffaf3; }
.ffd-note__head{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:6px; }
.ffd-note__title{ font-family:"Oswald",sans-serif; font-weight:600; font-size:16px; color:var(--ffd-dark); }
.ffd-note.is-unread .ffd-note__title{ color:var(--ffd-blue); }
.ffd-note__date{ font-size:12px; color:#888; white-space:nowrap; }
.ffd-note__body{ font-size:14px; color:var(--ffd-charcoal); }
.ffd-note__body p{ margin:0 0 6px; }
.ffd-note__meta{ list-style:none; margin:10px 0 0; padding:12px 0 0; border-top:1px solid #eee;
	display:flex; flex-wrap:wrap; gap:8px 18px; font-size:13px; color:var(--ffd-dark); }
.ffd-note__meta li{ display:flex; align-items:center; gap:6px; }
.ffd-note__meta i{ color:var(--ffd-orange); width:14px; text-align:center; }
.ffd-note__meta a{ color:var(--ffd-blue); text-decoration:none; }
/* Submit-a-listing + inquiry */
.ffd-submit-form{ width:100%; max-width:100%; margin:0 auto; }
.ffd-submit-form .ffd-form__head,
.ffd-submit-form .ffd-form__lead{ text-align:center; }
.ffd-submit-form .ffd-btn{ align-self:center; }
.ffd-inquiry-wrap{ display:flex; }
.ffd-dash-list{ display:flex; flex-direction:column; gap:10px; }
.ffd-dash-list__item{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:14px 16px;
	background:#fff; border-radius:10px; box-shadow:0 4px 14px rgba(0,0,0,.07); }
.ffd-dash-list__title{ font-family:"Oswald",sans-serif; font-weight:600; font-size:17px; color:var(--ffd-dark); flex:1; }
.ffd-badge{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; padding:3px 10px; border-radius:999px;
	background:#eee; color:#555; }
.ffd-badge--publish{ background:rgba(3,118,87,.12); color:var(--ffd-green); }
.ffd-badge--pending,.ffd-badge--draft{ background:rgba(250,132,45,.15); color:var(--ffd-orange); }
.ffd-tier{ color:var(--ffd-green); }

/* ---- Pricing / packages ---- */
.ffd-pricing{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.ffd-plan{ background:#fff; border-radius:14px; padding:32px 26px; text-align:center;
	box-shadow:0 10px 30px rgba(0,0,0,.10); display:flex; flex-direction:column; gap:14px; }
.ffd-plan--pro{ border:2px solid var(--ffd-orange); transform:translateY(-6px); }
.ffd-plan__name{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	letter-spacing:1px; color:var(--ffd-blue); font-size:22px; }
.ffd-plan__price{ font-family:"Oswald",sans-serif; color:var(--ffd-dark); }
.ffd-plan__amt{ font-size:46px; font-weight:700; line-height:1; }
.ffd-plan__per{ font-size:14px; color:var(--ffd-grey); }
.ffd-plan__free{ font-size:34px; font-weight:700; color:var(--ffd-green); }
.ffd-plan__features{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px;
	font-family:"Montserrat",sans-serif; font-size:14px; color:var(--ffd-dark); text-align:left; }
.ffd-plan__features i{ color:var(--ffd-green); margin-right:8px; }
.ffd-plan .ffd-btn{ margin-top:auto; align-self:center; }

/* ---- Single listing ---- */
.ffd-single__hero{ position:relative; background-size:cover; background-position:center; border-radius:14px;
	overflow:hidden; min-height:340px; display:flex; align-items:flex-end; }
.ffd-single__hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(26,26,26,.1),rgba(26,26,26,.78)); }
.ffd-single__hero-inner{ position:relative; z-index:1; padding:34px; color:#fff; }
.ffd-single__eyebrow{ font-family:"Oswald",sans-serif; text-transform:uppercase; letter-spacing:1.5px;
	font-size:13px; color:var(--ffd-orange); margin-bottom:8px; }
.ffd-single__title{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	font-size:48px; line-height:1; margin:0 0 16px; color:#fff; }
.ffd-single__cta{ display:flex; flex-wrap:wrap; gap:12px; }
.ffd-single__cta .ffd-btn--ghost{ background:var(--ffd-blue); color:#fff; border-color:#fff; }
.ffd-single__cta .ffd-btn--ghost:hover{ background:#014a78; border-color:#fff; color:#fff; }
.ffd-single__body{ display:flex; gap:34px; margin-top:30px; }
.ffd-single__main{ flex:1; font-family:"Montserrat",sans-serif; font-weight:300; font-size:17px;
	line-height:1.7; color:var(--ffd-dark); }
.ffd-single__side{ flex:0 0 300px; display:flex; flex-direction:column; gap:12px;
	background:var(--ffd-light); border-radius:12px; padding:22px; height:fit-content; }
.ffd-single__metarow{ display:flex; gap:10px; font-family:"Montserrat",sans-serif; font-size:14px; color:var(--ffd-charcoal); }
.ffd-single__metarow i{ color:var(--ffd-orange); width:16px; text-align:center; margin-top:3px; }
.ffd-musttry{ margin-top:18px; font-family:"Montserrat",sans-serif; font-size:16px; color:var(--ffd-dark); }
.ffd-musttry__tag{ display:inline-block; font-family:"Oswald",sans-serif; text-transform:uppercase;
	letter-spacing:.5px; font-size:12px; background:var(--ffd-orange); color:#fff; padding:3px 10px;
	border-radius:6px; margin-right:8px; }

/* ---- Responsive ---- */
@media (max-width:900px){
	.ffd-pricing{ grid-template-columns:1fr; }
	.ffd-plan--pro{ transform:none; }
	.ffd-single__body{ flex-direction:column; }
	.ffd-single__side{ flex:1 1 auto; }
	.ffd-single__title{ font-size:34px; }
}
@media (max-width:600px){
	.ffd-field-row{ flex-direction:column; }
	.ffd-carousel{ padding:0 8px; }
	.ffd-carousel__arrow{ display:none; }
	.ffd-section-title{ font-size:30px; }
}

/* ---- GetPaid buy button — match the solid blue CTA inside pricing cards ---- */
.ffd-plan__buy{ margin-top:auto; }
.ffd-plan__buy .btn,
.ffd-plan__buy button,
.ffd-plan__buy input[type="submit"],
.ffd-plan__buy .wpinv-payment-button,
.ffd-plan__buy .getpaid-payment-button{
	font-family:"Oswald",sans-serif !important; font-weight:600 !important; text-transform:uppercase;
	letter-spacing:.6px; font-size:15px !important; color:#fff !important; border:none !important;
	padding:14px 30px !important; border-radius:50px !important; cursor:pointer;
	background:var(--ffd-blue) !important;
	box-shadow:0 6px 18px rgba(220,33,40,.25) !important;
}
.ffd-plan__buy .btn:hover,
.ffd-plan__buy button:hover,
.ffd-plan__buy .getpaid-payment-button:hover{ transform:translateY(-2px); }

/* ---- Carousel subtitle + search heading ---- */
.ffd-carousel-sub{ font-family:"Montserrat",sans-serif; font-weight:300; font-size:17px; line-height:1.6;
	color:var(--ffd-dark); text-align:center; max-width:760px; margin:0 auto 22px; }
.ffd-search__heading{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	color:var(--ffd-blue); font-size:26px; line-height:1.1; margin:0 0 14px; }

/* ---- Single listing: info bar ---- */
.ffd-single__infobar{ display:flex; flex-wrap:wrap; gap:22px; align-items:center; padding:20px 22px;
	margin-top:18px; background:var(--ffd-light); border-radius:12px; }
.ffd-info{ display:flex; align-items:center; gap:9px; font-family:"Montserrat",sans-serif; font-size:14px;
	color:var(--ffd-charcoal); }
.ffd-info i{ color:var(--ffd-orange); }
.ffd-info--social{ margin-left:auto; gap:14px; }
.ffd-info--social a{ color:var(--ffd-blue); font-size:18px; }
.ffd-info--social a:hover{ color:var(--ffd-orange); }

/* ---- Super Great For ---- */
.ffd-single__greatfor{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:26px; }
.ffd-single__greatfor-label{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	letter-spacing:.5px; color:var(--ffd-blue); font-size:20px; }
.ffd-chips{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; padding:0; margin:0; }
.ffd-chip{ font-family:"Oswald",sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:.5px;
	font-size:13px; color:var(--ffd-dark); background:#fff; box-shadow:0 3px 10px rgba(0,0,0,.08);
	padding:8px 16px; border-radius:6px; }

/* ---- Gallery carousel ---- */
.ffd-gallery{ position:relative; margin-top:26px; }
.ffd-gallery__track{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory;
	scroll-behavior:smooth; padding-bottom:6px; -webkit-overflow-scrolling:touch; }
.ffd-gallery__track::-webkit-scrollbar{ height:8px; }
.ffd-gallery__track::-webkit-scrollbar-thumb{ background:#ccc; border-radius:4px; }
.ffd-gallery__item{ flex:0 0 32%; min-width:240px; padding-top:22%; background-size:cover; background-position:center;
	border-radius:10px; box-shadow:0 6px 18px rgba(0,0,0,.10); scroll-snap-align:start; border:0; cursor:pointer; padding:0;
	height:200px; padding-top:0; }
.ffd-gallery__nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:44px; height:44px;
	border:0; border-radius:50%; background:var(--ffd-blue); color:#fff; cursor:pointer; font-size:16px;
	display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,.25); }
.ffd-gallery__nav:hover{ background:#014a78; }
.ffd-gallery__nav--prev{ left:-12px; }
.ffd-gallery__nav--next{ right:-12px; }

/* ---- Lightbox ---- */
body.ffd-noscroll{ overflow:hidden; }
.ffd-lightbox{ position:fixed; inset:0; z-index:99999; display:none; align-items:center; justify-content:center;
	background:rgba(10,10,10,.92); padding:40px; }
.ffd-lightbox.is-open{ display:flex; }
.ffd-lightbox__img{ max-width:90vw; max-height:85vh; border-radius:8px; box-shadow:0 12px 50px rgba(0,0,0,.6); }
.ffd-lightbox__close{ position:absolute; top:18px; right:24px; width:46px; height:46px; border:0; border-radius:50%;
	background:var(--ffd-blue); color:#fff; font-size:26px; line-height:1; cursor:pointer; }
.ffd-lightbox__close:hover{ background:#014a78; }
.ffd-lightbox__nav{ position:absolute; top:50%; transform:translateY(-50%); width:54px; height:54px; border:0;
	border-radius:50%; background:var(--ffd-blue); color:#fff; font-size:30px; line-height:1; cursor:pointer; }
.ffd-lightbox__nav:hover{ background:#014a78; }
.ffd-lightbox__nav--prev{ left:24px; }
.ffd-lightbox__nav--next{ right:24px; }
.ffd-lightbox__counter{ position:absolute; bottom:22px; left:50%; transform:translateX(-50%); color:#fff;
	font-family:"Montserrat",sans-serif; font-size:14px; letter-spacing:.5px; }

/* ---- Account image manager ---- */
.ffd-imgmgr__sub{ display:block; font-family:"Oswald",sans-serif; font-weight:600; text-transform:uppercase;
	letter-spacing:.5px; color:var(--ffd-blue); font-size:13px; margin:14px 0 8px; }
.ffd-imgmgr__hero{ width:100%; height:200px; border-radius:10px; background:#f0f0f0 center/cover no-repeat;
	display:flex; align-items:center; justify-content:center; border:1px dashed #cfcfcf; }
.ffd-imgmgr__empty{ font-family:"Montserrat",sans-serif; color:#999; font-size:14px; }
.ffd-imgmgr__btn{ display:inline-flex; align-items:center; gap:8px; margin-top:10px; cursor:pointer; }
.ffd-imgmgr__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:10px; margin-bottom:4px; }
.ffd-imgmgr__thumb{ position:relative; padding-top:75%; background:#eee center/cover no-repeat; border-radius:8px;
	box-shadow:0 3px 10px rgba(0,0,0,.10); }
.ffd-imgmgr__feature,.ffd-imgmgr__remove{ position:absolute; top:6px; width:26px; height:26px; border:0; border-radius:50%;
	color:#fff; cursor:pointer; font-size:15px; line-height:1; display:flex; align-items:center; justify-content:center; }
.ffd-imgmgr__feature{ left:6px; background:rgba(2,91,147,.85); }
.ffd-imgmgr__feature:hover{ background:#014a78; }
.ffd-imgmgr__remove{ right:6px; background:rgba(220,33,40,.85); }
.ffd-imgmgr__remove:hover{ background:var(--ffd-red); }
.ffd-imgmgr__status{ font-family:"Montserrat",sans-serif; font-size:13px; color:var(--ffd-green); margin-top:8px; min-height:18px; }

/* ---- Menu ---- */
.ffd-menu{ background:#fff; border-radius:14px; padding:36px 30px; margin-top:30px; box-shadow:0 8px 26px rgba(0,0,0,.06); }
.ffd-menu__title{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase; text-align:center;
	color:var(--ffd-blue); font-size:34px; margin:0 0 24px; }
.ffd-menu__section{ margin-bottom:24px; }
.ffd-menu__section-title{ font-family:"Oswald",sans-serif; font-weight:700; color:var(--ffd-dark); font-size:26px;
	border-bottom:1px solid #e5e5e5; padding-bottom:6px; margin:0 0 16px; }
.ffd-menu__items{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px 32px; }
.ffd-menu__item-name{ font-family:"Oswald",sans-serif; font-weight:600; color:var(--ffd-dark); font-size:17px; }
.ffd-menu__item-desc{ font-family:"Montserrat",sans-serif; font-weight:300; font-size:14px; color:var(--ffd-charcoal); }

/* ---- Past events ---- */
.ffd-events{ margin-top:34px; }
.ffd-events__title{ font-family:"Oswald",sans-serif; font-weight:700; color:var(--ffd-blue); font-size:28px; margin:0 0 16px; }
.ffd-events__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; }
.ffd-event-card{ display:flex; gap:12px; align-items:center; background:#fff; border-radius:10px; padding:14px 16px;
	box-shadow:0 4px 14px rgba(0,0,0,.07); }
.ffd-event-card i{ color:var(--ffd-orange); font-size:22px; }
.ffd-event-card__occasion{ font-family:"Oswald",sans-serif; font-weight:600; color:var(--ffd-dark); font-size:15px; }
.ffd-event-card__meta{ font-family:"Montserrat",sans-serif; font-weight:300; font-size:13px; color:var(--ffd-charcoal); }

/* ---- About + upcoming ---- */
.ffd-about{ margin-top:34px; }
.ffd-about__title{ font-family:"Oswald",sans-serif; font-weight:700; color:var(--ffd-blue); font-size:32px; margin:0 0 14px; }
.ffd-about__body{ font-family:"Montserrat",sans-serif; font-weight:300; font-size:17px; line-height:1.7; color:var(--ffd-dark); }
.ffd-upcoming{ margin-top:30px; }
.ffd-upcoming__title{ font-family:"Oswald",sans-serif; font-weight:700; color:var(--ffd-blue); font-size:28px; margin:0 0 12px; }
.ffd-upcoming ul{ list-style:none; padding:0; margin:0; font-family:"Montserrat",sans-serif; }
.ffd-upcoming li{ padding:6px 0; color:var(--ffd-charcoal); }
.ffd-upcoming li i{ color:var(--ffd-orange); margin-right:8px; }
.ffd-single__map{ margin-top:24px; border-radius:12px; overflow:hidden; }

/* ---- Closing CTA band ---- */
.ffd-cta-band{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px;
	background:var(--ffd-dark); border-radius:14px; padding:38px 36px; margin-top:36px; }
.ffd-cta-band__text h2{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase; color:#fff;
	font-size:34px; line-height:1.05; margin:0 0 6px; }
.ffd-cta-band__text p{ font-family:"Montserrat",sans-serif; font-weight:300; color:#ddd; margin:0; }

@media (max-width:700px){
	.ffd-menu__items{ grid-template-columns:1fr; }
	.ffd-gallery__item{ flex-basis:80%; min-width:80%; }
	.ffd-single__infobar{ gap:14px; }
	.ffd-info--social{ margin-left:0; }
	.ffd-cta-band__text h2{ font-size:26px; }
}

/* ---- Edit form: categories picker ---- */
.ffd-cats{ display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:6px 14px;
	max-height:210px; overflow:auto; padding:12px 14px; border:1px solid #d8d8d8; border-radius:8px; background:#fff; }
.ffd-cat{ display:flex; align-items:center; gap:8px; font-family:"Montserrat",sans-serif; font-weight:400;
	font-size:14px; text-transform:none; letter-spacing:0; color:var(--ffd-dark); cursor:pointer; }
.ffd-cat input{ width:auto; }

/* ---- Foodie directory results (2-column list) ---- */
.ffd-results{ margin-top:10px; }
.ffd-results__title{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	color:var(--ffd-blue); font-size:30px; margin:0 0 4px; }
.ffd-results__count{ font-family:"Montserrat",sans-serif; color:var(--ffd-charcoal); font-size:14px; margin:0 0 20px; }
.ffd-results__grid{ display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.ffd-list-card{ display:flex; background:#fff; border-radius:12px; overflow:hidden;
	box-shadow:0 6px 18px rgba(0,0,0,.08); }
.ffd-list-card__media{ flex:0 0 38%; min-height:170px; background:#eee center/cover no-repeat;
	display:flex; align-items:center; justify-content:center; color:#999;
	font-family:"Montserrat",sans-serif; font-size:13px; }
.ffd-list-card__body{ flex:1 1 auto; padding:16px 18px; display:flex; flex-direction:column; gap:6px; min-width:0; }
.ffd-list-card__title{ margin:0; font-family:"Oswald",sans-serif; font-weight:600; font-size:19px; line-height:1.15; }
.ffd-list-card__title a{ color:var(--ffd-blue); text-decoration:none; }
.ffd-list-card__title a:hover{ color:var(--ffd-orange); }
.ffd-list-card__loc{ font-family:"Montserrat",sans-serif; font-size:13px; color:var(--ffd-charcoal); }
.ffd-list-card__loc i{ color:var(--ffd-orange); margin-right:5px; }
.ffd-list-card__desc{ font-family:"Montserrat",sans-serif; font-weight:300; font-size:14px; color:var(--ffd-dark);
	margin:2px 0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ffd-list-card__actions{ display:flex; gap:8px; margin-top:auto; padding-top:8px; flex-wrap:wrap; }
.ffd-card__actions{ display:flex; gap:8px; margin-top:auto; padding-top:8px; flex-wrap:wrap; }
.ffd-card__actions .ffd-btn{ flex:1 1 auto; text-align:center; }

/* ---- Pagination ---- */
.ffd-pagination{ display:flex; gap:6px; justify-content:center; margin-top:26px; flex-wrap:wrap; }
.ffd-pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:40px;
	height:40px; padding:0 12px; border-radius:8px; background:#fff; color:var(--ffd-blue);
	font-family:"Oswald",sans-serif; text-decoration:none; box-shadow:0 3px 10px rgba(0,0,0,.08); }
.ffd-pagination .page-numbers.current{ background:var(--ffd-blue); color:#fff; }
.ffd-pagination .page-numbers:hover{ background:#014a78; color:#fff; }

@media (max-width:760px){
	.ffd-results__grid{ grid-template-columns:1fr !important; }
	.ffd-list-card{ flex-direction:column; }
	.ffd-list-card__media{ flex-basis:auto; width:100%; min-height:180px; }
}

/* ---- No results block ---- */
.ffd-noresults{ text-align:center; padding:54px 24px; background:#fff; border:1px dashed #d8d8d8;
	border-radius:14px; }
.ffd-noresults i{ font-size:40px; color:var(--ffd-blue); opacity:.5; }
.ffd-noresults h3{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	color:var(--ffd-dark); font-size:24px; margin:14px 0 6px; }
.ffd-noresults p{ font-family:"Montserrat",sans-serif; font-weight:300; color:var(--ffd-charcoal);
	font-size:15px; margin:0; }

/* ---- Foodie Events page ---- */
.ffd-events-page__heading{ font-family:"Oswald",sans-serif; font-weight:700; text-transform:uppercase;
	color:var(--ffd-blue); font-size:34px; text-align:center; margin:0 0 8px; }
.ffd-events-page__intro{ font-family:"Montserrat",sans-serif; font-weight:300; color:var(--ffd-charcoal);
	text-align:center; max-width:680px; margin:0 auto 28px; font-size:16px; }
.ffd-events__subheading{ font-family:"Oswald",sans-serif; font-weight:600; text-transform:uppercase;
	letter-spacing:.5px; color:var(--ffd-dark); font-size:18px; margin:0 0 12px; }
.ffd-events__date{ color:var(--ffd-blue); }
.ffd-events-grid{ display:grid; grid-template-columns:minmax(300px,380px) minmax(0,1fr); gap:32px; align-items:start; }
.ffd-events-cal-col{ min-width:0; position:relative; z-index:1; }
.ffd-events-map-col{ min-width:0; }

/* Calendar */
.ffd-cal{ background:#fff; border-radius:14px; padding:16px; box-shadow:0 8px 24px rgba(0,0,0,.07);
	width:100%; max-width:100%; box-sizing:border-box; }
.ffd-cal__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.ffd-cal__title{ font-family:"Oswald",sans-serif; font-weight:600; color:var(--ffd-dark); font-size:18px; }
.ffd-cal__nav{ width:34px; height:34px; border:0; border-radius:8px; background:var(--ffd-blue); color:#fff;
	font-size:18px; line-height:1; cursor:pointer; }
.ffd-cal__nav:hover{ background:#014a78; }
.ffd-cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.ffd-cal__dow{ text-align:center; font-family:"Montserrat",sans-serif; font-size:11px; font-weight:600;
	color:var(--ffd-grey); text-transform:uppercase; padding-bottom:4px; }
.ffd-cal__cell{ position:relative; aspect-ratio:1/1; border:0; border-radius:8px; background:#f4f4f2;
	color:var(--ffd-dark); font-family:"Montserrat",sans-serif; font-size:14px; cursor:pointer; }
.ffd-cal__cell.is-empty{ background:transparent; cursor:default; }
.ffd-cal__cell.has-events{ background:#e7f0f7; font-weight:600; }
.ffd-cal__cell.is-today{ box-shadow:inset 0 0 0 2px var(--ffd-orange); }
.ffd-cal__cell.is-selected{ background:var(--ffd-blue); color:#fff; }
.ffd-cal__cell:hover:not(.is-empty):not(.is-selected){ background:#dce8f2; }
.ffd-cal__dot{ position:absolute; bottom:6px; left:50%; transform:translateX(-50%); width:5px; height:5px;
	border-radius:50%; background:var(--ffd-orange); }
.ffd-cal__cell.is-selected .ffd-cal__dot{ background:#fff; }

/* Map */
.ffd-events-map{ width:100%; min-width:0; height:420px; border-radius:14px; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,.07);
	z-index:0; }
.ffd-events-map .leaflet-container{ font-family:"Montserrat",sans-serif; }

/* Day list */
.ffd-events-list-wrap{ margin-top:28px; }
.ffd-events-list{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.ffd-event-row{ display:flex; gap:14px; align-items:center; background:#fff; border-radius:12px; padding:12px 14px;
	box-shadow:0 5px 16px rgba(0,0,0,.07); text-decoration:none; }
.ffd-event-row:hover{ box-shadow:0 10px 26px rgba(0,0,0,.12); }
.ffd-event-row__thumb{ flex:0 0 64px; width:64px; height:64px; border-radius:10px; background:#eee center/cover no-repeat; }
.ffd-event-row__body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.ffd-event-row__title{ font-family:"Oswald",sans-serif; font-weight:600; color:var(--ffd-blue); font-size:16px; }
.ffd-event-row__by{ font-family:"Montserrat",sans-serif; font-size:12px; color:var(--ffd-grey); }
.ffd-event-row__meta{ font-family:"Montserrat",sans-serif; font-weight:300; font-size:13px; color:var(--ffd-charcoal); }
.ffd-events-empty{ font-family:"Montserrat",sans-serif; color:var(--ffd-charcoal); padding:24px 0; }
.ffd-events-more{ text-align:center; margin-top:18px; }

@media (max-width:860px){
	.ffd-events-grid{ grid-template-columns:1fr; }
	.ffd-events-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	.ffd-events-map{ height:320px; }
}

/* ---- Foodie Events: calendar hardening + spacing ----
   Prefixed with .ffd-events-page to beat the theme's default <button>
   border/appearance, which loads after the plugin stylesheet. */
.ffd-events-grid{ gap:40px; }
@media (min-width:861px){
	.ffd-events-cal-col{ padding-right:4px; }
	.ffd-events-map-col{ padding-left:4px; }
}
.ffd-events-page .ffd-cal__cell,
.ffd-events-page .ffd-cal__nav{
	-webkit-appearance:none; appearance:none; border:0; box-shadow:none;
	outline:none; font-family:"Montserrat",sans-serif; }
.ffd-events-page .ffd-cal__cell{ background:#f4f4f2; color:var(--ffd-dark); }
.ffd-events-page .ffd-cal__cell.is-empty{ background:transparent; }
.ffd-events-page .ffd-cal__cell.has-events{ background:#e7f0f7; font-weight:600; }
.ffd-events-page .ffd-cal__cell.is-today{ box-shadow:inset 0 0 0 2px var(--ffd-orange); }
.ffd-events-page .ffd-cal__cell.is-selected{ background:var(--ffd-blue); color:#fff; }
.ffd-events-page .ffd-cal__cell:hover:not(.is-empty):not(.is-selected){ background:#dce8f2; }
.ffd-events-page .ffd-cal__nav{ background:var(--ffd-blue); color:#fff; }
.ffd-events-page .ffd-cal__nav:hover{ background:#014a78; }

/* ---- Foodie Events: cap calendar width + keep cells inside the white card ---- */
.ffd-events-grid{ grid-template-columns:360px minmax(0,1fr); }
.ffd-events-page .ffd-cal{ padding:20px; overflow:hidden; }
.ffd-events-page .ffd-cal__grid{ width:100%; box-sizing:border-box; }
.ffd-events-page .ffd-cal__cell{ border-radius:8px; }
@media (max-width:860px){ .ffd-events-grid{ grid-template-columns:1fr; } }
/* Make the HTML hidden attribute reliable on .ffd-btn buttons */
.ffd-btn[hidden]{ display:none !important; }

/* ---- Foodie Events: wider calendar, tighter gap, narrower map ---- */
.ffd-events-grid{ grid-template-columns:440px minmax(0,1fr); gap:24px; max-width:1180px; }
@media (max-width:860px){ .ffd-events-grid{ grid-template-columns:1fr; max-width:none; } }

/* ---- Single listing: Upcoming Locations carousel cards ---- */
.ffd-upcoming .ffd-carousel__slide{ flex:0 0 300px; max-width:300px; }
.ffd-upcoming-card{ background:#fff; border:1px solid #ececec; border-radius:14px; padding:18px 20px;
	box-shadow:0 6px 18px rgba(0,0,0,.06); height:100%; box-sizing:border-box; }
.ffd-upcoming-card__date{ font-family:"Oswald",sans-serif; font-weight:600; text-transform:uppercase;
	letter-spacing:.5px; color:var(--ffd-blue); font-size:14px; margin-bottom:8px; }
.ffd-upcoming-card__date i{ margin-right:6px; }
.ffd-upcoming-card__title{ font-family:"Oswald",sans-serif; font-weight:700; color:var(--ffd-dark);
	font-size:19px; line-height:1.2; margin-bottom:10px; }
.ffd-upcoming-card__row{ font-family:"Montserrat",sans-serif; font-weight:300; color:var(--ffd-charcoal);
	font-size:14px; margin:4px 0; }
.ffd-upcoming-card__row i{ width:16px; color:var(--ffd-blue); margin-right:6px; }
.ffd-upcoming-card__addr{ display:flex; gap:8px; align-items:flex-start; margin-top:6px;
	font-family:"Montserrat",sans-serif; font-weight:300; font-size:14px; color:var(--ffd-charcoal);
	text-decoration:none; }
.ffd-upcoming-card__addr i{ color:var(--ffd-blue); margin-top:3px; }
.ffd-upcoming-card__addr:hover span{ text-decoration:underline; color:var(--ffd-blue); }

/* ---- Upcoming carousel: show arrows only when there are enough events ----
   Desktop (>768px): arrows only when more than 3 events.
   Mobile (<=768px): arrows only when more than 1 event. */
.ffd-upcoming .ffd-carousel__arrow{ display:none; }
@media (min-width:769px){
	.ffd-upcoming .ffd-carousel--nav-desktop .ffd-carousel__arrow{ display:inline-block; }
}
@media (max-width:768px){
	.ffd-upcoming .ffd-carousel--nav-mobile .ffd-carousel__arrow{ display:inline-block; }
}
