.bff-block { position: relative; isolation: isolate; }
.bff-block:not(.bff-experience):not(.bff-craft) { overflow: clip; }
.bff-eyebrow { margin: 0 0 .8rem; font-family: var(--bff-font-ui); font-size: var(--bff-eyebrow-size); font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.bff-display-title {
	margin: 0;
	font-family: var(--bff-font-display);
	font-size: var(--bff-display-title-size, var(--bff-section-title-size));
	font-weight: 400;
	line-height: var(--bff-display-title-line-height, var(--bff-section-title-line-height));
	letter-spacing: 0;
	transform: var(--bff-display-title-transform, none);
	transform-origin: var(--bff-display-title-origin, center);
	-webkit-text-stroke: .012em currentColor;
	paint-order: stroke fill;
}
.bff-copy {
	max-width: var(--bff-copy-max-width, var(--bff-copy-width));
	font-size: var(--bff-copy-font-size, var(--bff-copy-size));
	line-height: var(--bff-copy-line-height);
	color: var(--bff-copy-color, rgb(23 19 15 / 76%));
}
/* Editorial direction and visual alignment are separate concerns.
   Hebrew remains RTL, while section copy keeps the same left-side visual alignment
   across desktop, tablet and mobile. */
.bff-hero__copy,
.bff-experience__copy,
.bff-craft__copy {
	direction: var(--bff-content-direction);
	text-align: var(--bff-content-align);
}

.bff-menu-preview__copy,
.bff-moments__header,
.bff-location__inner {
	text-align: var(--bff-content-align);
}

.bff-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .62rem;
	min-height: var(--bff-button-min-height, var(--bff-control-height));
	margin-top: var(--bff-button-margin-top, 1.55rem);
	padding: var(--bff-button-padding, var(--bff-control-padding));
	border: 1px solid var(--bff-button-border-color, rgb(23 19 15 / 24%));
	border-radius: var(--bff-control-radius);
	background: var(--bff-button-background, rgb(255 255 255 / 22%));
	color: var(--bff-button-color, var(--bff-ink));
	box-shadow: var(--bff-button-shadow, none);
	font-family: var(--bff-font-ui); font-size: .94rem; line-height: 1; font-weight: 700; text-decoration: none;
	transition: transform var(--bff-transition), background var(--bff-transition), color var(--bff-transition), border-color var(--bff-transition);
}
.bff-button:hover { transform: translateY(-2px); background: var(--bff-ink); border-color: var(--bff-ink); color: #fff; }
.bff-button--light { border-color: transparent; background: #f8f3ea; color: var(--bff-ink); box-shadow: 0 10px 28px rgb(0 0 0 / 12%); }
.bff-button--light:hover { background: #fff; color: var(--bff-ink); border-color: transparent; }
.bff-button__icon { display: inline-grid; place-items: center; width: 1.05rem; height: 1.05rem; flex: 0 0 auto; }
.bff-button__icon svg { display: block; width: 100%; height: 100%; }
.bff-button--location { }
.bff-button--placeholder { cursor: default; pointer-events: none; }

.bff-hero { min-height: clamp(760px, 62vw, 930px); background: #19130f; color: #fff; }
.bff-hero__media, .bff-hero__shade { position: absolute; inset: 0; }
.bff-hero__image { width: 100%; height: 100%; object-fit: cover; object-position: var(--bff-hero-focus-x, 50%) var(--bff-hero-focus-y, 55%); filter: saturate(1.18) contrast(1.10) brightness(.91) sepia(.045); animation: bffHeroBreathe 14s ease-out both; }
.bff-hero__shade { z-index: 1; background: linear-gradient(90deg, rgb(18 14 10 / 62%) 0%, rgb(18 14 10 / 30%) 44%, rgb(18 14 10 / 8%) 74%), linear-gradient(180deg, rgb(78 43 15 / 10%) 0%, transparent 46%), linear-gradient(0deg, rgb(17 13 10 / 20%), transparent 50%); }
.bff-hero__inner { position: relative; z-index: 2; min-height: clamp(760px, 62vw, 930px); display: flex; align-items: center; padding-top: 4.5rem; }
.bff-hero__copy {
	width: min(100%, var(--bff-copy-width));
	margin-left: 0;
	margin-right: 0;
}
.bff-hero__title {
	width: max-content;
	max-width: none;
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0;
	margin-right: auto;
	font-family: var(--bff-font-display);
	font-size: clamp(5.4rem, 10.5vw, 10.2rem);
	font-weight: 400;
	line-height: .79;
	letter-spacing: 0;
	transform: rotate(-6deg);
	transform-origin: 42% 50%;
	-webkit-text-stroke: .018em currentColor;
	paint-order: stroke fill;
	text-shadow: 0 4px 28px rgb(0 0 0 / 18%);
}
.bff-hero__title-line { display: block; width: max-content; }
.bff-hero__title-line--one { transform: translateX(-.08em); }
.bff-hero__title-line--two { margin-top: -.03em; transform: translateX(.30em); }
.bff-hero__tagline {
	width: max-content;
	margin: .55rem 0 0 4.15rem;
	font-family: var(--bff-font-script);
	font-size: clamp(1.75rem, 2.55vw, 2.45rem);
	line-height: .94;
	font-weight: 400;
	font-style: normal;
	text-align: left;
	direction: ltr;
	transform: rotate(-5deg);
	transform-origin: left center;
}
.bff-hero__tagline-line { display: block; width: max-content; }
.bff-hero__copy > .bff-button {
	display: flex;
	width: max-content;
	margin-top: 1.35rem;
	margin-left: 3.2rem;
	margin-right: auto;
}
.bff-hero__scroll {
	position: absolute;
	z-index: 3;
	left: max(var(--bff-page-gutter), calc((100vw - var(--bff-container-wide)) / 2));
	bottom: 1.65rem;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: .14rem;
	width: auto;
	height: auto;
	border: 0;
	border-radius: 0;
	color: rgb(255 255 255 / 88%);
	text-decoration: none;
	transform: none;
	text-shadow: 0 2px 10px rgb(0 0 0 / 28%);
}
.bff-hero__scroll-chevron { width: 26px; height: 15px; transform: rotate(-3deg); }
.bff-hero__scroll-label {
	font-family: var(--bff-font-script);
	font-size: .72rem;
	line-height: 1;
	letter-spacing: .04em;
	transform: rotate(-4deg);
}
.bff-hero__scroll-arrow { width: 18px; height: 26px; margin-top: -.05rem; animation: bffScrollHint 1.8s ease-in-out infinite; }
@keyframes bffScrollHint { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
@keyframes bffHeroBreathe { from { transform: scale(1.025); } to { transform: scale(1); } }

/* Hero story dialog — approved Option A direction. The header location CTA remains separate. */
body.bff-story-is-open { overflow: hidden; }

.bff-story-dialog {
	box-sizing: border-box;
	width: 100vw;
	max-width: none;
	height: 100vh;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: clamp(.85rem, 3vw, 2rem);
	border: 0;
	background: transparent;
	color: var(--bff-ink);
	overflow: hidden;
	overscroll-behavior: contain;
}

.bff-story-dialog[open],
.bff-story-dialog:target {
	display: grid;
	place-items: center;
	position: fixed;
	inset: 0;
	z-index: 9999;
}

.bff-story-dialog:target { background: rgb(16 13 10 / 76%); }
.bff-story-dialog::backdrop {
	background: rgb(16 13 10 / 76%);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}

.bff-story-dialog__panel {
	position: relative;
	width: min(780px, 100%);
	max-height: min(90vh, 920px);
	max-height: min(90dvh, 920px);
	border: 1px solid rgb(82 64 41 / 16%);
	border-radius: 20px;
	background: transparent;
	box-shadow: 0 28px 90px rgb(0 0 0 / 38%);
	overflow: hidden;
	isolation: isolate;
}

.bff-story-dialog__scroller {
	max-height: inherit;
	overflow-y: auto;
	overflow-x: hidden;
	direction: ltr;
	scrollbar-width: thin;
	scrollbar-color: rgb(80 68 51 / 42%) transparent;
	overscroll-behavior: contain;
}

.bff-story-dialog__scroller::-webkit-scrollbar { width: 9px; }
.bff-story-dialog__scroller::-webkit-scrollbar-track { background: transparent; }
.bff-story-dialog__scroller::-webkit-scrollbar-thumb {
	border: 2px solid transparent;
	border-radius: 999px;
	background: rgb(80 68 51 / 36%);
	background-clip: padding-box;
}

.bff-story-dialog__close {
	position: absolute;
	z-index: 8;
	top: .85rem;
	left: .85rem;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1px solid rgb(23 19 15 / 13%);
	border-radius: 999px;
	background: rgb(250 246 238 / 91%);
	color: var(--bff-ink);
	box-shadow: 0 8px 24px rgb(0 0 0 / 12%);
	font-family: var(--bff-font-ui);
	font-size: 2rem;
	font-weight: 300;
	line-height: 1;
	text-decoration: none;
	transition: transform var(--bff-transition), background var(--bff-transition);
}
.bff-story-dialog__close:hover { transform: rotate(4deg) scale(1.04); background: #fff; }

.bff-story-dialog__image-wrap {
	position: relative;
	height: clamp(220px, 31vh, 310px);
	margin: 0;
	background: #30281f;
	overflow: hidden;
}
.bff-story-dialog__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--bff-story-focus-x, 50%) var(--bff-story-focus-y, 48%);
}
.bff-story-dialog__image-wrap::after {
	content: "";
	position: absolute;
	z-index: 2;
	inset-inline: 0;
	bottom: -29px;
	height: 78px;
	background:
		radial-gradient(circle at 18% 24%, rgb(219 193 148 / 7%), transparent 18%),
		radial-gradient(circle at 76% 62%, rgb(219 193 148 / 6%), transparent 20%),
		var(--bff-cream-light);
	-webkit-mask: url('../images/experience-paper-mask.png') center top / 100% 360px no-repeat;
	mask: url('../images/experience-paper-mask.png') center top / 100% 360px no-repeat;
	filter: drop-shadow(0 -1px 1px rgb(73 52 30 / 7%));
	pointer-events: none;
}

.bff-story-dialog__body {
	position: relative;
	padding: clamp(3.8rem, 7vw, 5rem) clamp(1.6rem, 7vw, 4.5rem) clamp(2.35rem, 5vw, 3.3rem);
	background:
		radial-gradient(circle at 10% 16%, rgb(194 169 124 / 8%), transparent 18%),
		radial-gradient(circle at 86% 72%, rgb(194 169 124 / 6%), transparent 22%),
		linear-gradient(100deg, rgb(255 255 255 / 20%), transparent 38%),
		var(--bff-cream-light);
	text-align: center;
}

.bff-story-dialog__title {
	position: relative;
	z-index: 2;
	margin: 0;
	font-family: var(--bff-font-display);
	font-size: clamp(4rem, 8vw, 5.6rem);
	font-weight: 400;
	line-height: .88;
	letter-spacing: 0;
	transform: rotate(-2deg);
	-webkit-text-stroke: .01em currentColor;
	paint-order: stroke fill;
}

.bff-story-dialog__title-stroke {
	display: block;
	width: clamp(82px, 18%, 126px);
	height: 6px;
	margin: .75rem auto 1.1rem;
	border-radius: 80% 18% 72% 26%;
	background: #5d6a32;
	transform: rotate(-4deg) skewX(-12deg);
}

.bff-story-dialog__leaf { position: absolute; color: #697246; pointer-events: none; }
.bff-story-dialog__leaf svg { display: block; width: 100%; height: auto; }
.bff-story-dialog__leaf--title {
	left: clamp(.4rem, 2.8vw, 1.4rem);
	top: clamp(4.8rem, 9vw, 6.5rem);
	width: clamp(54px, 9vw, 76px);
	transform: rotate(-18deg);
	opacity: .9;
}

.bff-story-dialog__copy {
	width: min(100%, 610px);
	margin-inline: auto;
	font-size: clamp(1rem, 1.35vw, 1.08rem);
	line-height: 1.82;
}
.bff-story-dialog__copy > p {
	margin: 1.05rem 0 0;
	text-align: right;
}
.bff-story-dialog__lead {
	margin-top: 0 !important;
	color: #52602e;
	font-size: clamp(1.2rem, 2.25vw, 1.45rem);
	font-weight: 800;
	line-height: 1.45;
	text-align: center !important;
}
.bff-story-dialog__signature {
	margin-top: 1rem !important;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: .015em;
	text-align: center !important;
}

.bff-story-dialog__highlight {
	position: relative;
	margin: 1.45rem 0 .8rem;
	padding: 1.3rem clamp(1.25rem, 4vw, 2rem) 1.3rem clamp(3.3rem, 8vw, 4.6rem);
	border: 1.5px solid rgb(82 96 46 / 72%);
	border-radius: 15px 18px 13px 17px;
	background: rgb(244 240 219 / 55%);
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 34%);
}
.bff-story-dialog__highlight p {
	margin: 0;
	font-weight: 700;
	line-height: 1.68;
	text-align: right;
}
.bff-story-dialog__leaf--highlight {
	left: .75rem;
	top: 50%;
	width: 46px;
	transform: translateY(-50%) rotate(11deg);
	opacity: .9;
}

.bff-story-dialog__bottom-edge {
	height: 46px;
	margin-top: -1px;
	background:
		radial-gradient(circle at 18% 24%, rgb(219 193 148 / 7%), transparent 18%),
		var(--bff-cream-light);
	-webkit-mask: url('../images/experience-paper-mask.png') center bottom / 100% 360px no-repeat;
	mask: url('../images/experience-paper-mask.png') center bottom / 100% 360px no-repeat;
	filter: drop-shadow(0 2px 2px rgb(73 52 30 / 10%));
}

@media (max-width: 640px) {
	.bff-story-dialog { padding: .45rem; }
	.bff-story-dialog__panel {
		width: 100%;
		max-height: 97vh;
		max-height: 97dvh;
		border-radius: 15px;
	}
	.bff-story-dialog__close { top: .65rem; left: .65rem; width: 43px; height: 43px; font-size: 1.85rem; }
	.bff-story-dialog__image-wrap { height: clamp(180px, 29vh, 235px); }
	.bff-story-dialog__image-wrap::after { height: 66px; bottom: -25px; }
	.bff-story-dialog__body { padding: 3.5rem 1.1rem 2.15rem; }
	.bff-story-dialog__title { font-size: clamp(3.55rem, 18vw, 4.7rem); }
	.bff-story-dialog__title-stroke { margin-top: .55rem; margin-bottom: .85rem; height: 5px; }
	.bff-story-dialog__leaf--title { left: .4rem; top: 12rem; width: 34px; opacity: .62; }
	.bff-story-dialog__copy { font-size: 1rem; line-height: 1.72; }
	.bff-story-dialog__copy > p { margin-top: .95rem; }
	.bff-story-dialog__lead { font-size: 1.17rem; }
	.bff-story-dialog__highlight { padding: 1.05rem 1rem 1.05rem 3rem; }
	.bff-story-dialog__leaf--highlight { width: 40px; left: .55rem; }
}

.bff-experience {
    --bff-display-title-line-height: 1;
    --bff-display-title-clearance: var(--bff-space-4);
    --bff-display-title-flow-padding: clamp(1.25rem, 1.8vw, 2rem);
    --bff-display-title-transform: rotate(-6deg);
    --bff-display-title-origin: right center;
    --bff-copy-color: rgb(23 19 15 / 79%);
    --bff-button-background: rgb(255 255 255 / 78%);
    position: relative;
    z-index: 20;
    margin-top: -30px;
    margin-bottom: -30px;
    padding: 0;
    background: transparent;
    overflow: visible;
    max-width: 100%;
    isolation: isolate;
}
.bff-experience__paper {
    position: absolute;
    z-index: 0;
    /* Keep the desktop paper edge below the hero scroll cue. */
    inset: -12px 0 -58px;
    background:
        radial-gradient(circle at 18% 24%, rgb(219 193 148 / 6%), transparent 18%),
        radial-gradient(circle at 76% 62%, rgb(219 193 148 / 5%), transparent 20%),
        var(--bff-cream-light);
    /* Keep the paper edges independent of the stacked content height. */
    box-sizing: border-box;
    padding-block: 60px;
    background-clip: content-box;
    filter:
        drop-shadow(0 -1px 1px rgb(73 52 30 / 8%))
        drop-shadow(0 2px 2px rgb(73 52 30 / 12%));
    pointer-events: none;
}
.bff-experience__paper::before,
.bff-experience__paper::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    height: 60px;
    background: inherit;
    background-clip: border-box;
    -webkit-mask: url('../images/experience-paper-mask.png') center top / 100% 360px no-repeat;
    mask: url('../images/experience-paper-mask.png') center top / 100% 360px no-repeat;
    mask-mode: alpha;
}
.bff-experience__paper::before { top: 0; }
.bff-experience__paper::after {
    bottom: 0;
    -webkit-mask-position: center bottom;
    mask-position: center bottom;
}

.bff-experience__grid {
    position: relative;
    z-index: 2;
    width: var(--bff-shell);
    min-height: clamp(340px, 35vw, 500px);
    margin-inline: auto;
    padding: clamp(2.5rem, 3vw, 3rem) 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--bff-section-gap);
    align-items: center;
}
.bff-experience__copy {
    position: relative;
    z-index: 3;
    width: min(100%, var(--bff-copy-width));
    justify-self: center;
    padding: 0;
    transform: translateX(-.35rem);
}
.bff-experience__sun {
    position: absolute;
    left: clamp(-6.55rem, -5.35vw, -4.55rem);
    top: -.05rem;
    width: clamp(56px, 4.8vw, 74px);
    color: var(--bff-ink);
    transform: rotate(-7deg);
}
.bff-experience__sun svg { display: block; width: 100%; height: auto; }
.bff-experience .bff-display-title {
    box-sizing: border-box;
    padding-bottom: var(--bff-display-title-flow-padding);
    margin-bottom: var(--bff-display-title-clearance);
}
.bff-experience__lead {
    margin: 0;
    max-width: var(--bff-copy-width);
    font-size: var(--bff-lead-size);
    font-weight: 700;
    line-height: 1.28;
}
.bff-experience .bff-copy { margin-top: var(--bff-space-1); }
.bff-experience__media {
    position: relative;
    z-index: 4;
    min-height: clamp(330px, 34vw, 490px);
    transform: translateX(-2.6%);
}
.bff-experience__frame {
    position: absolute;
    margin: 0;
    overflow: visible;
    background: #fff;
    border: clamp(6px, .55vw, 8px) solid #fff;
    box-shadow: 0 14px 32px rgb(49 35 20 / 15%);
}
.bff-experience__frame--primary {
    top: -2%;
    left: 1%;
    width: 61%;
    transform: rotate(-2.4deg);
    z-index: 2;
}
.bff-experience__frame--secondary {
    top: 8%;
    right: 2.2%;
    width: 29%;
    transform: rotate(6.2deg);
    z-index: 3;
}
.bff-experience__image {
    display: block;
    width: 100%;
    aspect-ratio: .90;
    object-fit: cover;
    object-position: 42% 50%;
    filter: saturate(1.12) contrast(1.08) brightness(.98);
}
.bff-experience__image--secondary {
    aspect-ratio: .68;
    object-position: 50% 54%;
}
.bff-experience__tape {
    position: absolute;
    z-index: 4;
    width: 66px;
    height: 20px;
    background: rgb(226 202 157 / 49%);
    box-shadow: inset 0 0 0 1px rgb(160 128 76 / 7%);
}
.bff-experience__tape--one { top: -16px; left: 20%; transform: rotate(5deg); }
.bff-experience__tape--two { top: -11px; right: 8%; width: 58px; transform: rotate(-7deg); }
.bff-experience__note {
    position: absolute;
    right: -2.4%;
    bottom: 1%;
    z-index: 4;
    min-width: 106px;
    padding: .78rem .88rem .68rem;
    background: #f8f1e6;
    color: var(--bff-ink);
    font-family: var(--bff-font-script);
    font-size: clamp(.9rem, 1vw, 1.06rem);
    line-height: .9;
    transform: rotate(4deg);
    box-shadow: 0 8px 20px rgb(49 35 20 / 11%);
}
.bff-experience__note::before {
    content: "";
    position: absolute;
    inset: -7px -5px auto 10px;
    height: 14px;
    background: rgb(226 202 157 / 43%);
    transform: rotate(-4deg);
}
.bff-experience__note svg { width: 23px; height: 23px; margin: .15rem 0 -.2rem auto; display: block; }


.bff-craft { position: relative; z-index: 1; color: #fff; }

/* Standard/custom-image Craft layout. */
.bff-craft:not(.bff-craft--approved-art) {
	min-height: var(--bff-feature-min-height);
	background: #15110e;
	overflow: visible;
}
.bff-craft:not(.bff-craft--approved-art)::after {
	content: "";
	position: absolute;
	z-index: 4;
	left: 0;
	bottom: -18px;
	width: 100%;
	height: 28px;
	background: #15110e;
	clip-path: polygon(0 0, 100% 0, 100% 48%, 93% 64%, 84% 44%, 76% 62%, 66% 47%, 57% 69%, 49% 45%, 38% 64%, 28% 48%, 19% 66%, 9% 45%, 0 61%);
	pointer-events: none;
}
.bff-craft:not(.bff-craft--approved-art) .bff-craft__media,
.bff-craft:not(.bff-craft--approved-art) .bff-craft__shade { position: absolute; inset: 0; }
.bff-craft:not(.bff-craft--approved-art) .bff-craft__media { overflow: hidden; background: #15110e; }
.bff-craft:not(.bff-craft--approved-art) .bff-craft__image {
	position: absolute;
	top: 0;
	right: 0;
	width: 72%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 50% 29%;
	filter: saturate(1.12) contrast(1.12) brightness(.9) sepia(.03);
}
.bff-craft:not(.bff-craft--approved-art) .bff-craft__shade {
	z-index: 1;
	background: linear-gradient(90deg, #11100e 0%, rgb(17 16 14 / 96%) 21%, rgb(17 16 14 / 75%) 37%, rgb(17 16 14 / 25%) 58%, transparent 77%), linear-gradient(180deg, rgb(89 50 18 / 8%), transparent 48%);
}
.bff-craft:not(.bff-craft--approved-art) .bff-craft__inner { position: relative; z-index: 2; min-height: inherit; display: flex; align-items: center; }
.bff-craft:not(.bff-craft--approved-art) .bff-craft__copy {
	position: relative;
	width: min(100%, var(--bff-copy-width));
	margin-left: 0;
	margin-right: 0;
}
.bff-craft:not(.bff-craft--approved-art) .bff-craft__title {
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0;
	margin-right: auto;
	width: max-content;
	max-width: none;
	font-family: var(--bff-font-display);
	font-size: var(--bff-section-title-size);
	font-weight: 400;
	line-height: .88;
	letter-spacing: 0;
	transform: rotate(-7deg);
	transform-origin: 40% 50%;
	-webkit-text-stroke: .016em currentColor;
	paint-order: stroke fill;
	text-shadow: 0 3px 24px rgb(0 0 0 / 18%);
}
.bff-craft:not(.bff-craft--approved-art) .bff-craft__title-line { display: block; width: max-content; }
.bff-craft:not(.bff-craft--approved-art) .bff-craft__title-line:nth-child(1) { transform: translateX(1.05em); }
.bff-craft:not(.bff-craft--approved-art) .bff-craft__title-line:nth-child(2) { transform: translateX(.42em); }
.bff-craft:not(.bff-craft--approved-art) .bff-craft__title-line:nth-child(3) { transform: translateX(0); }
.bff-craft:not(.bff-craft--approved-art) .bff-craft__heart {
	display: block;
	width: 48px;
	margin-top: .45rem;
	margin-left: auto;
	margin-right: 1.3rem;
	transform: rotate(-8deg);
}
.bff-craft:not(.bff-craft--approved-art) .bff-craft__heart svg { display: block; width: 100%; height: auto; }
.bff-craft:not(.bff-craft--approved-art) .bff-craft__body { margin-top: var(--bff-space-4); max-width: var(--bff-copy-width); font-size: var(--bff-copy-size); line-height: var(--bff-copy-line-height); }

/* Approved Option A Craft composition. This variant owns its complete layout. */
.bff-craft--approved-art {
	min-height: var(--bff-feature-min-height);
	background: var(--bff-cream);
	overflow: hidden;
}
.bff-craft--approved-art .bff-craft__media { position: absolute; inset: 0; }
.bff-craft--approved-art .bff-craft__picture { display: block; width: 100%; height: 100%; }
.bff-craft--approved-art .bff-craft__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	filter: none;
}
.bff-craft--approved-art .bff-craft__shade { display: none; }
.bff-craft--approved-art .bff-craft__inner {
	position: absolute;
	top: 0; bottom: 0; left: 50%;
	z-index: 2;
	width: var(--bff-shell);
	margin-inline: 0;
	min-height: 0;
	transform: translateX(-50%);
	pointer-events: none;
}
.bff-craft--approved-art .bff-craft__copy {
	position: absolute;
	left: 0;
	top: 50%;
	width: min(100%, var(--bff-copy-width));
	transform: translateY(-50%);
	margin: 0;
	pointer-events: auto;
}
.bff-craft--approved-art .bff-craft__title {
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0;
	margin-right: auto;
	width: max-content;
	max-width: none;
	font-family: var(--bff-font-display);
	font-size: var(--bff-section-title-size);
	font-weight: 400;
	line-height: .92;
	letter-spacing: 0;
	transform: rotate(-7deg);
	transform-origin: 40% 50%;
	-webkit-text-stroke: .016em currentColor;
	paint-order: stroke fill;
	text-shadow: 0 3px 22px rgb(0 0 0 / 24%);
}
.bff-craft--approved-art .bff-craft__title-line { display: block; width: max-content; }
.bff-craft--approved-art .bff-craft__title-line:nth-child(1) { transform: translateX(.74em); }
.bff-craft--approved-art .bff-craft__title-line:nth-child(2) { transform: translateX(.16em); }
.bff-craft--approved-art .bff-craft__title-line:nth-child(3) { transform: translateX(.32em); }
.bff-craft--approved-art .bff-craft__heart {
	display: block;
	width: 42px;
	margin-top: .4rem;
	margin-left: clamp(3.5rem, 6vw, 7rem);
	margin-right: auto;
	transform: rotate(-8deg);
}
.bff-craft--approved-art .bff-craft__heart svg { display: block; width: 100%; height: auto; }
.bff-craft--approved-art .bff-craft__body {
	max-width: var(--bff-copy-width);
	margin-top: var(--bff-space-3);
	font-family: var(--bff-font-body);
	font-size: var(--bff-copy-size);
	line-height: var(--bff-copy-line-height);
}

.bff-menu-preview { padding: var(--bff-section-space) 0; background: var(--bff-cream); }
.bff-menu-preview__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: var(--bff-section-gap); align-items: center; }
.bff-menu-preview__media { position: relative; }
.bff-menu-preview__media::before { content: ""; position: absolute; inset: -1.2rem 1.4rem 1.4rem -1.2rem; border: 1px solid rgb(23 19 15 / 22%); border-radius: 45% 55% 48% 52% / 54% 46% 54% 46%; }
.bff-menu-preview__image { position: relative; width: 100%; aspect-ratio: 4 / 4.7; object-fit: cover; border-radius: 48% 52% 44% 56% / 54% 46% 58% 42%; }
.bff-menu-preview__copy { max-width: var(--bff-copy-width); }
.bff-menu-preview__items { margin-top: var(--bff-space-6); display: grid; gap: 0; border-top: 1px solid var(--bff-border); }
.bff-menu-preview__item { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--bff-border); }
.bff-menu-preview__item strong, .bff-menu-preview__item span { display: block; }
.bff-menu-preview__item strong { font-size: 1.05rem; }
.bff-menu-preview__item div > span { margin-top: .15rem; font-size: .88rem; opacity: .64; }
.bff-menu-preview__price { font-weight: 800; }

.bff-moments { padding: var(--bff-section-space) 0; background: var(--bff-cobalt); color: #fff; }
.bff-moments__header { display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--bff-section-gap); align-items: end; margin-bottom: var(--bff-section-gap); }
.bff-moments__header .bff-eyebrow { grid-column: 1 / -1; margin-bottom: -1rem; }
.bff-moments__header .bff-copy { color: rgb(255 255 255 / 82%); }
.bff-moments__grid { display: grid; grid-template-columns: 1.25fr .85fr 1fr; grid-template-rows: repeat(2, minmax(190px, 1fr)); gap: clamp(.75rem, 1.5vw, 1.25rem); min-height: var(--bff-gallery-height); }
.bff-moments__item { margin: 0; overflow: hidden; border-radius: .7rem; }
.bff-moments__item--1 { grid-row: 1 / 3; }
.bff-moments__item--2 { grid-column: 2 / 4; }
.bff-moments__image { width: 100%; height: 100%; object-fit: cover; }
.bff-moments .bff-button { color: #fff; border-color: rgb(255 255 255 / 45%); }
.bff-moments .bff-button:hover { background: #fff; color: var(--bff-cobalt); }

.bff-location {
	position: relative;
	min-height: var(--bff-feature-min-height);
	color: #fff;
	background: #151210;
	border-top-style: groove;
	border-top-width: 2px;
	border-top-color: rgb(255 255 255 / 22%);
	overflow: hidden;
}
.bff-location__media,
.bff-location__shade { position: absolute; inset: 0; }
.bff-location__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 52%;
	filter: none;
}
.bff-location__shade {
	z-index: 1;
	background: none;
}
.bff-location__inner {
	position: relative;
	z-index: 3;
	min-height: inherit;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-content: center;
	column-gap: var(--bff-section-gap);
	padding-block: var(--bff-section-space);
}
.bff-location__title {
	margin: 0;
	max-width: 13ch;
	font-family: var(--bff-font-ui);
	font-size: var(--bff-heading-size);
	font-weight: 700;
	line-height: .98;
	letter-spacing: -.035em;
}
.bff-location__inner > * { grid-column: 1; }
.bff-location__body { max-width: var(--bff-copy-width); margin-top: var(--bff-space-2); font-size: var(--bff-copy-size); line-height: var(--bff-copy-line-height); }
.bff-location__actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.bff-location__instagram { margin-top: 1.5rem; color: inherit; font-weight: 700; text-decoration: none; }
.bff-location__art {
	position: absolute;
	z-index: 2;
	right: max(var(--bff-page-gutter), calc((100vw - var(--bff-container-wide)) / 2));
	top: 50%;
	width: min(48vw, 46rem);
	transform: translateY(-50%);
}
.bff-location__doodle-image { display: block; width: 100%; height: auto; }

@media (max-width: 980px) {
	.bff-hero__copy { width: min(100%, var(--bff-copy-width)); margin-left: 0; }
	.bff-hero__title { font-size: clamp(5rem, 10vw, 7.2rem); }
	.bff-menu-preview__grid { grid-template-columns: 1fr; }
	.bff-experience { margin-top: -24px; margin-bottom: -24px; }
	.bff-experience__paper { inset: -48px 0; }
	.bff-experience__grid { width: var(--bff-shell); min-height: 0; padding: var(--bff-section-space) 0; grid-template-columns: 1fr; gap: var(--bff-section-gap); }
	.bff-experience__copy { justify-self: center; transform: none; width: min(100%, var(--bff-copy-width)); padding-inline: 0; }
	.bff-experience__sun { left: -.2rem; top: -1.8rem; width: 52px; }
	.bff-experience__media { min-height: 410px; width: min(100%, var(--bff-container-prose)); margin-inline: auto; transform: none; }
	.bff-experience__frame--primary { left: 7%; width: 60%; }
	.bff-experience__frame--secondary { top: 10%; right: 5%; width: 28%; }
	.bff-experience__note { right: 0; bottom: 3%; }
	.bff-menu-preview__media { width: min(100%, var(--bff-container-prose)); margin-inline: auto; }
	.bff-craft:not(.bff-craft--approved-art) .bff-craft__copy { width: min(100%, var(--bff-copy-width)); margin-left: 0; }
	.bff-moments__header { grid-template-columns: 1fr; }
	.bff-moments__grid { min-height: var(--bff-gallery-height); }
}

@media (max-width: 640px) {
	/* Mobile content geometry is shared across all sections. */
	.bff-block .bff-copy,
	.bff-experience__lead,
	.bff-craft__body,
	.bff-location__body { max-width: min(100%, var(--bff-copy-width)); }
	.bff-menu-preview__copy,
	.bff-moments__header,
	.bff-location__inner { min-width: 0; }
	.bff-hero { min-height: 720px; }
	.bff-hero__shade { background: linear-gradient(0deg, rgb(18 14 10 / 75%) 0%, rgb(18 14 10 / 20%) 68%); }
	.bff-hero__inner { min-height: 720px; align-items: flex-end; padding: 0 0 6.8rem; }
	.bff-hero__copy { width: 100%; margin: 0; }
	.bff-hero__image { object-position: var(--bff-hero-focus-mobile-x, var(--bff-hero-focus-x, 50%)) var(--bff-hero-focus-mobile-y, var(--bff-hero-focus-y, 55%)); }
	.bff-hero__title { font-size: clamp(4.2rem, 19vw, 6rem); transform: rotate(-5deg); }
	.bff-hero__title-line--two { transform: translateX(.18em); }
	.bff-hero__tagline { margin-left: 0; font-size: clamp(1.45rem, 7vw, 1.7rem); transform: rotate(-4deg); }
	.bff-hero__copy > .bff-button { margin-left: 0; }
	.bff-experience { margin-top: -18px; margin-bottom: -18px; }
	.bff-experience__paper { inset: -38px 0; }
	.bff-experience__grid { width: var(--bff-shell); padding: var(--bff-section-space) 0; gap: var(--bff-section-gap); }
	.bff-experience__copy { width: min(100%, var(--bff-copy-width)); padding-inline: 0; }
	.bff-experience__sun { left: 0; top: -1.35rem; width: 46px; }
	.bff-experience__lead { max-width: var(--bff-copy-width); }
	.bff-experience__media { min-height: 330px; width: 100%; }
	.bff-experience__frame { border-width: 6px; }
	.bff-experience__frame--primary { left: 6%; width: 62%; }
	.bff-experience__frame--secondary { top: 11%; right: 3%; width: 29%; }
	.bff-experience__note { right: -1%; bottom: 3%; font-size: .9rem; transform: rotate(4deg); }

	.bff-craft:not(.bff-craft--approved-art) { min-height: 500px; }
	.bff-craft:not(.bff-craft--approved-art) .bff-craft__shade { background: linear-gradient(0deg, rgb(13 12 11 / 76%) 0%, rgb(13 12 11 / 22%) 62%), linear-gradient(90deg, rgb(13 12 11 / 48%), transparent 80%); }
	.bff-craft:not(.bff-craft--approved-art) .bff-craft__image { width: 100%; object-position: 51% 30%; }
	.bff-craft:not(.bff-craft--approved-art) .bff-craft__inner { align-items: flex-end; padding-bottom: 3.7rem; }
	.bff-craft:not(.bff-craft--approved-art) .bff-craft__copy { width: 100%; }
	.bff-craft--approved-art { min-height: var(--bff-feature-min-height); background: #15110e; overflow: clip; }
	.bff-craft--approved-art .bff-craft__shade { display: block; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgb(13 12 11 / 76%) 0%, rgb(13 12 11 / 22%) 62%), linear-gradient(90deg, rgb(13 12 11 / 48%), transparent 80%); }
	.bff-craft--approved-art .bff-craft__inner { position: relative; top: auto; bottom: auto; left: auto; width: var(--bff-shell); min-height: inherit; padding-bottom: var(--bff-section-space); display: flex; align-items: flex-end; pointer-events: auto; transform: none; }
	.bff-craft--approved-art .bff-craft__copy { position: relative; left: auto; top: auto; width: min(100%, var(--bff-copy-width)); padding: 0; margin: 0; pointer-events: auto; transform: none; }
	.bff-craft--approved-art .bff-craft__title { font-size: var(--bff-section-title-size); transform: rotate(-6deg); }
	.bff-craft:not(.bff-craft--approved-art) .bff-craft__title { font-size: var(--bff-section-title-size); transform: rotate(-6deg); }
	.bff-craft:not(.bff-craft--approved-art) .bff-craft__heart { width: 40px; margin-right: 1rem; }
	.bff-menu-preview__media { width: 100%; margin-inline: auto; }
	.bff-moments__grid { grid-template-columns: 1fr 1fr; grid-template-rows: 280px 210px; min-height: 0; }
	.bff-moments__item--1 { grid-row: 1; grid-column: 1 / 3; }
	.bff-moments__item--2 { grid-column: 1; }
	.bff-location { min-height: 425px; }
	.bff-location__shade { background: none; }
	.bff-location__inner { grid-template-columns: 1fr; align-content: end; padding-block: var(--bff-section-space); }
	.bff-location__title { font-size: var(--bff-heading-size); }
	.bff-location__art { right: var(--bff-page-gutter); top: 29%; width: var(--bff-shell); opacity: .84; transform: translateY(-50%); }
}

/* BFF Gallery */
.bff-gallery {
  padding-block: 0 var(--bff-space-5);
  background: var(--bff-cream-light, #fbf7ef);
  color: var(--bff-ink, #18130f);
}

.bff-gallery__header {
  width: 100%;
  margin-inline: auto;
  margin-bottom: var(--bff-space-5);
  direction: rtl;
  text-align: start;
}

.bff-gallery__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
}

.bff-gallery__item {
  min-width: 0;
  margin: 0;
}

.bff-gallery__link {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: clamp(.8rem, 1.25vw, 1.15rem);
  background: #ddd4c7;
  aspect-ratio: 4 / 3;
  box-shadow: 0 .65rem 1.7rem rgb(52 39 26 / 8%);
}

.bff-gallery__link::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgb(255 255 255 / 34%);
  border-radius: inherit;
  pointer-events: none;
}

.bff-gallery__image,
.bff-gallery__video-preview {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bff-gallery__image { transition: transform .28s ease; }
.bff-gallery__video-preview { background: #171411; pointer-events: none; }

.bff-gallery__play {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: clamp(2.8rem, 5vw, 4rem);
  aspect-ratio: 1;
  border: 1px solid rgb(255 255 255 / 60%);
  border-radius: 999px;
  background: rgb(15 13 11 / 68%);
  color: #fff;
  font-size: clamp(1rem, 2vw, 1.35rem);
  line-height: 1;
  transform: translate(-50%, -50%);
  box-shadow: 0 .5rem 1.3rem rgb(0 0 0 / 22%);
  pointer-events: none;
}

@media (hover:hover) and (pointer:fine) {
  .bff-gallery__link:hover .bff-gallery__image { transform: scale(1.025); }
}

.bff-gallery__link:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 4px;
}

.bff-gallery__caption {
  margin-top: .55rem;
  font-size: .875rem;
  line-height: 1.45;
  direction: auto;
  text-align: start;
  color: rgb(24 19 15 / 72%);
}

.bff-gallery-lightbox {
  width: 100vw;
  max-width: none;
  height: 100vh;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgb(10 9 8 / 96%);
  color: #fff;
}

.bff-gallery-lightbox::backdrop { background: rgb(10 9 8 / 82%); }

.bff-gallery-lightbox__stage {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  width: 100%;
  height: 100%;
  padding: clamp(3.25rem, 6vw, 5rem) clamp(1rem, 5vw, 5rem) clamp(1rem, 3vw, 2rem);
}

.bff-gallery-lightbox__media {
  position: relative;
  min-width: 0;
  display: grid;
  place-items: center;
  min-height: 0;
  touch-action: pan-y;
}

.bff-gallery-lightbox__image,
.bff-gallery-lightbox__video {
  position: absolute;
  inset: 0;
  margin: auto;
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.bff-gallery-lightbox__image {
  user-select: none;
  -webkit-user-drag: none;
}

.bff-gallery-lightbox__video {
  width: min(100%, 88rem);
  max-height: 100%;
  background: #000;
}

.bff-gallery-lightbox__close,
.bff-gallery-lightbox__prev,
.bff-gallery-lightbox__next {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border: 1px solid rgb(255 255 255 / 30%);
  border-radius: 999px;
  background: rgb(16 14 12 / 58%);
  color: #fff;
  font: inherit;
  font-size: 1.65rem;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.bff-gallery-lightbox__close { top: 1rem; inset-inline-end: 1rem; }
.bff-gallery-lightbox__prev { top: 50%; inset-inline-start: 1rem; transform: translateY(-50%); }
.bff-gallery-lightbox__next { top: 50%; inset-inline-end: 1rem; transform: translateY(-50%); }

.bff-gallery-lightbox__close:focus-visible,
.bff-gallery-lightbox__prev:focus-visible,
.bff-gallery-lightbox__next:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.bff-gallery-lightbox__footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  width: min(100%, 72rem);
  margin-inline: auto;
  padding-top: .8rem;
  font-size: .9375rem;
  line-height: 1.45;
}

.bff-gallery-lightbox__caption {
  min-width: 0;
  max-width: 48rem;
  max-height: 20vh;
  max-height: 20dvh;
  overflow-y: auto;
  overflow-wrap: anywhere;
  direction: auto;
  text-align: start;
}

.bff-gallery-lightbox__counter {
  flex: 0 0 auto;
  direction: ltr;
  unicode-bidi: isolate;
  opacity: .8;
}

body.bff-gallery-is-open { overflow: hidden; }

@media (max-width: 980px) {
  .bff-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .bff-gallery__grid { grid-template-columns: minmax(0, 1fr); }
  .bff-gallery__link { border-radius: .72rem; }
  .bff-gallery-lightbox__stage { padding-inline: .75rem; }
  .bff-gallery-lightbox__prev,
  .bff-gallery-lightbox__next { top: auto; bottom: 4.25rem; transform: none; }
  .bff-gallery-lightbox__prev { inset-inline-start: .75rem; }
  .bff-gallery-lightbox__next { inset-inline-end: .75rem; }
  .bff-gallery-lightbox__footer { padding-inline: .25rem; padding-bottom: .25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .bff-gallery__image { transition: none; }
}

.bff-gallery-lightbox [hidden] { display: none !important; }

/* Offerings share the page shell; this component owns only its interior. */
.bff-offerings { margin-block: 0 var(--bff-space-7); text-align: start; }
.bff-offerings__header { margin-block-end: var(--bff-space-5); max-width: var(--bff-reading-width); }
.bff-offerings__title { margin: 0; font-family: var(--bff-font-display); font-weight: 400; font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1.25; overflow-wrap: anywhere; }
.bff-offerings__intro { margin: 1rem 0 0; font-size: var(--bff-copy-size); line-height: 1.75; color: var(--bff-wood); overflow-wrap: anywhere; }
.bff-offerings__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(1rem,2.4vw,2rem); align-items: start; }
.bff-offerings__item { min-width: 0; border: 1px solid var(--bff-border); border-radius: var(--bff-radius); overflow: hidden; background: var(--bff-white); box-shadow: 0 8px 28px rgb(49 35 20 / 5%); }
.bff-offerings__photo { aspect-ratio: 4 / 3; overflow: hidden; }
.bff-offerings__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.bff-offerings__body { padding: clamp(1.25rem,2.5vw,2rem); }
.bff-offerings__name { margin: 0; font-family: var(--bff-font-ui); font-size: clamp(1.25rem,1.8vw,1.6rem); line-height: 1.35; overflow-wrap: anywhere; }
.bff-offerings__name::after { content: ''; display: block; width: 2rem; height: 2px; background: var(--bff-amber); margin-block-start: .85rem; }
.bff-offerings__description { margin: 1rem 0 0; font-size: var(--bff-copy-size); line-height: 1.75; overflow-wrap: anywhere; }
.bff-offerings__price { margin: 1rem 0 0; font-weight: 700; color: var(--bff-wood); overflow-wrap: anywhere; }
@media(max-width:980px) { .bff-offerings__grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .bff-offerings__grid { grid-template-columns: minmax(0,1fr); } }

/* These art-directed compositions retain the approved column order in Hebrew.
   This is layout direction only; copy below keeps Hebrew reading direction. */
.bff-hero,
.bff-experience,
.bff-craft,
.bff-menu-preview,
.bff-moments,
.bff-location { direction: ltr; }
.bff-menu-preview__copy,
.bff-moments__header > *,
.bff-location__body { direction: var(--bff-content-direction); }
.bff-experience__note { direction: ltr; }
/* Match fixed arrow glyphs, keyboard navigation and swipe direction. */
.bff-gallery-lightbox { direction: ltr; }
