/* Waterfront Directory — front end
   Everything is scoped under .wfd so it won't clash with your theme. */

.wfd {
	/* Harbour palette (matches the blog) */
	--wfd-dark: #0F3646;        /* title band, banners, active buttons */
	--wfd-ink: #13262F;         /* main text */
	--wfd-muted: #52666F;       /* descriptions, captions */
	--wfd-faint: #7A8C93;       /* numbers, small details */
	--wfd-sand: #EEF2F3;        /* page background: light fog grey */
	--wfd-sand-2: #E3EAEC;      /* soft fills */
	--wfd-paper: #FFFFFF;       /* cards and panels */
	--wfd-line: #D5DEE1;        /* borders and lines */
	--wfd-divider: #E3EAEC;     /* dividers inside cards */
	--wfd-teal: #14506B;        /* links, icons */
	--wfd-link-hover: #0B3347;
	--wfd-teal-soft: #E6EFF2;   /* chips */
	--wfd-teal-ink: #14506B;
	--wfd-label: #9C3A12;       /* orange labels on light backgrounds */
	--wfd-label-dark: #F2A07E;  /* orange labels on the dark blue */
	--wfd-on-dark: #E4EEF1;     /* text on the dark blue */
	--wfd-on-dark-2: #C9DCE3;   /* small text on the dark blue */
	--wfd-ph: #D3E1E6;          /* placeholder when there is no photo */
	--wfd-green-soft: #E4F0E1;
	--wfd-green-ink: #25562B;
	--wfd-green: #2F7A38;
	--wfd-accent: #C2481B;      /* buttons: buoy orange */
	--wfd-accent-hover: #AF4118;
	--wfd-display: "Fraunces", Georgia, "Times New Roman", serif;
	--wfd-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--wfd-radius: 16px;
	--wfd-gutter: clamp(16px, 4.5vw, 64px);

	font-family: var(--wfd-body);
	color: var(--wfd-ink);
	background: var(--wfd-sand);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
.wfd *, .wfd *::before, .wfd *::after { box-sizing: border-box; }
.wfd img { max-width: 100%; height: auto; display: block; }
.wfd a { color: var(--wfd-ink); }
.wfd a:hover { color: var(--wfd-link-hover); }
.wfd .wfd-contact a, .wfd .wfd-facts a, .wfd .wfd-facts-list a, .wfd .wfd-prose a { color: var(--wfd-teal); }
.wfd .wfd-contact a:hover, .wfd .wfd-facts a:hover, .wfd .wfd-facts-list a:hover, .wfd .wfd-prose a:hover { color: var(--wfd-link-hover); }
.wfd ul { list-style: none; margin: 0; padding: 0; }
.wfd h1, .wfd h2, .wfd h3 { color: inherit; }
.wfd .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap;
}
.wfd .wfd-icon { flex-shrink: 0; }
.wfd :focus-visible { outline: 2px solid var(--wfd-teal); outline-offset: 2px; }

/* Full-width breakout when a shortcode sits inside a narrow theme column */
.wfd.wfd-home {
	width: 100vw; max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
}
body:has(.wfd-home) { overflow-x: clip; }

/* Seamless home page: no theme title, no gaps between header, banner and footer */
.wfd-seamless .wp-block-post-title,
.wfd-seamless .entry-header,
.wfd-seamless .page-header,
.wfd-seamless main .wp-block-group:has(> .wp-block-post-title):not(:has(.wp-block-post-content)),
.wfd-seamless main .wp-block-group:not(:has(*:not(.wp-block-spacer))):has(> .wp-block-spacer),
.wfd-seamless main > .wp-block-spacer,
.wfd-seamless main > .wp-block-group > .wp-block-spacer:first-child { display: none !important; }
.wfd-seamless .wp-site-blocks > * + * { margin-block-start: 0 !important; }
.wfd-seamless main,
.wfd-seamless main > .wp-block-group,
.wfd-seamless .wp-block-group:has(> .wp-block-post-content),
.wfd-seamless .wp-block-post-content,
.wfd-seamless .entry-content,
.wfd-seamless .site-main,
.wfd-seamless .content-area { margin-top: 0 !important; margin-bottom: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }
.wfd-seamless .wp-block-post-content > .wfd-home:first-child,
.wfd-seamless .entry-content > .wfd-home:first-child { margin-block-start: 0 !important; }
.wfd-seamless .wp-block-post-content > .wfd-home:last-child,
.wfd-seamless .entry-content > .wfd-home:last-child { margin-block-end: 0 !important; }
.wfd-seamless .wfd-home + p:empty, .wfd-seamless p:empty:has(+ .wfd-home) { display: none; }

.wfd-container { max-width: 1440px; margin: 0 auto; padding-left: var(--wfd-gutter); padding-right: var(--wfd-gutter); }
.wfd-narrow { max-width: 960px; }
.wfd-section { padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); }
.wfd-section--tight-top { padding-top: 0; }
.wfd-band { background: var(--wfd-paper); }

/* Type */
.wfd-eyebrow {
	margin: 0 0 12px; font-size: 13px; letter-spacing: .18em; text-transform: uppercase;
	color: var(--wfd-label); font-weight: 700; font-family: var(--wfd-body);
}
.wfd-eyebrow--light { color: var(--wfd-label-dark); }
.wfd-h2 {
	margin: 0; font-family: var(--wfd-display); font-weight: 400;
	font-size: clamp(32px, 4vw, 48px); line-height: 1.1; letter-spacing: -.01em;
}
.wfd-h2--sm { font-size: clamp(28px, 3vw, 36px); margin-bottom: 28px; }
.wfd-title {
	margin: 0; font-family: var(--wfd-display); font-weight: 400;
	font-size: clamp(40px, 5.5vw, 64px); line-height: 1.05; letter-spacing: -.02em;
}
.wfd-lead { margin: 0; font-size: clamp(17px, 1.5vw, 19px); line-height: 1.55; color: var(--wfd-muted); max-width: 62ch; }
.wfd-prose { font-size: 18px; line-height: 1.65; color: var(--wfd-muted); }
.wfd-prose > :first-child { margin-top: 0; }
.wfd-prose > :last-child { margin-bottom: 0; }
.wfd-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--wfd-teal) !important; }

/* Buttons */
.wfd-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.wfd-btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px;
	border-radius: 999px; font-weight: 600; font-size: 16px; text-decoration: none !important;
	border: 1.5px solid transparent; transition: filter .15s ease, background .15s ease; line-height: 1.2;
}
.wfd-btn:hover { filter: brightness(.92); }
.wfd .wfd-btn--accent:hover { background: var(--wfd-accent-hover); color: #fff; filter: none; }
.wfd .wfd-btn--accent { background: var(--wfd-accent); color: #fff; }
.wfd .wfd-btn--dark { background: var(--wfd-dark); color: #fff; }
.wfd .wfd-btn--outline { border-color: var(--wfd-dark); color: var(--wfd-dark); background: transparent; }
.wfd .wfd-btn--outline:hover { background: var(--wfd-dark); color: #fff; filter: none; }
.wfd .wfd-btn--ghost-light { border-color: rgba(228,238,241,.5); color: var(--wfd-on-dark); background: transparent; }
.wfd .wfd-btn--ghost-light:hover { background: rgba(255,255,255,.08); color: #fff; }

/* Placeholders (shown until photos are added) */
.wfd-ph {
	width: 100%; height: 100%; min-height: 160px; display: flex; align-items: center; justify-content: center;
	background-color: var(--wfd-ph);
	background-image: repeating-linear-gradient(135deg, rgba(15,54,70,.07) 0 12px, transparent 12px 24px);
	color: var(--wfd-muted); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; text-align: center; padding: 16px;
}

/* ---------- Home: hero ---------- */
.wfd-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 640px; }
.wfd-hero__panel {
	background: var(--wfd-dark); color: var(--wfd-on-dark);
	padding: 88px var(--wfd-gutter) 72px; display: flex; flex-direction: column; justify-content: space-between; gap: 40px;
}
.wfd-hero__text { display: flex; flex-direction: column; gap: 24px; max-width: 620px; }
.wfd-hero__text .wfd-eyebrow { margin: 0; }
.wfd-hero__title {
	margin: 0; font-family: var(--wfd-display); font-weight: 400; color: var(--wfd-on-dark);
	font-size: clamp(44px, 5.4vw, 76px); line-height: 1.02; letter-spacing: -.02em;
}
.wfd-hero__lead { margin: 0; font-size: 19px; line-height: 1.55; color: var(--wfd-on-dark-2); max-width: 520px; }
.wfd-hero__media { position: relative; min-height: 320px; }
.wfd-hero__media img, .wfd-hero__media .wfd-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ---------- Home: category tiles ---------- */
.wfd-cats { padding-bottom: 72px; padding-top: 72px; }
.wfd-cats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.wfd-cat {
	min-height: 160px; padding: 24px; border-radius: var(--wfd-radius); background: var(--wfd-paper);
	border: 1px solid var(--wfd-line); display: flex; flex-direction: column; justify-content: space-between;
	text-decoration: none !important; transition: border-color .15s ease, transform .15s ease;
}
.wfd-cat:hover { border-color: var(--wfd-dark); transform: translateY(-2px); }
.wfd-cat__count { font-size: 14px; color: var(--wfd-faint); font-weight: 600; }
.wfd-cat__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.wfd-cat__name { font-family: var(--wfd-display); font-size: 28px; line-height: 1.1; }

/* Category tile with a cover photo */
.wfd-cat--img { display: grid; grid-template-rows: auto auto 1fr; padding: 0; overflow: hidden; gap: 0; }
.wfd-cat__img { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--wfd-ph); }
.wfd-cat__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.wfd-cat--img:hover .wfd-cat__img img { transform: scale(1.04); }
.wfd-cat--img .wfd-cat__count { padding: 18px 24px 0; }
.wfd-cat--img .wfd-cat__row { padding: 6px 24px 22px; align-self: end; }
.wfd-cover--cat { aspect-ratio: 1312 / 420; margin-bottom: 8px; }

/* ---------- Directory ---------- */
.wfd-dir { background: transparent; }
.wfd-archive .wfd-dir { padding-top: 32px; }
.wfd-dir__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 36px; }
.wfd-search {
	display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px;
	border: 1px solid var(--wfd-line); border-radius: 999px; width: min(340px, 100%); color: var(--wfd-muted); background: var(--wfd-paper);
}
.wfd-search input {
	border: 0 !important; outline: none; box-shadow: none !important; font: inherit; font-size: 15px;
	background: transparent !important; flex: 1; color: var(--wfd-ink); padding: 10px 0 !important; min-width: 0; margin: 0;
}
.wfd-search:focus-within { border-color: var(--wfd-teal); }
.wfd-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 36px; }
.wfd .wfd-pill {
	min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1.5px solid var(--wfd-line);
	background: var(--wfd-paper); color: var(--wfd-ink); font: inherit; font-weight: 600; font-size: 15px; cursor: pointer;
	text-transform: none; letter-spacing: normal; box-shadow: none;
}
.wfd .wfd-pill:hover { border-color: var(--wfd-dark); background: var(--wfd-paper); color: var(--wfd-ink); }
.wfd a.wfd-pill { display: inline-flex; align-items: center; text-decoration: none; }
.wfd .wfd-pill[aria-current="page"], .wfd .wfd-pill[aria-pressed="true"] { background: var(--wfd-dark); border-color: var(--wfd-dark); color: #fff; }
.wfd-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.wfd-card {
	display: flex; flex-direction: column; border-radius: var(--wfd-radius); overflow: hidden;
	border: 1px solid var(--wfd-line); background: var(--wfd-paper); text-decoration: none !important;
	transition: transform .15s ease, box-shadow .15s ease;
}
.wfd-band .wfd-card, .wfd-more .wfd-card { background: var(--wfd-paper); }
.wfd-band.wfd-more { background: transparent; border-top: 1px solid var(--wfd-line); }
.wfd-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(15,54,70,.12); }
.wfd-card[hidden] { display: none; }
.wfd-card--premium { border-color: var(--wfd-accent); box-shadow: 0 0 0 1px var(--wfd-accent); }
.wfd-card__media { position: relative; }
.wfd-badge {
	position: absolute; top: 14px; left: 14px; z-index: 1; display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 12px; border-radius: 999px; background: var(--wfd-accent); color: #fff;
	font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.wfd-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--wfd-ph); }
.wfd-card__media img, .wfd-card__media .wfd-ph { width: 100%; height: 100%; object-fit: cover; }
.wfd-card__body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.wfd-card__body .wfd-eyebrow { margin: 0; font-size: 12px; }
.wfd-card__title { font-family: var(--wfd-display); font-size: 26px; line-height: 1.15; color: var(--wfd-ink); }
.wfd-card__blurb { font-size: 15px; line-height: 1.5; color: var(--wfd-muted); }
.wfd-card__hours { margin-top: auto; padding-top: 8px; display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--wfd-ink); }
.wfd-empty { color: var(--wfd-muted); margin: 0; }

/* ---------- Visit ---------- */
.wfd-visit__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.wfd-visit__text { display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.wfd-visit__text .wfd-eyebrow { margin: 0 0 -16px; }
.wfd-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 0; width: 100%; }
.wfd-facts dt { font-weight: 700; margin: 0 0 6px; }
.wfd-facts dd { margin: 0; color: var(--wfd-muted); line-height: 1.55; }
.wfd-map { border-radius: var(--wfd-radius); overflow: hidden; background: var(--wfd-ph); min-height: 440px; position: relative; }
.wfd-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.wfd-map--sm { min-height: 280px; }
.wfd-map--xs { min-height: 200px; border-radius: 12px; margin-top: 8px; }

/* ---------- Place pages ---------- */
.wfd-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-height: 56px; font-size: 14px; color: var(--wfd-muted); padding-top: 8px; padding-bottom: 8px; }
.wfd-crumbs a { color: var(--wfd-muted); }
.wfd-crumbs [aria-current] { color: var(--wfd-ink); font-weight: 600; }
.wfd-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.wfd-chip {
	min-height: 30px; display: inline-flex; align-items: center; gap: 6px; padding: 0 12px; border-radius: 999px;
	background: var(--wfd-teal-soft); color: var(--wfd-teal-ink); font-size: 13px; font-weight: 700;
}
.wfd-status.is-open { background: var(--wfd-green-soft); color: var(--wfd-green-ink); }
.wfd-status.is-closed { background: var(--wfd-sand-2); color: var(--wfd-muted); }
.wfd-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.wfd-status.is-open .wfd-dot { background: var(--wfd-green); }

/* Restaurant layout */
.wfd-cover { border-radius: 20px; overflow: hidden; aspect-ratio: 1312 / 460; width: 100%; background: var(--wfd-ph); }
.wfd-cover img, .wfd-cover .wfd-ph { width: 100%; height: 100%; object-fit: cover; }
.wfd-place__intro { padding: 40px 0 8px; }
.wfd-place__intro-text { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 48px; row-gap: 16px; align-items: end; }
.wfd-place__intro-text > * { grid-column: 1; }
.wfd-place__intro-text > .wfd-actions { grid-column: 2; grid-row: 1 / span 3; align-self: end; flex-wrap: nowrap; }
.wfd-place__body { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 48px; padding-top: 56px; padding-bottom: 96px; align-items: start; }
.wfd-place__main { display: flex; flex-direction: column; gap: 48px; min-width: 0; }
.wfd-place__side { display: flex; flex-direction: column; gap: 24px; position: sticky; top: 24px; }
.admin-bar .wfd-place__side { top: 56px; }

.wfd-box { background: var(--wfd-paper); border: 1px solid var(--wfd-line); border-radius: var(--wfd-radius); padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.wfd-box--flat { background: transparent; border: 0; padding: 0; }
.wfd-box__title { margin: 0; font-family: var(--wfd-body); font-size: 18px; font-weight: 700; letter-spacing: 0; }
.wfd-box__note { margin: 0; font-weight: 600; }
.wfd .wfd-hours { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; border: 0; }
.wfd .wfd-hours th, .wfd .wfd-hours td { padding: 5px 0; border: 0; background: none; text-align: left; font-weight: 400; color: var(--wfd-muted); }
.wfd .wfd-hours td { text-align: right; font-weight: 600; color: var(--wfd-ink); }
.wfd .wfd-hours tr.is-today th, .wfd .wfd-hours tr.is-today td { color: var(--wfd-ink); font-weight: 700; }
.wfd-contact { display: flex; flex-direction: column; gap: 12px; font-size: 15px; }
.wfd-contact li { display: flex; align-items: center; gap: 12px; word-break: break-word; }
.wfd-contact .wfd-icon, .wfd-facts-list .wfd-icon { color: var(--wfd-teal); }
.wfd-social { display: flex; gap: 10px; }
.wfd-social a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--wfd-line); display: inline-flex; align-items: center; justify-content: center; }
.wfd-social a:hover { border-color: var(--wfd-dark); }
.wfd-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.wfd-tags li { padding: 6px 12px; border-radius: 999px; background: var(--wfd-teal-soft); font-size: 14px; }

/* Menu */
.wfd-menu { display: flex; flex-direction: column; gap: 28px; scroll-margin-top: 24px; }
.wfd-menu__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--wfd-line); padding-bottom: 20px; }
.wfd-tabs { display: inline-flex; flex-wrap: wrap; gap: 6px; padding: 6px; background: var(--wfd-sand-2); border-radius: 28px; align-self: flex-start; max-width: 100%; }
.wfd .wfd-tab {
	min-height: 44px; padding: 0 22px; border-radius: 999px; border: 0; background: transparent; color: var(--wfd-ink);
	font: inherit; font-weight: 600; font-size: 15px; cursor: pointer; text-transform: none; letter-spacing: normal; box-shadow: none;
}
.wfd .wfd-tab:hover { background: rgba(15,54,70,.07); color: var(--wfd-ink); }
.wfd .wfd-tab[aria-selected="true"] { background: var(--wfd-dark); color: #fff; }
.wfd-menu__panel { display: flex; flex-direction: column; gap: 36px; }
.wfd-menu__panel[hidden] { display: none; }
.wfd-menu__note { margin: 0; font-size: 14px; color: var(--wfd-muted); }
.wfd-menu__section-title { margin: 0 0 4px; }
.wfd-dish { display: flex; gap: 24px; justify-content: space-between; padding: 16px 0; border-bottom: 1px dashed var(--wfd-divider); }
.wfd-dish__main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.wfd-dish__name { font-family: var(--wfd-display); font-size: 22px; line-height: 1.25; }
.wfd-dish__tag {
	display: inline-block; vertical-align: middle; margin-left: 8px; font-family: var(--wfd-body); font-size: 12px; font-weight: 700;
	padding: 1px 7px; border-radius: 6px; border: 1px solid var(--wfd-teal); color: var(--wfd-teal); line-height: 1.5;
}
.wfd-dish__desc { font-size: 15px; line-height: 1.5; color: var(--wfd-muted); }
.wfd-dish__price { font-size: 18px; font-weight: 600; white-space: nowrap; }

/* Shop layout */
.wfd-split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; padding-top: 24px; padding-bottom: clamp(56px, 7vw, 88px); align-items: center; }
.wfd-split__media { border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--wfd-ph); }
.wfd-split__media img, .wfd-split__media .wfd-ph { width: 100%; height: 100%; object-fit: cover; }
.wfd-split__text { display: flex; flex-direction: column; gap: 24px; }
.wfd-facts-list { display: flex; flex-direction: column; gap: 12px; padding: 20px 0 !important; border-top: 1px solid var(--wfd-line); border-bottom: 1px solid var(--wfd-line); }
.wfd-facts-list li { display: flex; align-items: center; gap: 12px; }
.wfd-about-row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; margin-bottom: 56px; }
.wfd-highlights { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.wfd-highlight { display: flex; flex-direction: column; gap: 6px; }
.wfd-highlight__media { border-radius: 14px; overflow: hidden; aspect-ratio: 1 / 1.1; margin-bottom: 8px; background: var(--wfd-ph); }
.wfd-highlight__media img, .wfd-highlight__media .wfd-ph { width: 100%; height: 100%; object-fit: cover; }
.wfd-highlight__name { font-family: var(--wfd-display); font-size: 22px; }
.wfd-highlight__note { font-size: 15px; color: var(--wfd-muted); }
.wfd-highlight__inner { display: flex; flex-direction: column; gap: 6px; height: 100%; text-decoration: none !important; color: var(--wfd-ink); }
.wfd-highlight__media img { transition: transform .3s ease; }
.wfd-highlight--link .wfd-highlight__inner:hover .wfd-highlight__media img { transform: scale(1.04); }
.wfd-highlight--link .wfd-highlight__inner:hover .wfd-highlight__name { text-decoration: underline; text-underline-offset: 3px; }
.wfd-highlight__cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-weight: 600; font-size: 15px; color: var(--wfd-teal); }
.wfd-highlight__cta .wfd-icon { width: 16px; height: 16px; transition: transform .15s ease; }
.wfd-highlight--link .wfd-highlight__inner:hover .wfd-highlight__cta .wfd-icon { transform: translateX(3px); }
.wfd-band__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; align-items: start; }

/* Gallery */
.wfd-gallery-wrap { padding-top: 0; }
.wfd-place--shop .wfd-gallery-wrap { padding-top: clamp(56px, 8vw, 96px); }
.wfd-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.wfd-gallery a { display: block; border-radius: 14px; overflow: hidden; aspect-ratio: 1 / 1; }
.wfd-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.wfd-gallery a:hover img { transform: scale(1.03); }
.wfd-lightbox {
	position: fixed; inset: 0; z-index: 100000; background: rgba(8, 27, 35, .92); display: flex; align-items: center; justify-content: center; padding: 24px;
}
.wfd-lightbox img { max-width: 100%; max-height: 100%; border-radius: 8px; }
.wfd-lightbox button {
	position: absolute; top: 16px; right: 16px; width: 48px; height: 48px; border-radius: 50%; border: 0;
	background: rgba(255,255,255,.12); color: #fff; font-size: 28px; line-height: 1; cursor: pointer;
}

/* More */
.wfd-more__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 36px; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.wfd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
	.wfd-cats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wfd-highlights, .wfd-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wfd-place__body { grid-template-columns: 1fr; }
	.wfd-place__side { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wfd-band__grid { grid-template-columns: 1fr 1fr; }
	.wfd-band__grid .wfd-map { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
	.wfd-hero { grid-template-columns: 1fr; min-height: 0; }
	.wfd-hero__panel { padding-top: 56px; padding-bottom: 48px; }
	.wfd-hero__media { min-height: 0; aspect-ratio: 4 / 3; }
	.wfd-visit__grid, .wfd-split, .wfd-about-row { grid-template-columns: 1fr; gap: 32px; }
	.wfd-map { min-height: 320px; }
	.wfd-place__intro-text { grid-template-columns: 1fr; }
	.wfd-place__intro-text > .wfd-actions { grid-column: 1; grid-row: auto; flex-wrap: wrap; }
}
@media (max-width: 640px) {
	.wfd-grid, .wfd-cats__grid, .wfd-place__side, .wfd-band__grid, .wfd-facts { grid-template-columns: 1fr; }
	.wfd-cat:not(.wfd-cat--img) { min-height: 0; flex-direction: row-reverse; align-items: center; gap: 12px; }
	.wfd-cat__row { flex: 1; }
	.wfd-cat__name { font-size: 24px; }
	.wfd-cat .wfd-icon { display: none; }
	.wfd-filters { flex-wrap: nowrap; overflow-x: auto; margin-left: calc(var(--wfd-gutter) * -1); margin-right: calc(var(--wfd-gutter) * -1); padding: 0 var(--wfd-gutter) 4px; scrollbar-width: none; }
	.wfd-filters .wfd-pill { flex-shrink: 0; }
	.wfd-tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.wfd .wfd-tab { flex-shrink: 0; padding: 0 16px; }
	.wfd-dish { gap: 16px; }
	.wfd-dish__name { font-size: 20px; }
	.wfd-actions .wfd-btn { flex: 1 1 auto; }
	.wfd-cover { aspect-ratio: 4 / 3; }
	.wfd-cover--cat { aspect-ratio: 16 / 9; }
	.wfd-box { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
	.wfd *, .wfd *::before, .wfd *::after { transition: none !important; }
}

/* Category intro text (supports links, bold, lists) */
.wfd-cat-intro { max-width: 72ch; padding-top: 8px; }
.wfd-cat-intro p { margin: 0 0 12px; }
.wfd-cat-intro a { text-decoration: underline; text-underline-offset: 3px; }
.wfd-status.is-pending { background: var(--wfd-teal-soft); color: var(--wfd-teal-ink); }
