:root {
	/* Colour system. */
	--b-dark: #141414;
	--b-paper: #fcffe2;
	--b-white: #ffffff;
	--b-accent: #fcffe2;
	--b-warm-brown: #756b5f;
	--b-warm-gray: #ded9c8;
	--b-line-dark: rgba(20, 20, 20, .28);
	--b-line-light: rgba(224, 224, 224, .28);

	/* Typography system. */
	--b-display: "Bebas Neue", sans-serif;
	--b-body: "Montserrat", sans-serif;
	--b-type-hero-h1: clamp(9rem, 22.5vw, 27rem);
	--b-type-nav: clamp(5rem, 10vw, 11rem);
	--b-type-intro-h2: clamp(1.85rem, 2.65vw, 3.2rem);
	--b-type-section-h2: clamp(4.5rem, 8vw, 9rem);
	--b-type-card-h3: clamp(4rem, 6vw, 7.2rem);
	--b-type-cta-h2: clamp(5.5rem, 9.2vw, 11rem);
	--b-type-footer-h2: clamp(3.5rem, 6.2vw, 7rem);
	--b-type-body: clamp(.88rem, 1vw, 1rem);
	--b-type-body-small: clamp(.7rem, .72vw, .82rem);
	--b-type-hours: clamp(.8rem, .9vw, .95rem);
	--b-type-label: .68rem;
	--b-type-micro: .62rem;
	--b-leading-display: .8;
	--b-leading-body: 1.55;

	/* Layout and motion. */
	--b-gutter: clamp(20px, 2.6vw, 48px);
	--b-max: 1920px;
	--b-ease: cubic-bezier(.22, 1, .36, 1);
}

@media (max-width: 809px) {
	:root {
		--b-type-hero-h1: clamp(6rem, 23vw, 11rem);
		--b-type-nav: clamp(3.8rem, 17vw, 7rem);
		--b-type-intro-h2: clamp(1.7rem, 7vw, 2.8rem);
		--b-type-section-h2: clamp(4.5rem, 18vw, 7rem);
		--b-type-card-h3: clamp(4rem, 17vw, 6.5rem);
		--b-type-cta-h2: clamp(4.7rem, 17vw, 7.2rem);
		--b-type-footer-h2: clamp(3rem, 13vw, 5.2rem);
	}
}

@media (max-width: 480px) {
	:root {
		--b-type-hero-h1: 22.5vw;
		--b-type-cta-h2: clamp(4.2rem, 18vw, 6rem);
	}
}

.lalobera-v3-preview,
.lalobera-v3-preview * { box-sizing: border-box; }
html:has(.lalobera-v3-preview) { scroll-behavior: smooth; background: var(--b-dark); }
body.lalobera-v3-preview { margin: 0; overflow-x: clip; background: var(--b-dark); color: var(--b-paper); font-family: var(--b-body); }
body.lalobera-v3-menu-open { overflow: hidden; }
.lalobera-v3-preview img { display: block; max-width: 100%; }
.lalobera-v3-preview a { color: inherit; text-decoration: none; }
.lobera-b-skip-link {
	position: fixed;
	z-index: 1000;
	top: 12px;
	left: 12px;
	padding: 12px 16px;
	background: var(--b-accent);
	color: var(--b-dark) !important;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	transform: translateY(-160%);
	transition: transform .2s ease;
}
.lobera-b-skip-link:focus { transform: none; }
#contenido-principal:focus { outline: 0; }
#cocina,#carta,#horarios { scroll-margin-top: 90px; }
.lobera-b-wrap { width: min(calc(100% - 2 * var(--b-gutter)), var(--b-max)); margin-inline: auto; }

.lobera-b-header { position: fixed; inset: 0 0 auto; z-index: 100; height: 82px; color: var(--b-white); mix-blend-mode: normal; transition: background .35s ease, color .35s ease; }
.lobera-b-header.is-scrolled { background: rgba(20,20,20,.94); border-bottom: 1px solid var(--b-line-light); }
.lobera-b-header__inner { align-items: center; gap: 30px; width: min(calc(100% - 2 * var(--b-gutter)), var(--b-max)); height: 100%; margin-inline: auto; }
.lobera-b-logo { display: flex; align-items: center; width: 92px; height: 100%; padding-block: 10px; }
.lobera-b-logo img { width: auto; height: 100%; max-height: 60px; object-fit: contain; }
.lobera-b-address { margin: 0; }
.lobera-b-nav { align-self: stretch; letter-spacing: .12em; }
.lobera-b-nav a { position: relative; }

.lobera-b-hero { position: relative; min-height: 100svh; overflow: hidden; background: var(--b-dark); color: var(--b-white); }
.lobera-b-hero__media,.lobera-b-hero__shade { position: absolute; inset: 0; }
.lobera-b-hero__visual { width: 100%; height: 100%; background-image: var(--lobera-hero-desktop); background-position: center 54%; background-repeat: no-repeat; background-size: cover; filter: brightness(.78) contrast(1.06) saturate(.9); transform: scale(1.08); transition: transform 1.8s var(--b-ease); }
.lobera-b.is-loaded .lobera-b-hero__visual { transform: scale(1); }
.lobera-b-hero__shade { background: linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.08) 42%,rgba(0,0,0,.58)); }
.lobera-b-hero__copy { position: relative; z-index: 2; display: flex; min-height: 100svh; flex-direction: column; justify-content: flex-end; width: min(calc(100% - 2 * var(--b-gutter)), var(--b-max)); margin-inline: auto; padding: 118px 0 42px; }
.lobera-b-hero__copy > p { margin: 0 0 18px; font-size: .65rem; letter-spacing: .16em; }
.lobera-b-hero h1 { margin: 0; font: 400 var(--b-type-hero-h1)/.74 var(--b-display); letter-spacing: -.018em; }
.lobera-b-hero h1 span { display: block; opacity: 0; transform: translateY(50px); transition: opacity .9s var(--b-ease),transform .9s var(--b-ease); }
.lobera-b.is-loaded .lobera-b-hero h1 span { opacity: 1; transform: none; }
.lobera-b.is-loaded .lobera-b-hero h1 span:nth-child(2) { transition-delay: .09s; }
.lobera-b.is-loaded .lobera-b-hero h1 span:nth-child(3) { transition-delay: .18s; }
.lobera-b-hero__bottom { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-top: 28px; }
.lobera-b-hero__bottom > p { max-width: 430px; margin: 0; font-size: var(--b-type-body); line-height: var(--b-leading-body); }
.lobera-b-round-link { display: grid; place-items: center; width: clamp(110px,10vw,150px); aspect-ratio: 1; border: 1px solid currentColor; border-radius: 50%; font-size: .65rem; letter-spacing: .12em; transition: background .35s ease,color .35s ease,transform .35s var(--b-ease); }
.lobera-b-round-link b { font-weight: 400; }
.lobera-b-round-link:hover { background: var(--b-paper); color: var(--b-dark); transform: rotate(-5deg); }
.lobera-b-scroll { position: absolute; z-index: 3; right: var(--b-gutter); top: 48%; display: flex; gap: 12px; font-size: .58rem; letter-spacing: .14em; transform: rotate(90deg) translateX(50%); transform-origin: right; }

.lobera-b-paper { background: var(--b-paper); color: var(--b-dark); }
.lobera-b-intro { padding-block: clamp(100px,12vw,210px); }
.lobera-b-intro__grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 28px; }
.lobera-b-kicker { grid-column: 1 / 4; margin: 8px 0 0; font-size: .63rem; letter-spacing: .14em; }
.lobera-b-intro h2 { grid-column: 3 / 13; margin: 0; font: 400 var(--b-type-intro-h2)/.78 var(--b-display); letter-spacing: -.015em; }
.lobera-b-intro__copy { grid-column: 7 / 12; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 42px; }
.lobera-b-intro__copy p { margin: 0; font-size: var(--b-type-body); line-height: 1.7; }
.lobera-b-equation { grid-column: 1 / 13; margin: clamp(70px,8vw,130px) 0 0; padding-top: 18px; border-top: 1px solid var(--b-line-dark); font: 400 clamp(2rem,4.2vw,5rem)/1 var(--b-display); text-align: center; }

.lobera-b-gallery {
	position: relative;
	overflow: hidden;
	padding-block: clamp(72px, 7vw, 110px);
	background: var(--b-dark);
}
.lobera-b-gallery__track {
	--b-gallery-gap: clamp(20px, 2.2vw, 38px);
	display: flex;
	align-items: center;
	gap: var(--b-gallery-gap);
	width: max-content;
	padding-block: 34px;
	will-change: transform;
	animation: lobera-b-marquee 32s linear infinite;
}
.lobera-b-gallery__item {
	--b-gallery-rotation: 3deg;
	--b-gallery-offset: -8px;
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	width: clamp(250px, 20vw, 380px);
	margin: 0;
}
.lobera-b-gallery__item:nth-child(even) { --b-gallery-offset: 10px; }
.lobera-b-gallery__item:nth-child(8n+2) { --b-gallery-rotation: -2.5deg; }
.lobera-b-gallery__item:nth-child(8n+3) { --b-gallery-rotation: 2deg; }
.lobera-b-gallery__item:nth-child(8n+4) { --b-gallery-rotation: -3.5deg; }
.lobera-b-gallery__item:nth-child(8n+5) { --b-gallery-rotation: 2.5deg; }
.lobera-b-gallery__item:nth-child(8n+6) { --b-gallery-rotation: -1.75deg; }
.lobera-b-gallery__item:nth-child(8n+7) { --b-gallery-rotation: 3.25deg; }
.lobera-b-gallery__item:nth-child(8n+8) { --b-gallery-rotation: -2.25deg; }
.lobera-b-gallery__instax {
	display: grid;
	grid-template-rows: auto minmax(58px, auto);
	padding: clamp(11px, .85vw, 15px);
	background: #fffef0;
	box-shadow: 0 10px 28px rgba(0, 0, 0, .16);
	transform: translateY(var(--b-gallery-offset)) rotate(var(--b-gallery-rotation));
	transform-origin: center;
	transition: transform .38s var(--b-ease), box-shadow .38s ease, opacity .3s ease;
}
.lobera-b-gallery__instax img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: center;
}
.lobera-b-gallery__item:nth-child(even) .lobera-b-gallery__instax img { object-position: center 40%; }
.lobera-b-gallery__instax figcaption {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(64px, 5.2vw, 86px);
	padding: clamp(15px, 1.4vw, 24px) 6px 5px;
	color: #47443d;
	font-family: "Segoe Print", "Bradley Hand", "Marker Felt", "Comic Sans MS", cursive;
	font-size: clamp(1rem, 1.25vw, 1.35rem);
	line-height: 1.2;
	text-align: center;
}
@media (hover: hover) and (pointer: fine) {
	.lobera-b-gallery__track:has(.lobera-b-gallery__item:hover) .lobera-b-gallery__item:not(:hover) .lobera-b-gallery__instax { opacity: .78; }
	.lobera-b-gallery__item:hover { z-index: 5; }
	.lobera-b-gallery__item:hover .lobera-b-gallery__instax {
		box-shadow: 0 18px 42px rgba(0, 0, 0, .28);
		transform: translateY(calc(var(--b-gallery-offset) - 10px)) rotate(var(--b-gallery-rotation)) scale(1.08);
	}
}
@keyframes lobera-b-marquee { to { transform: translateX(calc(-50% - (var(--b-gallery-gap) / 2))); } }

.lobera-b-hours,.lobera-b-reviews { padding-block: clamp(90px,10vw,170px); background: var(--b-dark); color: var(--b-paper); }
.lobera-b-section-head { display: grid; grid-template-columns: 60px 1fr auto; align-items: baseline; gap: 22px; padding-bottom: 18px; border-bottom: 1px solid currentColor; }
.lobera-b-section-head p,.lobera-b-section-head span { margin: 0; font-size: var(--b-type-micro); letter-spacing: .15em; }
.lobera-b-section-head p { color: var(--b-accent); }
.lobera-b-section-head h2 { margin: 0; font: 400 var(--b-type-section-h2)/var(--b-leading-display) var(--b-display); }
.lobera-b-hours__grid { display: grid; grid-template-columns: 1fr 2fr; margin-block: clamp(60px,7vw,110px); border-top: 1px solid var(--b-line-light); }
.lobera-b-hours__grid > div { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 28px 0; border-bottom: 1px solid var(--b-line-light); }
.lobera-b-hours__grid > div + div { padding-left: 40px; border-left: 1px solid var(--b-line-light); }
.lobera-b-hours__grid span { font-size: .66rem; letter-spacing: .14em; }
.lobera-b-hours__grid strong { font: 400 clamp(2rem,3.5vw,4rem)/.95 var(--b-display); }
.lobera-b-outline { display: inline-flex; align-items: center; gap: 22px; padding: 14px 0; border-bottom: 1px solid currentColor; font-size: .68rem; letter-spacing: .14em; }

.lobera-b-menu-section { padding-block: clamp(90px,10vw,170px); }
.lobera-b-menu-card { display: grid; grid-template-columns: 7fr 5fr; margin-top: clamp(60px,7vw,110px); border: 1px solid var(--b-line-dark); }
.lobera-b-menu-card__media { min-height: 680px; overflow: hidden; }
.lobera-b-menu-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--b-ease); }
.lobera-b-menu-card:hover img { transform: scale(1.035); }
.lobera-b-menu-card__copy { display: flex; flex-direction: column; justify-content: space-between; padding: clamp(34px,4vw,72px); }
.lobera-b-menu-card__copy > p { margin: 0; font-size: .63rem; letter-spacing: .15em; }
.lobera-b-menu-card h3 { margin: 30px 0; font: 400 var(--b-type-card-h3)/var(--b-leading-display) var(--b-display); }
.lobera-b-menu-card ul { padding: 0; margin: auto 0 45px; list-style: none; border-top: 1px solid var(--b-line-dark); }
.lobera-b-menu-card li { padding: 13px 0; border-bottom: 1px solid var(--b-line-dark); font-size: .67rem; letter-spacing: .11em; }
.lobera-b-menu-card a { align-self: flex-start; padding-bottom: 8px; border-bottom: 1px solid currentColor; font-size: .66rem; letter-spacing: .13em; }

.lobera-b-trustindex { min-height: 280px; margin-top: clamp(50px,6vw,90px); }
.lobera-b-reserve { position: relative; min-height: 92svh; overflow: hidden; color: var(--b-white); }
.lobera-b-reserve > img,.lobera-b-reserve__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.lobera-b-reserve > img { object-fit: cover; }
.lobera-b-reserve__shade { background: rgba(0,0,0,.44); }
.lobera-b-reserve__copy { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; align-content: end; align-items: end; gap: 30px; width: min(calc(100% - 2 * var(--b-gutter)),var(--b-max)); min-height: 92svh; margin-inline: auto; padding-block: 50px; }
.lobera-b-reserve__copy > p { grid-column: 1 / -1; margin: 0; font-size: .64rem; letter-spacing: .15em; }
.lobera-b-reserve h2 { max-width: 9ch; margin: 0; font: 400 var(--b-type-cta-h2)/.76 var(--b-display); }

.lobera-b-footer { padding-block: clamp(80px,9vw,150px) 28px; background: var(--b-paper); color: var(--b-dark); }
.lobera-b-footer__top { display: grid; grid-template-columns: 2fr 1fr; align-items: end; gap: 40px; padding-bottom: clamp(60px,7vw,110px); }
.lobera-b-footer h2 { margin: 0; font: 400 var(--b-type-footer-h2)/.84 var(--b-display); overflow-wrap: anywhere; }
.lobera-b-footer address { font-style: normal; font-size: .75rem; line-height: 1.7; letter-spacing: .08em; }
.lobera-b-instagram { display: grid; grid-template-columns: 1fr auto 1fr; align-items: baseline; gap: 30px; padding: clamp(40px,5vw,70px) 0; border-block: 1px solid var(--b-line-dark); }
.lobera-b-instagram span { font-size: .65rem; letter-spacing: .14em; }
.lobera-b-instagram span:last-child { text-align: right; }
.lobera-b-instagram strong { font: 400 clamp(3rem,6vw,7rem)/.85 var(--b-display); }
.lobera-b-footer__bottom { display: flex; justify-content: space-between; padding-top: 28px; font-size: .62rem; letter-spacing: .12em; }
.lobera-b-footer__bottom p { margin: 0; }

[data-b-reveal] { transition: opacity .9s var(--b-ease),transform .9s var(--b-ease); }
.js-b-reveal [data-b-reveal]:not(.is-visible) { opacity: 0; transform: translateY(38px); }

@media (max-width: 1199px) {
	.lobera-b-address { display: none; }
	.lobera-b-intro h2 { grid-column: 2 / 13; }
	.lobera-b-intro__copy { grid-column: 6 / 13; }
	.lobera-b-menu-card__media { min-height: 580px; }
}

@media (max-width: 809px) {
	:root { --b-gutter: clamp(20px,5vw,28px); }
	.lobera-b-header { height: 70px; background: rgba(20,20,20,.94); }

	.lobera-b-logo { width: 76px; }
	.lobera-b-menu { margin-left: auto; }
	.lobera-b-hero__copy { padding-top: 100px; }
	.lobera-b-hero h1 { font-size: var(--b-type-hero-h1); }
	.lobera-b-hero__bottom { align-items: flex-start; flex-direction: column; }
	.lobera-b-round-link { width: 112px; }
	.lobera-b-scroll { display: none; }
	.lobera-b-intro__grid { display: block; }
	.lobera-b-intro h2 { margin-top: 48px; font-size: var(--b-type-intro-h2); }
	.lobera-b-intro__copy { display: block; margin-top: 40px; }
	.lobera-b-intro__copy p + p { margin-top: 22px; }
	.lobera-b-equation { margin-top: 70px; font-size: clamp(2.4rem,11vw,4.2rem); }
	.lobera-b-section-head { grid-template-columns: 40px 1fr; }
	.lobera-b-section-head h2 { font-size: var(--b-type-section-h2); }
	.lobera-b-section-head span { grid-column: 2; }
	.lobera-b-hours__grid { grid-template-columns: 1fr; }
	.lobera-b-hours__grid > div + div { padding-left: 0; border-left: 0; }
	.lobera-b-hours__grid > div { grid-template-columns: 1fr; }
	.lobera-b-menu-card { grid-template-columns: 1fr; }
	.lobera-b-menu-card__media { min-height: 430px; }
	.lobera-b-menu-card h3 { font-size: var(--b-type-card-h3); }
	.lobera-b-reserve h2 { font-size: var(--b-type-cta-h2); }
	.lobera-b-reserve__copy { display: flex; align-items: flex-start; flex-direction: column; justify-content: flex-end; }
	.lobera-b-footer__top { grid-template-columns: 1fr; }
	.lobera-b-footer h2 { font-size: var(--b-type-footer-h2); }
	.lobera-b-instagram { grid-template-columns: 1fr; }
	.lobera-b-instagram span:last-child { text-align: left; }
	.lobera-b-instagram strong { font-size: clamp(3rem,14vw,5.5rem); overflow-wrap: anywhere; }
}

@media (max-width: 480px) {
	.lobera-b-hero__copy > p { max-width: 28ch; }
	.lobera-b-hero h1 { font-size: var(--b-type-hero-h1); }
	.lobera-b-menu-card__media { min-height: 360px; }
	.lobera-b-footer__bottom { gap: 20px; }
}

@media (max-width: 809px) {
	.lobera-b-gallery { padding-block: 58px; }
	.lobera-b-gallery__track { --b-gallery-gap: clamp(18px, 4vw, 28px); padding-block: 28px; }
	.lobera-b-gallery__item { width: clamp(225px, 38vw, 310px); }
	.lobera-b-gallery__instax figcaption { font-size: clamp(.95rem, 2.4vw, 1.15rem); }
}

@media (max-width: 480px) {
	.lobera-b-gallery { padding-block: 44px; }
	.lobera-b-gallery__track { --b-gallery-gap: 18px; padding-block: 24px; }
	.lobera-b-gallery__item { --b-gallery-offset: -4px; --b-gallery-rotation: 1.5deg; width: clamp(205px, 58vw, 255px); }
	.lobera-b-gallery__item:nth-child(even) { --b-gallery-offset: 5px; --b-gallery-rotation: -1.4deg; }
	.lobera-b-gallery__instax { grid-template-rows: auto minmax(54px, auto); padding: 10px; }
	.lobera-b-gallery__instax figcaption { min-height: 58px; padding-top: 14px; font-size: .96rem; }
}

@media (prefers-reduced-motion: reduce) {
	html:has(.lalobera-v3-preview) { scroll-behavior: auto; }
	.lobera-b-gallery { overflow-x: auto; }
	.lobera-b-gallery__track { animation: none; transform: none; }
	.lobera-b-gallery__item[aria-hidden="true"] { display: none; }
	.lobera-b-hero__visual,.lobera-b-hero h1 span,[data-b-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Hero composition matched to the Bramble reference. */
.lobera-b-header__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
}
.lobera-b-reserve-top {
	justify-self: start;
	padding: 18px 26px;
	border: 1px solid rgba(255,255,255,.72);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .04em;
	transition: background .25s ease,color .25s ease;
}
.lobera-b-reserve-top:hover { background: var(--b-paper); color: var(--b-dark); }
.lobera-b-address { grid-column: 2; justify-self: center; font-size: .72rem; font-weight: 600; letter-spacing: .04em; }
.lobera-b-menu {
	position: relative;
	z-index: 103;
	grid-column: 3;
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: 600 .72rem/1 var(--b-body);
	letter-spacing: .04em;
}
.lobera-b-menu > .lobera-b-menu-icon {
	position: relative;
	display: block;
	width: 28px;
	height: 12px;
	background: transparent;
	box-shadow: none;
}
.lobera-b-menu > .lobera-b-menu-icon::before,
.lobera-b-menu > .lobera-b-menu-icon::after {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 2px;
	content: "";
	background: currentColor;
	transition: transform .3s var(--b-ease);
}
.lobera-b-menu > .lobera-b-menu-icon::before { transform: translateY(-5px); }
.lobera-b-menu > .lobera-b-menu-icon::after { transform: translateY(5px); }
.lobera-b-menu[aria-expanded="true"] > .lobera-b-menu-icon::before { transform: translateY(-1px) rotate(45deg); }
.lobera-b-menu[aria-expanded="true"] > .lobera-b-menu-icon::after { transform: translateY(-1px) rotate(-45deg); }
.lobera-b-nav {
	position: fixed;
	inset: 0;
	z-index: 101;
	display: flex;
	align-items: stretch;
	justify-content: center;
	flex-direction: column;
	gap: 0;
	padding: 110px var(--b-gutter) 40px;
	background: var(--b-dark);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-20px);
	transition: opacity .4s var(--b-ease),transform .55s var(--b-ease),visibility .4s;
}
.lobera-b-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.lobera-b-nav a {
	display: block;
	height: auto;
	padding: 12px 0;
	border-top: 1px solid var(--b-line-light);
	font: 400 var(--b-type-nav)/.82 var(--b-display);
}
.lobera-b-nav a:last-child { border-bottom: 1px solid var(--b-line-light); }
.lobera-b-nav a::after { display: none; }

.lobera-b-hero__shade { background: radial-gradient(ellipse at 52% 46%, rgba(0,0,0,.04) 24%, rgba(0,0,0,.34) 100%), linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.16) 42%, rgba(0,0,0,.52) 100%); box-shadow: inset 0 0 120px rgba(0,0,0,.18); }
.lobera-b-hero__copy { justify-content: flex-end; padding: 110px 0 0; overflow: hidden; }
.lobera-b-hero h1 {
	width: 100%;
	margin: 0;
	font-size: var(--b-type-hero-h1);
	line-height: .68;
	letter-spacing: -.01em;
	text-align: center;
	white-space: nowrap;
}
.lobera-b-hero h1 span { display: block; transform: translateY(80px); }
.lobera-b.is-loaded .lobera-b-hero h1 span { transform: translateY(0); }

@media (max-width: 809px) {
	.lobera-b-reserve-top { font-size: .61rem; }
	.lobera-b-address { display: none; }
	.lobera-b-nav { inset: 0; height: 100dvh; padding-top: 96px; }
	.lobera-b-hero__copy { padding: 96px 0 0; }
	.lobera-b-hero h1 { font-size: var(--b-type-hero-h1); line-height: .72; }
}

@media (max-width: 480px) {
	.lobera-b-menu { gap: 9px; }
	.lobera-b-menu > .lobera-b-menu-icon { width: 23px; }
	.lobera-b-hero h1 { font-size: var(--b-type-hero-h1); }
}

/* Intro + framed gallery matched to the supplied Bramble composition. */
.lobera-b-intro,
.lobera-b-intro.lobera-b-paper {
	position: relative;
	padding: clamp(86px, 9vw, 150px) 0 clamp(54px, 6vw, 92px);
	background: var(--b-dark);
	color: var(--b-paper);
}
.lobera-b-intro__grid {
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 0;
	text-align: center;
}
.lobera-b-kicker {
	order: 0;
	margin: 0 0 clamp(28px, 3vw, 44px);
	color: rgba(224,224,224,.62);
	font-size: .58rem;
	letter-spacing: .16em;
}
.lobera-b-intro h2 {
	order: 1;
	width: min(100%, 850px);
	margin: 0;
	font-family: var(--b-body);
	font-size: var(--b-type-intro-h2);
	font-weight: 500;
	line-height: 1.18;
	letter-spacing: -.035em;
}
.lobera-b-intro__copy {
	order: 2;
	display: block;
	width: min(100%, 650px);
	margin: clamp(20px, 2vw, 30px) auto 0;
}
.lobera-b-intro__copy p {
	margin: 0;
	color: rgba(224,224,224,.82);
	font-size: var(--b-type-body-small);
	line-height: 1.45;
}
.lobera-b-intro__copy p + p { margin-top: 3px; }
.lobera-b-equation {
	order: 3;
	width: min(100%, 780px);
	margin: clamp(66px, 7vw, 108px) auto 0;
	padding: 0;
	border: 0;
	font-family: var(--b-body);
	font-size: clamp(.72rem, .9vw, .95rem);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: -.01em;
}

@media (max-width: 809px) {
	.lobera-b-intro,
	.lobera-b-intro.lobera-b-paper { padding-block: 74px 48px; }
	.lobera-b-intro h2 { width: min(100%, 620px); font-size: var(--b-type-intro-h2); }
	.lobera-b-intro__copy { width: min(100%, 520px); }
	.lobera-b-equation { margin-top: 54px; font-size: .68rem; }
}

@media (max-width: 480px) {
	.lobera-b-kicker { max-width: 28ch; line-height: 1.5; }
	.lobera-b-intro__copy p { font-size: .7rem; }
}


/* Bramble continuation: cream hours and alternating editorial chapters. */

.lobera-b-hours {
	--b-hours-taco-x: -20px;
	--b-hours-taco-y: 40px;
	--b-hours-taco-scale: .75;
	--b-hours-taco-rotate-z: -14deg;
	--b-hours-taco-rotate-y: -10deg;
	--b-hours-taco-rotate-x: 5deg;
	--b-hours-dessert-x: 30px;
	--b-hours-dessert-y: -50px;
	--b-hours-dessert-scale: .78;
	--b-hours-dessert-rotate-z: 14deg;
	--b-hours-dessert-rotate-y: 10deg;
	--b-hours-dessert-rotate-x: -5deg;
	position: relative;
	padding: 0 0 clamp(28px, 3vw, 52px);
	overflow: hidden;
	background: var(--b-paper);
	color: var(--b-dark);
}
.lobera-b-hours__marquee {
	width: 100%;
	overflow: hidden;
	padding-top: clamp(38px, 4vw, 62px);
}
.lobera-b-hours__marquee > div {
	display: flex;
	gap: clamp(26px, 2.4vw, 48px);
	width: max-content;
	animation: lobera-b-hours-marquee 34s linear infinite;
}
.lobera-b-hours__marquee span {
	font-family: var(--b-body);
	font-size: clamp(.9rem, 1.15vw, 1.35rem);
	font-weight: 400;
	line-height: 1;
	white-space: nowrap;
}
@keyframes lobera-b-hours-marquee { to { transform: translateX(-50%); } }

.lobera-b-hours__stage {
	position: relative;
	display: grid;
	place-items: center;
	width: min(calc(100% - 2 * var(--b-gutter)), var(--b-max));
	min-height: clamp(560px, 38vw, 720px);
	margin-inline: auto;
	perspective: 800px;
}
.lobera-b-hours__art {
	position: absolute;
	z-index: 1;
	margin: 0;
	pointer-events: none;
	will-change: transform;
}
.lobera-b-hours__art img {
	width: 100%;
	height: auto;
	filter: drop-shadow(0 16px 22px rgba(20, 20, 20, .14));
}
.lobera-b-hours__art--tacos {
	top: 55%;
	left: max(0px, calc(50% - clamp(500px, 38vw, 700px)));
	width: clamp(190px, 18vw, 340px);
	transform: translate3d(var(--b-hours-taco-x), var(--b-hours-taco-y), 0) rotateZ(var(--b-hours-taco-rotate-z)) rotateY(var(--b-hours-taco-rotate-y)) rotateX(var(--b-hours-taco-rotate-x)) scale(var(--b-hours-taco-scale));
	transform-origin: 45% 55%;
}
.lobera-b-hours__art--dessert {
	top: 18%;
	right: max(clamp(80px, 7vw, 130px), calc(50% - clamp(600px, 44vw, 760px)));
	width: clamp(210px, 20vw, 380px);
	transform: translate3d(var(--b-hours-dessert-x), var(--b-hours-dessert-y), 0) rotateZ(var(--b-hours-dessert-rotate-z)) rotateY(var(--b-hours-dessert-rotate-y)) rotateX(var(--b-hours-dessert-rotate-x)) scale(var(--b-hours-dessert-scale));
	transform-origin: 55% 45%;
}
.lobera-b-hours__schedule {
	position: relative;
	z-index: 2;
	width: min(100%, 310px);
	text-align: center;
}
.lobera-b-hours__schedule dl { margin: 0; }
.lobera-b-hours__schedule dl > div + div { margin-top: 22px; }
.lobera-b-hours__schedule dt {
	font-size: var(--b-type-hours);
	font-weight: 700;
	line-height: 1.2;
}
.lobera-b-hours__schedule dd {
	margin: 2px 0 0;
	font-size: var(--b-type-hours);
	font-weight: 500;
	line-height: 1.35;
}
.lobera-b-hours .lobera-b-hours__reserve {
	display: inline-block;
	margin-top: clamp(54px, 5vw, 78px);
	padding: 15px 20px;
	border: 1px solid var(--b-dark);
	font-size: .64rem;
	font-weight: 600;
	transition: background .25s ease,color .25s ease;
}
.lobera-b-hours__reserve:hover { background: var(--b-dark); color: var(--b-paper); }
/* The remaining sections follow the same cream/dark cadence. */
.lobera-b-menu-section,
.lobera-b-menu-section.lobera-b-paper { background: var(--b-paper); color: var(--b-dark); }
.lobera-b-menu-section .lobera-b-section-head { grid-template-columns: 54px 1fr auto; }
.lobera-b-menu-card { background: var(--b-paper); }
.lobera-b-reviews { background: var(--b-dark); color: var(--b-paper); }
.lobera-b-reserve { border-top: 16px solid var(--b-paper); border-bottom: 16px solid var(--b-paper); }
.lobera-b-footer { background: var(--b-paper); }

@media (max-width: 1024px) {
	.lobera-b-hours {
		--b-hours-taco-x: -15px;
		--b-hours-taco-y: 30px;
		--b-hours-taco-scale: .813;
		--b-hours-taco-rotate-z: -10.5deg;
		--b-hours-taco-rotate-y: -7.5deg;
		--b-hours-taco-rotate-x: 3.75deg;
		--b-hours-dessert-x: 22.5px;
		--b-hours-dessert-y: -37.5px;
		--b-hours-dessert-scale: .835;
		--b-hours-dessert-rotate-z: 10.5deg;
		--b-hours-dessert-rotate-y: 7.5deg;
		--b-hours-dessert-rotate-x: -3.75deg;
	}
}

@media (max-width: 809px) {
	.lobera-b-hours__stage { min-height: 560px; }
	.lobera-b-hours__art--tacos { top: 61%; left: 0; width: clamp(145px, 28vw, 210px); }
	.lobera-b-hours__art--dessert { top: 16%; right: 0; width: clamp(155px, 31vw, 225px); }
	.lobera-b-menu-section .lobera-b-section-head { grid-template-columns: 40px 1fr; }
}

@media (max-width: 480px) {
	.lobera-b-hours {
		--b-hours-taco-x: -10px;
		--b-hours-taco-y: 20px;
		--b-hours-taco-scale: .875;
		--b-hours-taco-rotate-z: -7deg;
		--b-hours-taco-rotate-y: -5deg;
		--b-hours-taco-rotate-x: 2.5deg;
		--b-hours-dessert-x: 15px;
		--b-hours-dessert-y: -25px;
		--b-hours-dessert-scale: .89;
		--b-hours-dessert-rotate-z: 7deg;
		--b-hours-dessert-rotate-y: 5deg;
		--b-hours-dessert-rotate-x: -2.5deg;
	}
	.lobera-b-hours__stage { min-height: 520px; }
	.lobera-b-hours__schedule { width: min(100%, 270px); }
	.lobera-b-hours__art { opacity: .72; }
	.lobera-b-hours__art--tacos { top: 67%; left: 0; width: 125px; }
	.lobera-b-hours__art--dessert { top: 12%; right: 0; width: 130px; }
	.lobera-b-reserve { border-width: 10px; }
}

@media (prefers-reduced-motion: reduce) {
	.lobera-b-hours {
		--b-hours-taco-x: 0px;
		--b-hours-taco-y: 0px;
		--b-hours-taco-scale: 1;
		--b-hours-taco-rotate-z: -6deg;
		--b-hours-taco-rotate-y: 0deg;
		--b-hours-taco-rotate-x: 0deg;
		--b-hours-dessert-x: 0px;
		--b-hours-dessert-y: 0px;
		--b-hours-dessert-scale: 1;
		--b-hours-dessert-rotate-z: 6deg;
		--b-hours-dessert-rotate-y: 0deg;
		--b-hours-dessert-rotate-x: 0deg;
	}
	.lobera-b-hours__art { will-change: auto; }
	.lobera-b-hours__marquee > div { animation-play-state: paused; }
}

/* Final colour cadence and explicit contrast after the hours chapter. */
.lobera-b-hours,
.lobera-b-hours a,
.lobera-b-hours dt,
.lobera-b-hours dd,
.lobera-b-hours__marquee { color: var(--b-dark); }
.lobera-b-hours__marquee > div { gap: clamp(36px, 4vw, 76px); }
.lobera-b-hours__marquee span { letter-spacing: -.02em; }
.lobera-b-hours__marquee span:nth-child(even) { color: var(--b-warm-brown); opacity: 1; }

.lobera-b-menu-section,
.lobera-b-menu-section.lobera-b-paper {
	padding-block: clamp(96px, 10vw, 170px);
	background: var(--b-dark);
	color: var(--b-paper);
}
.lobera-b-menu-section .lobera-b-section-head,
.lobera-b-menu-section .lobera-b-section-head h2,
.lobera-b-menu-section .lobera-b-section-head span { color: var(--b-paper); }
.lobera-b-menu-section .lobera-b-section-head p { color: var(--b-accent); }
.lobera-b-menu-section .lobera-b-section-head { border-color: var(--b-line-light); }
.lobera-b-menu-card {
	margin-top: clamp(58px, 7vw, 104px);
	border-color: rgba(252,255,226,.42);
	background: var(--b-paper);
	color: var(--b-dark);
}
.lobera-b-menu-card__copy,
.lobera-b-menu-card__copy p,
.lobera-b-menu-card__copy h3,
.lobera-b-menu-card__copy li,
.lobera-b-menu-card__copy a { color: var(--b-dark); }
.lobera-b-menu-card__copy ul,
.lobera-b-menu-card__copy li { border-color: var(--b-line-dark); }

.lobera-b-reviews {
	padding-block: clamp(96px, 10vw, 170px);
	border-top: 1px solid var(--b-line-light);
	background: var(--b-dark);
	color: var(--b-paper);
}
.lobera-b-reviews .lobera-b-section-head,
.lobera-b-reviews .lobera-b-section-head h2,
.lobera-b-reviews .lobera-b-section-head span { color: var(--b-paper); }
.lobera-b-reviews .lobera-b-section-head p { color: var(--b-accent); }
.lobera-b-reviews .lobera-b-section-head { border-color: var(--b-line-light); }
.lobera-b-trustindex { width: 100%; color: var(--b-paper); }

.lobera-b-reserve { color: var(--b-white); }
.lobera-b-reserve h2,
.lobera-b-reserve p,
.lobera-b-reserve a { color: var(--b-white); }
.lobera-b-reserve .lobera-b-round-link:hover { background: var(--b-paper); color: var(--b-dark); }
.lobera-b-reserve .lobera-b-round-link:hover span,
.lobera-b-reserve .lobera-b-round-link:hover b { color: var(--b-dark); }

.lobera-b-footer,
.lobera-b-footer h2,
.lobera-b-footer address,
.lobera-b-footer a,
.lobera-b-footer p,
.lobera-b-footer span,
.lobera-b-footer strong { color: var(--b-dark); }

@media (max-width: 809px) {
	.lobera-b-menu-section,
	.lobera-b-menu-section.lobera-b-paper,
	.lobera-b-reviews { padding-block: 78px; }
	.lobera-b-menu-card { margin-top: 48px; }
}

/* UI/UX refinement: reservation hierarchy, controls and preview-safe positioning. */
.lobera-b-header__inner {
	grid-template-columns: minmax(0, 1fr) auto auto;
	column-gap: clamp(18px, 2vw, 34px);
}
.lobera-b-address {
	grid-column: 1;
	grid-row: 1;
	justify-self: start;
}
.lobera-b-reserve-top {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
	min-height: 44px;
	padding: 13px 20px;
	white-space: nowrap;
}
.lobera-b-menu {
	grid-column: 3;
	grid-row: 1;
	min-width: 44px;
	min-height: 44px;
}
.admin-bar .lobera-b-header { top: 32px; }
.admin-bar .lobera-b-nav { top: 32px; height: calc(100dvh - 32px); }

.lobera-b-reserve-top,
.lobera-b-hours__reserve,
.lobera-b-round-link,
.lobera-b-menu,
.lobera-b-nav a,
.lobera-b-menu-card a {
	-webkit-tap-highlight-color: transparent;
}
.lobera-b-reserve-top:focus-visible,
.lobera-b-hours__reserve:focus-visible,
.lobera-b-round-link:focus-visible,
.lobera-b-menu:focus-visible,
.lobera-b-nav a:focus-visible,
.lobera-b-menu-card a:focus-visible {
	outline: 2px solid var(--b-accent);
	outline-offset: 4px;
}

.lobera-b-hours .lobera-b-hours__reserve {
	position: relative;
	min-height: 48px;
	padding: 16px 48px 16px 24px;
	border-color: var(--b-dark);
	background: var(--b-dark);
	color: var(--b-paper);
	letter-spacing: .09em;
}
.lobera-b-hours__reserve::after {
	position: absolute;
	right: 22px;
	content: "";
	width: .9rem;
	height: .9rem;
	background: currentColor;
	-webkit-mask: url("../images/arrow-up-right.svg") center / contain no-repeat;
	mask: url("../images/arrow-up-right.svg") center / contain no-repeat;
	font-size: .85rem;
	transition: transform .25s var(--b-ease);
}
.lobera-b-hours .lobera-b-hours__reserve:hover {
	background: transparent;
	color: var(--b-dark);
}
.lobera-b-hours__reserve:hover::after { transform: translate(3px, -3px); }

.lobera-b-reserve__copy {
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(28px, 4vw, 72px);
	padding-top: clamp(70px, 8vh, 110px);
	padding-bottom: clamp(96px, 12vh, 150px);
}
.lobera-b-reserve h2 {
	max-width: 10.5ch;
	font-size: var(--b-type-cta-h2);
	line-height: .78;
}
.lobera-b-reserve .lobera-b-round-link {
	align-self: end;
	width: clamp(126px, 8.5vw, 156px);
	margin-right: clamp(110px, 8vw, 165px);
	margin-bottom: clamp(10px, 3vh, 42px);
	text-align: center;
}
.lobera-b-reserve .lobera-b-round-link span {
	max-width: 8ch;
	line-height: 1.35;
}

@media (max-width: 1199px) {
	.lobera-b-address { font-size: .62rem; }
	.lobera-b-reserve .lobera-b-round-link { margin-right: clamp(88px, 7vw, 120px); }
}

@media (max-width: 809px) {
	.lobera-b-header__inner { grid-template-columns: 1fr auto auto; column-gap: 14px; }
	.lobera-b-reserve-top { grid-column: 2; padding: 11px 14px; }
	.lobera-b-menu { grid-column: 3; }
	.lobera-b-reserve__copy {
		display: flex;
		gap: 28px;
		padding-block: 88px 118px;
	}
	.lobera-b-reserve h2 {
		max-width: 8.5ch;
		font-size: var(--b-type-cta-h2);
	}
	.lobera-b-reserve .lobera-b-round-link {
		align-self: flex-end;
		margin: 0 clamp(72px, 18vw, 120px) 0 0;
	}
}

@media (max-width: 782px) {
	.admin-bar .lobera-b-header { top: 46px; }
	.admin-bar .lobera-b-nav { top: 46px; height: calc(100dvh - 46px); }
}

@media (max-width: 480px) {
	.lobera-b-header__inner { column-gap: 10px; }
	.lobera-b-reserve-top { min-height: 40px; padding: 10px 12px; font-size: .57rem; }
	.lobera-b-menu span { display: none; }
	.lobera-b-reserve__copy { padding-bottom: 124px; }
	.lobera-b-reserve h2 { font-size: var(--b-type-cta-h2); }
	.lobera-b-reserve .lobera-b-round-link {
		align-self: flex-start;
		margin-right: 0;
	}
}

/* Final reservation CTA: clear local context and horizontal action. */
.lobera-b-reserve__copy > p {
	max-width: none;
	color: rgba(255, 255, 255, .84);
	font-weight: 600;
}
.lobera-b-reserve h2 { max-width: 9.5ch; }
.lobera-b-reserve .lobera-b-round-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: clamp(218px, 15vw, 270px);
	min-height: 60px;
	aspect-ratio: auto;
	margin-right: clamp(110px, 8vw, 165px);
	margin-bottom: clamp(18px, 3vh, 44px);
	padding: 0 22px;
	border: 1px solid var(--b-paper);
	border-radius: 0;
	background: var(--b-paper);
	color: var(--b-dark);
	font-size: .64rem;
	font-weight: 600;
	line-height: 1;
	text-align: left;
	transform: none;
}
.lobera-b-reserve .lobera-b-round-link span {
	max-width: none;
	line-height: 1;
}
.lobera-b-reserve .lobera-b-round-link b {
	font-size: 1rem;
	transition: transform .25s var(--b-ease);
}
.lobera-b-reserve .lobera-b-round-link:hover {
	border-color: var(--b-paper);
	background: var(--b-dark);
	color: var(--b-paper);
	transform: translateY(-3px);
}
.lobera-b-reserve .lobera-b-round-link:hover span,
.lobera-b-reserve .lobera-b-round-link:hover b { color: var(--b-paper); }
.lobera-b-reserve .lobera-b-round-link:hover b { transform: translate(3px, -3px); }

@media (max-width: 809px) {
	.lobera-b-reserve .lobera-b-round-link {
		align-self: flex-end;
		width: min(100%, 240px);
		margin: 0 clamp(72px, 18vw, 120px) 0 0;
	}
}

@media (max-width: 480px) {
	.lobera-b-reserve__copy > p { max-width: 30ch; line-height: 1.5; }
	.lobera-b-reserve .lobera-b-round-link {
		align-self: flex-start;
		width: min(100%, 230px);
		margin: 0;
	}
}

/* Preserve contrast when the beige accent sits on the beige hours chapter. */
.lobera-b-hours .lobera-b-hours__reserve:focus-visible {
	outline-color: var(--b-dark);
}

.lobera-b-hours__schedule dt { color: var(--b-dark); font-weight: 700; }
.lobera-b-hours__schedule dl > div + div {
	padding-top: 22px;
	border-top: 1px solid rgba(117, 107, 95, .32);
}

.lobera-b-reviews__fallback {
	max-width: 620px;
	margin: 0;
	font-size: clamp(1.15rem, 2vw, 1.6rem);
	line-height: 1.5;
}
.lobera-b-reviews__fallback a {
	border-bottom: 1px solid currentColor;
	color: var(--b-accent);
}


/* Desktop viewport composition: La Carta only. */
@media (min-width: 810px) {
	.lobera-b-menu-section,
	.lobera-b-menu-section.lobera-b-paper {
		display: flex;
		flex-direction: column;
		height: 100svh;
		min-height: 640px;
		padding-block: clamp(38px, 5svh, 68px);
	}

	.lobera-b-menu-section > .lobera-b-wrap {
		display: flex;
		flex: 1;
		flex-direction: column;
		width: min(calc(100% - 2 * var(--b-gutter)), var(--b-max));
		min-height: 0;
	}

	.lobera-b-menu-section .lobera-b-section-head { flex: 0 0 auto; }
	.lobera-b-menu-section .lobera-b-section-head h2 {
		font-size: clamp(4rem, min(7vw, 10svh), 7.5rem);
	}

	.lobera-b-menu-card {
		flex: 1;
		min-height: 0;
		margin-top: clamp(22px, 3svh, 40px);
	}

	.lobera-b-menu-card__media {
		height: auto;
		min-height: 0;
	}

	.lobera-b-menu-card__media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.lobera-b-menu-card__copy {
		min-height: 0;
		padding: clamp(22px, 3.4svh, 48px);
	}

	.lobera-b-menu-card h3 {
		margin-block: clamp(14px, 2.4svh, 28px);
		font-size: clamp(3rem, min(5vw, 8svh), 6rem);
	}

	.lobera-b-menu-card ul { margin-bottom: clamp(18px, 2.8svh, 34px); }
	.lobera-b-menu-card li { padding-block: clamp(7px, 1.1svh, 12px); }
}


/* La Carta: accessible dish accordion and image transitions. */
.lobera-b-menu-card__media { position: relative; }
.lobera-b-menu-card__media img {
	opacity: 1;
	transform: scale(1);
	transition: opacity .28s cubic-bezier(.22,.61,.36,1), transform .55s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-menu-card:hover .lobera-b-menu-card__media img { transform: scale(1); }
.lobera-b-menu-card__media img.is-switching {
	opacity: 0;
	transform: scale(1.015);
}
.lobera-b-menu-card__copy { justify-content: flex-start; }
.lobera-b-menu-accordion {
	margin-top: auto;
	border-top: 1px solid var(--b-line-dark);
}
.lobera-b-menu-dish { border-bottom: 1px solid var(--b-line-dark); }
.lobera-b-menu-dish__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	width: 100%;
	padding: clamp(9px, 1.15svh, 13px) 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: 500 .67rem/1.25 var(--b-body);
	letter-spacing: .11em;
	text-align: left;
	cursor: pointer;
}
.lobera-b-menu-dish__trigger span {
	display: block;
	transition: transform .3s cubic-bezier(.22,.61,.36,1), opacity .3s ease;
}
.lobera-b-menu-dish__trigger i {
	position: relative;
	flex: 0 0 12px;
	width: 12px;
	height: 12px;
	transition: transform .3s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-menu-dish__trigger i::before,
.lobera-b-menu-dish__trigger i::after {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1px;
	content: "";
	background: currentColor;
	transition: transform .32s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-menu-dish__trigger i::after { transform: rotate(90deg); }
.lobera-b-menu-dish.is-active .lobera-b-menu-dish__trigger { font-weight: 600; }
.lobera-b-menu-dish.is-active .lobera-b-menu-dish__trigger i::after { transform: rotate(90deg) scaleX(0); }
.lobera-b-menu-dish__panel {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows .38s cubic-bezier(.22,.61,.36,1), opacity .32s ease;
}
.lobera-b-menu-dish__panel > div { overflow: hidden; }
.lobera-b-menu-dish__panel p {
	max-width: 46ch;
	margin: 0;
	padding: 0 26px 0 0;
	color: inherit;
	font-size: clamp(.7rem, .72vw, .8rem);
	line-height: 1.45;
	transform: translateY(-6px);
	transition: transform .38s cubic-bezier(.22,.61,.36,1), padding .38s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-menu-dish.is-active .lobera-b-menu-dish__panel {
	grid-template-rows: 1fr;
	opacity: .78;
}
.lobera-b-menu-dish.is-active .lobera-b-menu-dish__panel p {
	padding-bottom: clamp(10px, 1.3svh, 15px);
	transform: translateY(0);
}
.lobera-b-menu-card__copy > a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: clamp(16px, 2.4svh, 30px);
	padding-bottom: 9px;
	border-bottom: 0;
	transition: transform .3s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-menu-card__copy > a::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	content: "";
	background: currentColor;
	transform: scaleX(.28);
	transform-origin: left;
	transition: transform .3s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-menu-card__copy > a span { transition: transform .3s cubic-bezier(.22,.61,.36,1); }
@media (hover: hover) and (pointer: fine) {
	.lobera-b-menu-dish__trigger:hover span { transform: translateX(5px); }
	.lobera-b-menu-dish__trigger:hover i { transform: rotate(8deg); }
	.lobera-b-menu-card__copy > a:hover { transform: translateX(3px); }
	.lobera-b-menu-card__copy > a:hover::after { transform: scaleX(1); }
	.lobera-b-menu-card__copy > a:hover span { transform: translate(3px, -3px); }
}
.lobera-b-menu-dish__trigger:focus-visible {
	outline: 2px solid var(--b-accent);
	outline-offset: 3px;
}
@media (max-width: 809px) {
	.lobera-b-menu-accordion { margin-top: 28px; }
	.lobera-b-menu-dish__trigger { padding-block: 13px; }
	.lobera-b-menu-dish__panel p { font-size: .76rem; }
}
@media (prefers-reduced-motion: reduce) {
	.lobera-b-menu-card__media img,
	.lobera-b-menu-dish__panel,
	.lobera-b-menu-dish__panel p,
	.lobera-b-menu-dish__trigger span,
	.lobera-b-menu-dish__trigger i,
	.lobera-b-menu-dish__trigger i::before,
	.lobera-b-menu-dish__trigger i::after,
	.lobera-b-menu-card__copy > a,
	.lobera-b-menu-card__copy > a::after,
	.lobera-b-menu-card__copy > a span { transition: none !important; }
}


/* La Carta: punctuation breathing room. */
.lobera-b-menu-title__punctuation {
	display: inline-block;
	margin-right: .075em;
}


/* Editorial visit section and compact legal footer. */
.lobera-b-visit {
	padding-block: clamp(76px, 8vw, 130px) 0;
	background: var(--b-paper);
	color: var(--b-dark);
}
.lobera-b-visit__intro {
	display: grid;
	grid-template-columns: minmax(48px, 1fr) 11fr;
	gap: var(--b-gutter);
	padding-bottom: clamp(54px, 6vw, 90px);
}
.lobera-b-visit__number { margin: 8px 0 0; font-size: var(--b-type-micro); letter-spacing: .15em; }
.lobera-b-visit h2 {
	max-width: 9ch;
	margin: 0;
	font: 400 clamp(4.8rem, 8vw, 9rem)/.79 var(--b-display);
	letter-spacing: -.015em;
}
.lobera-b-visit__lead { max-width: 58ch; margin: 28px 0 0; font-size: var(--b-type-body); line-height: 1.7; }
.lobera-b-visit__details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-block: 1px solid var(--b-line-dark);
}
.lobera-b-visit__details > section {
	min-width: 0;
	padding: clamp(30px, 3.4vw, 54px) clamp(20px, 2.7vw, 44px) clamp(34px, 4vw, 62px) 0;
}
.lobera-b-visit__details > section + section {
	padding-left: clamp(20px, 2.7vw, 44px);
	border-left: 1px solid var(--b-line-dark);
}
.lobera-b-visit h3 { margin: 0 0 30px; font-size: var(--b-type-label); font-weight: 500; letter-spacing: .16em; }
.lobera-b-visit__phone { display: block; margin-bottom: 28px; font: 400 clamp(2.3rem, 3.6vw, 4.4rem)/.9 var(--b-display); }
.lobera-b-visit__place { margin: 0 0 16px; font-size: .69rem; font-weight: 600; letter-spacing: .1em; }
.lobera-b-visit address { margin: 0 0 26px; font-style: normal; font-size: .76rem; line-height: 1.75; letter-spacing: .045em; }
.lobera-b-visit dl { margin: 0; }
.lobera-b-visit dl > div + div { margin-top: 24px; }
.lobera-b-visit dt { margin-bottom: 4px; font-size: .7rem; font-weight: 600; letter-spacing: .1em; }
.lobera-b-visit dd { margin: 0; font-size: .78rem; line-height: 1.65; }
.lobera-b-editorial-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding-bottom: 7px;
	font-size: .66rem;
	font-weight: 600;
	letter-spacing: .13em;
}
.lobera-b-editorial-link::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	content: "";
	background: currentColor;
	transform-origin: left;
	transition: transform .3s var(--b-ease);
}
.lobera-b-editorial-link span, .lobera-b-editorial-link b { transition: transform .3s var(--b-ease); }
.lobera-b-editorial-link b { font-weight: 400; }
.lobera-b-editorial-link:hover span { transform: translateX(4px); }
.lobera-b-editorial-link:hover b { transform: translate(3px, -3px); }
.lobera-b-visit__seo { max-width: 74ch; margin: clamp(38px, 4vw, 64px) 0; font-size: var(--b-type-body-small); line-height: 1.75; }
.lobera-b-visit .lobera-b-instagram { color: var(--b-dark); }
.lobera-b-instagram span:last-child, .lobera-b-instagram span:last-child b { transition: transform .3s var(--b-ease); }
.lobera-b-instagram:hover span:last-child { transform: translateX(4px); }
.lobera-b-instagram:hover span:last-child b { display: inline-block; transform: translate(3px, -3px); }
.lobera-b-footer { padding-block: 24px; background: var(--b-dark); color: var(--b-paper); }
.lobera-b-footer__bottom {
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	align-items: center;
	gap: clamp(20px, 3vw, 52px);
	padding-top: 0;
	font-size: .6rem;
	letter-spacing: .11em;
}
.lobera-b-footer__bottom nav { display: flex; justify-content: center; gap: clamp(16px, 2.5vw, 38px); }
.lobera-b-footer, .lobera-b-footer a, .lobera-b-footer p, .lobera-b-footer span { color: var(--b-paper); }
.lobera-b-visit a:focus-visible, .lobera-b-footer a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }

@media (max-width: 900px) {
	.lobera-b-visit__intro { grid-template-columns: 40px 1fr; }
	.lobera-b-visit h2 { font-size: clamp(4rem, 15vw, 7rem); }
	.lobera-b-visit__details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lobera-b-visit__details > section:nth-child(3) {
		grid-column: 1 / -1;
		padding-left: 0;
		border-top: 1px solid var(--b-line-dark);
		border-left: 0;
	}
	.lobera-b-footer__bottom { grid-template-columns: 1fr auto; }
	.lobera-b-footer__bottom nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; flex-wrap: wrap; }
}
@media (max-width: 620px) {
	.lobera-b-visit { padding-top: 68px; }
	.lobera-b-visit__intro { display: block; padding-bottom: 48px; }
	.lobera-b-visit__number { margin-bottom: 28px; }
	.lobera-b-visit h2 { font-size: clamp(4rem, 18vw, 6rem); }
	.lobera-b-visit__lead { margin-top: 24px; }
	.lobera-b-visit__details { grid-template-columns: 1fr; }
	.lobera-b-visit__details > section, .lobera-b-visit__details > section + section {
		grid-column: auto;
		padding-inline: 0;
		border-top: 0;
		border-left: 0;
	}
	.lobera-b-visit__details > section + section { border-top: 1px solid var(--b-line-dark); }
	.lobera-b-instagram { grid-template-columns: 1fr; gap: 18px; }
	.lobera-b-instagram span:last-child { text-align: left; }
	.lobera-b-instagram strong { font-size: clamp(2.8rem, 14vw, 4.8rem); overflow-wrap: anywhere; }
	.lobera-b-footer__bottom { grid-template-columns: 1fr; align-items: start; }
	.lobera-b-footer__bottom nav { grid-column: auto; grid-row: auto; flex-direction: column; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.lobera-b-editorial-link span, .lobera-b-editorial-link b,
	.lobera-b-instagram span:last-child, .lobera-b-instagram span:last-child b { transition: none; }
	.lobera-b-editorial-link:hover span, .lobera-b-editorial-link:hover b,
	.lobera-b-instagram:hover span:last-child, .lobera-b-instagram:hover span:last-child b { transform: none; }
}


/* Institutional funding subfooter. */
.lobera-b-institutional {
	padding-block: clamp(58px, 6vw, 92px);
	border-bottom: 1px solid var(--b-line-light);
	background: var(--b-dark);
	color: var(--b-paper);
}
.lobera-b-institutional__eyebrow {
	margin: 0;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--b-line-light);
	font-size: var(--b-type-label);
	font-weight: 500;
	letter-spacing: .16em;
}
.lobera-b-institutional__logos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: center;
	gap: clamp(34px, 5vw, 86px);
	padding-block: clamp(42px, 5vw, 74px);
}
.lobera-b-institutional__logos figure {
	display: grid;
	place-items: center;
	min-width: 0;
	height: clamp(58px, 5vw, 86px);
	margin: 0;
}
.lobera-b-institutional__logos img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.lobera-b-institutional__legal {
	max-width: 118ch;
	margin: 0 auto;
	padding-top: clamp(32px, 3.5vw, 52px);
	border-top: 1px solid var(--b-line-light);
	font-size: clamp(.58rem, .64vw, .7rem);
	line-height: 1.8;
	letter-spacing: .055em;
	text-align: center;
}
@media (max-width: 900px) {
	.lobera-b-institutional__logos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 44px clamp(34px, 8vw, 70px);
	}
	.lobera-b-institutional__logos figure { height: clamp(62px, 9vw, 82px); }
}
@media (max-width: 520px) {
	.lobera-b-institutional { padding-block: 54px; }
	.lobera-b-institutional__logos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 38px 24px;
		padding-block: 44px;
	}
	.lobera-b-institutional__logos figure { height: clamp(52px, 15vw, 68px); }
	.lobera-b-institutional__legal {
		font-size: clamp(.57rem, 2.5vw, .66rem);
		line-height: 1.75;
		text-align: left;
	}
}


/* Fullscreen menu rows and editorial microinteractions. */
.lobera-b-nav a {
	display: grid;
	grid-template-columns: clamp(28px, 3vw, 52px) minmax(0, auto) 1fr;
	align-items: baseline;
	column-gap: clamp(10px, 1.5vw, 24px);
	border-color: var(--b-line-light);
	transition: border-color .35s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-nav a small {
	align-self: center;
	font: 500 clamp(.56rem, .58vw, .66rem)/1 var(--b-body);
	letter-spacing: .14em;
	opacity: .45;
	transition: opacity .35s cubic-bezier(.22,.61,.36,1), transform .35s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-nav a > span {
	display: inline-block;
	width: fit-content;
	transition: transform .35s cubic-bezier(.22,.61,.36,1), opacity .35s ease;
}
.lobera-b-nav a > b {
	align-self: center;
	justify-self: end;
	font: 400 clamp(1.5rem, 2.5vw, 3rem)/1 var(--b-display);
	transition: transform .35s cubic-bezier(.22,.61,.36,1);
}
.lobera-b-nav a[aria-current="page"] small { opacity: 1; }
.lobera-b-nav a[aria-current="page"] > span { opacity: .72; }
.lobera-b-nav .lobera-b-nav__secondary {
	grid-template-columns: minmax(0, auto) 1fr;
	margin-top: clamp(18px, 3vh, 36px);
	padding-block: 16px;
	font: 500 clamp(.68rem, .9vw, .9rem)/1.2 var(--b-body);
	letter-spacing: .14em;
}
.lobera-b-nav .lobera-b-nav__secondary > b {
	font: 400 1rem/1 var(--b-body);
}
@media (hover: hover) and (pointer: fine) {
	.lobera-b-nav a:hover { border-color: rgba(252,255,226,.68); }
	.lobera-b-nav a:hover > span { transform: translateX(8px); }
	.lobera-b-nav a:hover small { opacity: 1; transform: translateX(3px); }
	.lobera-b-nav a:hover > b { transform: translate(4px,-4px); }
}
@media (max-width: 620px) {
	.lobera-b-nav a { grid-template-columns: 25px minmax(0, auto) 1fr; column-gap: 9px; }
}
@media (prefers-reduced-motion: reduce) {
	.lobera-b-nav a,
	.lobera-b-nav a small,
	.lobera-b-nav a > span,
	.lobera-b-nav a > b { transition: none !important; }
	.lobera-b-nav a:hover small,
	.lobera-b-nav a:hover > span,
	.lobera-b-nav a:hover > b { transform: none !important; }
}


/* Keep the first menu separator clear of the close control. */
.lobera-b-nav > a:first-child {
	border-top: 0;
}
.lobera-b-nav > a:first-child::before {
	position: absolute;
	top: 0;
	right: clamp(128px, 10vw, 170px);
	left: 0;
	height: 1px;
	content: "";
	background: var(--b-line-light);
}
@media (max-width: 620px) {
	.lobera-b-nav > a:first-child::before { right: 112px; }
}


/* Centred brand mark in the V3 navbar. */
.lobera-b-header-logo {
	position: absolute;
	z-index: 102;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: clamp(74px, 6vw, 104px);
	transform: translate(-50%, -50%);
}
.lobera-b-header-logo img {
	width: 100%;
	height: auto;
	max-height: 54px;
	object-fit: contain;
}
@media (max-width: 809px) {
	.lobera-b-header-logo {
		position: static;
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		width: clamp(58px, 16vw, 76px);
		transform: none;
	}
	.lobera-b-header-logo img { max-height: 44px; }
}


.lalobera-v3-menu-open .lobera-b-header-logo {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* Responsive consolidation: shared safeguards for every V3 template. */
.lobera-b-trustindex,.lobera-b-trustindex > *,.lobera-b-footer__bottom > *,.lobera-b-instagram,.lobera-b-instagram strong{min-width:0;max-width:100%}
.lobera-b-instagram strong{overflow-wrap:anywhere}
@media(max-width:1024px){.lobera-b-section-head{column-gap:clamp(14px,2.4vw,28px)}.lobera-b-section-head>span:last-child{max-width:36ch;text-align:right}}
@media(max-width:809px){
.lobera-b-header__inner{width:calc(100% - (2 * var(--b-gutter)))}
.lobera-b-nav{justify-content:center;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(30px,env(safe-area-inset-bottom))}
.lobera-b-nav a{flex:0 0 auto;padding-block:clamp(9px,2vh,15px)}
.lobera-b-hero h1{font-size:min(var(--b-type-hero-h1),21vw)}
.lobera-b-section-head,.lobera-b-section-head h2{min-width:0}
.lobera-b-menu-card__copy{padding:clamp(28px,6vw,48px)}
.lobera-b-menu-card__media{min-height:0;aspect-ratio:4/3}
.lobera-b-reviews{overflow:hidden}
.lobera-b-trustindex{margin-top:clamp(36px,7vw,54px)}
.lobera-b-reserve{min-height:max(720px,100svh)}
.lobera-b-reserve__copy{min-height:inherit}
}
@media(max-width:620px){
:root{--b-gutter:clamp(18px,5vw,24px)}
.lobera-b-header-logo img{width:clamp(52px,17vw,64px)}
.lobera-b-section-head{grid-template-columns:34px minmax(0,1fr);row-gap:7px}
.lobera-b-section-head>span:last-child{grid-column:2;max-width:none;text-align:left}
.lobera-b-hero h1{font-size:min(var(--b-type-hero-h1),20.5vw)}
.lobera-b-menu-card__media{aspect-ratio:4/3}
.lobera-b-menu-card__copy h3{font-size:clamp(3rem,15vw,4.5rem)}
.lobera-b-menu-dish__trigger{letter-spacing:.075em}
.lobera-b-reviews{padding-block:clamp(64px,18vw,90px)}
.lobera-b-trustindex{min-height:0}
.lobera-b-trustindex .ti-widget.ti-goog{max-width:100%}
.lobera-b-reserve{min-height:max(640px,100svh)}
.lobera-b-reserve__copy{padding:clamp(84px,24vw,120px) var(--b-gutter) clamp(62px,18vw,92px)}
.lobera-b-reserve h2{font-size:clamp(4.1rem,17vw,6.2rem)}
.lobera-b-instagram strong{font-size:clamp(2.3rem,12.5vw,4.2rem);line-height:.9}
.lobera-b-institutional__logos{gap:clamp(24px,8vw,42px) clamp(18px,6vw,30px)}
.lobera-b-institutional__legal{font-size:clamp(.64rem,2.8vw,.76rem);line-height:1.75}
.lobera-b-footer__bottom{gap:22px}
.lobera-b-footer__legal-nav{gap:12px;line-height:1.45}
}
@media(max-width:380px){.lobera-b-header-logo img{width:50px}.lobera-b-hero h1{font-size:19.5vw}.lobera-b-instagram strong{font-size:11vw}}
@media(max-width:809px) and (max-height:700px){.lobera-b-nav{justify-content:flex-start;padding-top:82px;padding-bottom:28px}.lobera-b-nav a{padding-block:6px;font-size:clamp(3.2rem,10vh,5.4rem)}.lobera-b-nav__secondary{margin-top:12px}}
@media(max-height:520px) and (orientation:landscape){.lobera-b-nav{padding-top:70px}.lobera-b-nav a{font-size:clamp(2.6rem,11vh,3.8rem);line-height:.82}.lobera-b-nav__secondary a{font-size:.68rem;line-height:1.2}}

/* Keep the decorative taco clear of the hours CTA on narrow screens. */
@media(max-width:480px){
.lobera-b-hours__art--tacos{top:82%;left:5%;width:110px}
}
@media(max-width:360px){
.lobera-b-hours__art--tacos{top:83%;left:4%;width:102px}
}

/* External SVG arrow: prevents iOS from replacing the icon with an emoji glyph. */
.lobera-b-arrow{
 display:inline-block;
 flex:0 0 auto;
 width:.9em;
 height:.9em;
 margin-left:.18em;
 background:currentColor;
 -webkit-mask:url("../images/arrow-up-right.svg") center/contain no-repeat;
 mask:url("../images/arrow-up-right.svg") center/contain no-repeat;
 vertical-align:-.04em;
 font-style:normal;
}

/* Restore the original large editorial scale of the fullscreen menu on desktop. */
@media(min-width:810px) and (min-height:521px){
.lobera-b-nav{padding-top:clamp(120px,14vh,150px);padding-bottom:clamp(50px,6vh,70px)}
.lobera-b-nav>a:not(.lobera-b-nav__secondary){font-size:clamp(5.8rem,min(10vw,15vh),9.5rem)}
}

/* Compact first viewport on portrait phones: hero plus the start of the editorial intro. */
@media(max-width:620px) and (orientation:portrait){
.lobera-b-hero,
.lobera-b-hero__copy{
 height:clamp(380px,46svh,440px);
 min-height:clamp(380px,46svh,440px);
}
.lobera-b-hero__copy{padding-top:88px}
.lobera-b-intro,
.lobera-b-intro.lobera-b-paper{padding-top:clamp(54px,9vw,68px)}
}

/* Optical alignment for the reservation action in the mobile navbar. */
@media(max-width:620px){
.lobera-b-reserve-top{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:8px;
 height:44px;
 min-height:44px;
 padding:0 14px;
 line-height:1;
}
.lobera-b-reserve-top .lobera-b-arrow{margin-left:0;vertical-align:0}
}
@media(max-width:380px){
.lobera-b-reserve-top{height:42px;min-height:42px;padding-inline:11px;gap:7px}
}

/* Responsive animated WebP source for the critical hero artwork. */
@media(max-width:768px){
.lobera-b-hero__visual{background-image:var(--lobera-hero-mobile)}
}


/* Mobile Carta: keep the active dish image next to its description. */
.lobera-b-menu-dish__mobile-media { display: none; }
@media (max-width: 620px) {
	.lobera-b-menu-card__media { display: none; }
	.lobera-b-menu-dish__panel { opacity: 0; }
	.lobera-b-menu-dish.is-active .lobera-b-menu-dish__panel { opacity: 1; }
	.lobera-b-menu-dish__mobile-media {
		display: block;
		margin: 2px 0 16px;
		overflow: hidden;
		background: var(--b-dark);
	}
	.lobera-b-menu-dish__mobile-media img {
		display: block;
		width: 100%;
		height: auto;
	}
	.lobera-b-menu-dish.is-active .lobera-b-menu-dish__panel p { opacity: .78; }
}
